2014-03-30 210 views
1

我需要幫助將數據從最小二乘意義擬合到非線性函數。給定數據,當我有以下等式時,我該如何繼續?將最小二乘意義下的數據擬合成非線性方程

F(X)= 20 + AX + B * E ^(C * 2×)

因此,我想找到一個,b和c。如果它是產品,我會通過在整個函數中使用自然對數來線性化函數,但在這種情況下我似乎無法做到這一點。

感謝

回答

2

當MATLAB解決這個最小二乘您可以使用nlinfit工具,它不需要曲線擬合工具箱(我不認爲...)

喜歡的東西

f = @(b,x)(20 + b(1)*x + b(2)*exp(b(3)*2*x)); 
beta0 = [1, 1, 1]; 
beta = nlinfit(x, Y, f, beta0); 

問題,它將係數傳遞到向量b中的匿名函數fnlinfit返回beta向量中這些係數的最終值。 beta0b(1),b(2)b(3)的值的初始猜測。 xY是具有要合適的數據的向量。

或者,您可以在自己的文件中定義函數,如果它稍微複雜一些。對於這種情況,你會像

function y = my_function(b,x) 
y = 20 + b(1)*x + b(2)*exp(b(3)*2*x); 
end 

和其他代碼(文件my_function.m中)會是什麼樣子還

beta0 = [1, 1, 1]; 
beta = nlinfit(x, Y, @my_function, beta0); 

參見:Using nlinfit in Matlab?

+0

謝謝!這非常有幫助! – user3342830

+0

@ user3342830嗨!我很高興它幫助:-)如果你發現這回答了你的問題,你可以點擊箭頭下方的綠色複選標記來顯示你的[接受](http://stackoverflow.com/help/accepted-answer)這個答案? – darthbith

1

你可以嘗試cftool這是擬合數據的交互式工具。第二部分我不太明白。如果你更詳細地描述它可能會有所幫助。

相關問題