Я новичок в python, и я пытаюсь написать алгоритм для решения 4 неизвестных параметров в уравнении Родбарда, где мы связываем значение оттенков серого, измеренное с помощью ImageJ, с калибровочными дисками оптической плотности. Это уравнение является нелинейным и записывается как y = c*((x-a)/(d-x))^(1/b), где a, b, c и d неизвестны. У меня есть значения x и y для четырех точек (176,5, 0), (161,333, 0,1), (66,1667, 0,9) и (40,833, 2,5). Ниже я разместил свою попытку решить эти 4 неизвестных. Любая помощь, чтобы указать мне в правильном направлении, будет принята с благодарностью!
import scipy.optimize as opt
def f(a, b, c, d):
0 == [c * ((176.5 - a)/(d - 176.5))**(1/b)]
0.1 == [c * ((161.333 - a)/(d - 161.333))**(1/b)]
0.9 == [c * ((66.1667 - a)/(d - 66.1667))**(1/b)]
2.5 == [c * ((40.833 - a)/(d - 40.833))**(1/b)]
return f
opt.curve_fit(a, b, c, d)
print a
print b
print c
print d