2016-06-30 34 views
4

我有一个看起来像一个exponentiel函数的曲线,我想用这个公式,以适应这条曲线:MATLAB我想差最小化安装

enter image description here

的目标是寻找价值A,Td这将使我的初始曲线最小化V

我做了一个能够做到这一点的功能,但它需要10秒钟才能运行。 3个循环,测试我想要的所有值,并在3个循环的末尾计算我的2条曲线之间的RMSD(均方根偏差),并将结果放入一个向量min_RMSN,最后我检查最小值为min_RMSD并且完成了...

但是这并不是最好的方法。

感谢你的帮助,想法:)

+0

你有没有试过Matlab的曲线拟合工具箱? –

+0

发布您的功能。 –

回答

1

MATLAB有一个内置的fminsearch函数,它几乎正是你想要的。你定义一个函数句柄,把你的数据与函数拟合的RMSE,传递你对ATd初始猜测,并得到一个结果:

x0 = [A0, T0, d0] 
fn = @(x) sum((x(1) * (1 - exp(-x[2]/(t - x[3]))) - y).^2) 
V = fminsearch(@fn, x0) 

这里t是x数据你有的曲线,y是相应的y值,并且,A0,T0, d0是你的参数的初始猜测。 fn计算理想曲线和y之间的RMSE的正方形。不需要取平方根,因为最小化平方将最小化RMSE本身,并且计算平方根需要时间。

+0

谢谢@MadPhysicist! – YLM

+0

你很受欢迎。如果你喜欢这个答案,你也可以随时投票。 –

+0

好的如何?我在这里很安静。 – YLM