- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- 徐國保 張冰 石麗梅 吳凡
- 544字
- 2019-12-20 20:33:34
4.3 數據擬合
與數據插值類似,數據擬合的目的也是用一個較為簡單的函數g(x)去逼近一個未知的函數f(x)。利用已知測量的數據(xi,yi)(i=1,2,…,n),構造函數y=g(x),使得誤差δi=g(xi)﹣f(xi)(i=1,2,…,n)在某種意義上達到最小。
一般用得比較多的是多項式擬合,所謂多項式擬合是利用已知測量的數據(xi,yi)(i=1,2,…,n),構造一個m(m<n)次多項式p(x):

使得擬合多項式在各采樣點處的偏差的平方和最小。
在MATLAB中,用polyfit函數可以實現最小二乘意義的多項式擬合。polyfit擬合函數求的是多項式的系數向量。該函數的調用格式為

其中,p為最小二乘意義上的n階多項式系數向量,長度為n+1;x和y為數據點向量,要求是等長的向量;S為采樣點的誤差結構體,包括R、df和normr分量,分別表示對x進行QR分解為三角元素、自由度和殘差。
【例4-14】 在MATLAB中,用polyfit函數實現一個4階和5階多項式,在區間[0,3π]內逼近函數f(x)=e﹣0.5xsinx,利用繪圖的方法,比較擬合的4階多項式、5階多項式和f(x)的區別。
程序代碼如下:

程序運行結果如下,圖4-6是4階多項式和5階多項式擬合f(x)函數的比較結果。


圖4-6 4階多項式和5階多項式擬合f(x)函數
由上述例題結果可知,用高階多項式擬合f(x)函數的效果更好,誤差小,更加逼近實際函數f(x)。
推薦閱讀
- Unreal Engine:Game Development from A to Z
- Project 2007項目管理實用詳解
- 3D Printing with RepRap Cookbook
- 群體智能與數據挖掘
- Arduino &樂高創意機器人制作教程
- 21天學通Visual C++
- Implementing Splunk 7(Third Edition)
- 計算機網絡安全
- 嵌入式操作系統
- 工業機器人安裝與調試
- Windows Server 2003系統安全管理
- 統計挖掘與機器學習:大數據預測建模和分析技術(原書第3版)
- Introduction to R for Business Intelligence
- 生物3D打印:從醫療輔具制造到細胞打印
- 空間機器人