Я переписываю код, написанный в Matlab для Python, и не могу правильно разрешить функцию подгонки в Python. Код в Matlab:
y = *Array 361x1*;
x = *Array 361x1*;
y1 = *Single value 1x1*;
x1 = *Single value 1x1*;
fo = fitoptions('Method','NonlinearLeastSquares','Lower',[-Inf,-Inf],'Upper',[Inf, Inf],'Startpoint',[0.0,0.0]);
ft = fittype( @(A,B, x) A.*x.^2 + B.*x + y1 - A.*x1.^2 - B.*x1, 'independent','x','dependent','y','options',fo);
[fitobject,gof,out] = fit(x,y,ft);
A = fitobject.A;
B = fitobject.B;
Я пробовал решение в Python через Scipy Least Squares и основываясь на этой статье . Я написал следующий код:
ft = least_squares(lambda coeffs: coeffs[0]*x**2 + coeffs[1]*x + y1 - coeffs[0]*x1**2 - coeffs[1]*x1, [0, 0], bounds=([-np.inf, -np.inf], [np.inf, np.inf]))
print(ft('x'))
Очевидно, что это не правильно (массив y не учитывается в коде Python), и я получаю разные значения для коэффициентов A и B. Я уже пробовал разные функции как кривой% fit, et c. Но без результата ...