當前位置:妙知谷 >

遊戲數碼 >電腦 >

Matlab曲線擬合fit命令1

Matlab曲線擬合fit命令1

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張
  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/l741mg.html