網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好
當前位置:酷知知識幫 > 遊戲數碼 > 電腦

Matlab曲線擬合fit命令1

欄目: 電腦 / 發佈於: / 人氣:9.98K

Matlab中可以進行曲線擬合,之前的曲線擬合方式比較複雜,這是在2016中的擬合方式。主要介紹fit命令,它包含有二維數據擬合和三維數據擬合。

Matlab曲線擬合fit命令1

操作方法

(01)給出一行數據,這裏我們使用sin函數來進行數據擬合,人為的加入了一些噪聲:aa = sin(0:0.05:pi);aa = aa+randn(1,63)/100;bb = 0:0.05:pi;plot(bb,aa,'bo');

Matlab曲線擬合fit命令1 第2張

(02)然後就可以使用fit命令進行數據擬合了。ff = fit(bb,aa,'poly2');回車之後出現如下情況,數據報錯。

Matlab曲線擬合fit命令1 第3張

(03)原因比較簡單,主要是需要列數據,而我們給出的是行數據。因此可以進行如下修改:aa = aa';bb = bb';ff = fit(bb,aa,'poly2');可以看到ff有三個參數,這主要是poly2起到了作用,意思是二階擬合。

Matlab曲線擬合fit命令1 第4張

(04)出現上述情況可以説明已經擬合成功,但是擬合的效果怎麼樣呢?plot(ff,bb,aa);看圖來説,效果還不錯。

Matlab曲線擬合fit命令1 第5張

(05)我們可以計算一下它們之間的差值。cc = -0.4185*bb.^2+1.136*bb-0.05554;dd = cc-aa;plot(dd);std(dd)ans =0.1665

Matlab曲線擬合fit命令1 第6張

(06)當然,後面的poly2也可以改成為poly10或者其他數值,後面的數值表示階數,在比較簡單的圖形中,少量的階數就可以很好的進行數據擬合,但是如果複雜的圖形的話,就需要較多的階數。比如還是以上圖形,我們使用5階;

Matlab曲線擬合fit命令1 第7張

(07)將二階和五階的圖形全部輸入到figure中,我們再繪製一個sin圖像,從0~pi。從圖像可以看出,五階的幾乎與sin圖像重合了。因此階數越高,其函數擬合效果越好,當然計算所需的時間就會越長。

Matlab曲線擬合fit命令1 第8張