我需要幫助將數據從最小二乘意義擬合到非線性函數。給定數據,當我有以下等式時,我該如何繼續?將最小二乘意義下的數據擬合成非線性方程
F(X)= 20 + AX + B * E ^(C * 2×)
因此,我想找到一個,b和c。如果它是產品,我會通過在整個函數中使用自然對數來線性化函數,但在這種情況下我似乎無法做到這一點。
感謝
我需要幫助將數據從最小二乘意義擬合到非線性函數。給定數據,當我有以下等式時,我該如何繼續?將最小二乘意義下的數據擬合成非線性方程
F(X)= 20 + AX + B * E ^(C * 2×)
因此,我想找到一個,b和c。如果它是產品,我會通過在整個函數中使用自然對數來線性化函數,但在這種情況下我似乎無法做到這一點。
感謝
當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
中的匿名函數f
。 nlinfit
返回beta
向量中這些係數的最終值。 beta0
是b(1)
,b(2)
和b(3)
的值的初始猜測。 x
和Y
是具有要合適的數據的向量。
或者,您可以在自己的文件中定義函數,如果它稍微複雜一些。對於這種情況,你會像
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);
你可以嘗試cftool
這是擬合數據的交互式工具。第二部分我不太明白。如果你更詳細地描述它可能會有所幫助。
謝謝!這非常有幫助! – user3342830
@ user3342830嗨!我很高興它幫助:-)如果你發現這回答了你的問題,你可以點擊箭頭下方的綠色複選標記來顯示你的[接受](http://stackoverflow.com/help/accepted-answer)這個答案? – darthbith