2016-06-30 75 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