我有一個看起來像一個exponentiel函數的曲線,我想用這個公式,以適應這條曲線:MATLAB我想差最小化安裝
的目標是尋找價值A
,T
和d
這將使我的初始曲線最小化V
。
我做了一個能夠做到這一點的功能,但它需要10秒鐘才能運行。 3個循環,測試我想要的所有值,並在3個循環的末尾計算我的2條曲線之間的RMSD(均方根偏差),並將結果放入一個向量min_RMSN
,最後我檢查最小值爲min_RMSD
並且完成了...
但是這並不是最好的方法。
感謝你的幫助,想法:)
我有一個看起來像一個exponentiel函數的曲線,我想用這個公式,以適應這條曲線:MATLAB我想差最小化安裝
的目標是尋找價值A
,T
和d
這將使我的初始曲線最小化V
。
我做了一個能夠做到這一點的功能,但它需要10秒鐘才能運行。 3個循環,測試我想要的所有值,並在3個循環的末尾計算我的2條曲線之間的RMSD(均方根偏差),並將結果放入一個向量min_RMSN
,最後我檢查最小值爲min_RMSD
並且完成了...
但是這並不是最好的方法。
感謝你的幫助,想法:)
MATLAB有一個內置的fminsearch
函數,它幾乎正是你想要的。你定義一個函數句柄,把你的數據與函數擬合的RMSE,傳遞你對A
,T
和d
初始猜測,並得到一個結果:
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本身,並且計算平方根需要時間。
你有沒有試過Matlab的曲線擬合工具箱? –
發佈您的功能。 –