它看起来像一个函数:
k1*(1-e^(-t/T1))-k2*(1-e^(-t/T2)).
Matlab中是否提供了一种方法来估计这类函数中的参数,或者您是否有任何在代码中估计它们的想法以避免“手动”执行此操作? 感谢。
答案 0 :(得分:2)
您正在寻找非线性优化。
检查curve fitting toolbox,从未使用它,但它似乎具有指数拟合。
否则你可以定义自己的目标函数f(k1,k2,T1,T2)
(通常是你想要的曲线和数据之间的均方误差)。然后应用优化算法来最小化错误(fminsearch()工作得很好)。
答案 1 :(得分:2)
如果您想在脚本中执行此操作,可以执行以下操作:
ft = fittype( 'a*(1-exp(-t/b))-c*(1-exp(-t/d))', 'coefficients',{'a','b', 'c', 'd'},...
'independent', 't', 'dependent', 'y' );
f = fit(xValues, yValues, ft);
用f.a,f.b ...你可以得到参数值。您还可以调整更多设置,请参阅fit func at Mathworks