Мне нужно, чтобы данные, данные в Runreg.m, находились в уравнении, приведенном в CalculateTime.m, но значение resnorm довольно велико, и я не могу получить хорошую форму.Использование lsqcurvefit, как я могу улучшить установку
С полученными значениями A и sigma, если I CalculateTime сильно отличается от фактического времени.
CalculateTime.m
function [ Ta] = CalculateTime(par_fit,n)
T1=484.437812;
sigma = par_fit(1);
A= par_fit(2);
const1= sigma*(T1-T1/(2*A));
const2= T1/A -T1*sigma/(2*A);
Ta = n.^(-1)*const1 + const2;
end
Runreg.m
n=[1.0000 1.5000 2.0000 2.5000 3.0000 4.0000];
Ta=[484.437812 424.2085 382.3534 352.1422 311.6865 253.5879];
plot(n,Ta,'o')
par_fit=[0.8,2];
options = optimset('Display','iter','TolX', 1e-10, 'TolFun', 1e-10, 'MaxFunEvals', 4000, 'MaxIter', 4000);
[x,resnorm,residual]=lsqcurvefit(@CalculateTime,par_fit,n,Ta,[0 1],[1 Inf],options);
hold on
plot(n,CalculateTime(x,n))
hold off
@HighPerformanceMark: Просто обновил вопрос. – Biparite