首頁  >  文章  >  電腦教學  >  使用最小平方法擬合乘冪函數y=a*x^b和指數函數y=b*exp(a)

使用最小平方法擬合乘冪函數y=a*x^b和指數函數y=b*exp(a)

WBOY
WBOY轉載
2024-01-16 16:51:111138瀏覽

运用最小二乘法分别进行乘幂函数 y a x^b指数函数y b expa

運用最小平方法分別進行乘冪函數 y a x^b指數函數y b expa x曲

x=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];

y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];

擬合第一個:

function f = first(c, x, y)

f = y - c(1) .* x .^ c(2);

儲存為first.m檔。

命令列下運行:

c = lsqnonlin('first', [0 0], [], [], [], x, y);

a = c(1)

b = c(2)

擬合第二個:

function f = first2(c, x, y)

f = y - c(2) .* exp(c(1) .* x);

儲存為first2.m檔。

命令列下運行:

c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);

a2 = c2(1)

b2 = c2(2)

如何使用matlab進行最小平方法擬合

用polyfit函數,(用來多項式擬合的,是用最小平方法)

舉例

x=[90 91 92 93 94 95 96];

z=[70 122 144 152 174 196 202];

a=polyfit(x,z,1)

結果:

a =

1.0e 03 *

0.0205 -1.7551

1表示1次多項式(一次時是直線,適用於你的情況)

a是多項式的係數向量,是從高次項往低次項排的,

如果想運用結果,例如想知道當x=97時z等於多少

那麼有兩種方法,

直接用係數

>>a(1)*97 a(2)

ans =

233.4286

或用polyval函數

>>polyval(a,97)

ans =

233.4286

最小平方法的應用? ?

最小二乘法是一種數學最佳化技術,它透過最小化誤差的平方和找到一組資料的最佳函數匹配。

最小平方法是用最簡的方法得到一些絕對不可知的真值,而設誤差平方和為最小。

最小平方法通常用於曲線擬合。許多其他的最佳化問題也可透過最小化能量或最大化熵以最小平方法形式表達。

例如從最簡單的一次函數y=kx b講起

已知座標軸上有些點(1.1,2.0),(2.1,3.2),(3,4.0),(4,6),(5.1,6.0),經過這些點的圖象的一次函數關係式.

當然這條直線不可能經過每一個點,我們只要做到5個點到這條直線的距離的平方和最小即可,這這就需要用到最小二乘法的思想.然後就用線性擬合來.講起來一大堆,既然你只問最小平方法,我就講這麼多.

這是大學裡才學的內容,一般用於建模.

以上是使用最小平方法擬合乘冪函數y=a*x^b和指數函數y=b*exp(a)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除
上一篇:cmd命令大全下一篇:cmd命令大全