宋曉霞
(山西大同大學數學與計算機科學學院,山西大同037009)
基于MATLAB的通用數據擬合方法
宋曉霞
(山西大同大學數學與計算機科學學院,山西大同037009)
介紹了在實驗數據處理、統(tǒng)計數據分析等場合使用的一種基于MATLAB的通用數據擬合方法。首先設計了通用的多項式數據擬合方法,并揭示了多項式數據擬合方法的擬合準則為最小二乘法、理論依據是函數逼近論。最后通過兩個具體實例驗證了所提擬合方法能獲得滿足擬合精度的多項式函數。
MATLAB;數據擬合;最小二乘法;擬合精度
在實際的工程測量、物理實驗和科學研究等諸多領域常常可以獲得一些測試數據[1-3]。研究者們希望揭示這些數據滿足的關系進而得出物理、工程等現象的內在規(guī)律性。通過經典理論分析來推導這些數據滿足的函數關系是最直接和易于想到的方法。然而,這是一件非常困難的事情?;诖耍瑪祿M合的處理方法受到了人們的青睞[4-5]。針對實際的測試數據,在數據擬合時常常面臨一系列的抉擇,如采用線性擬合還是非線性擬合[6],采用多項式函數擬合還是既定函數擬合[7],采用函數擬合還是工具箱擬合[8-9]。顯然這些抉擇大大地增加了數據擬合的難度。為此,本文提出一種通用的數據擬合方法,并論證了該方法的合理性。最后,通過具體的實例說明了該方法的實用性。
一般情況下,根據一些孤立的測試數據很難直接確定它符合的既定函數。而多項式數據擬合方法由于可以選擇擬合的次數進而能達到數據擬合精度的要求,因而具有通用性。多項式擬合問題可以歸結為函數逼近問題,它是用多項式函數來逼近一組給定的數據。本質上它是由具體的測試數據找到滿足的一般規(guī)律,即由特殊到一般的研究方法。多項式數據擬合的算法如下。
1)輸入數據。將實際的測試數據分別用向量x和y來表示;并給定擬合需要滿足的誤差距e,令數據擬合的初次數量n=1。
3)轉換。將擬合的多項式向量通過調用poly2str函數轉換為多項式函數。
4)輸出。輸出多項式函數并繪制擬合曲線。
首先來分析多項式數據擬合具有通用性的原因。下面的定理1給出泰勒中值定理,它說明任意函數 f(x)在一定條件下均可用多項式函數去逼近,并且給出了逼近誤差。定理2給出了函數可以展開成多項式函數(泰勒級數)的條件,因此用多項式函數去逼近 f(x)具有通用性。
定理1[10]若函數 f(x)在x0的某一鄰域內具有直到n+1階的導數,則在該鄰域內 f(x)的n階泰勒公式為:
其中Rn(x)為拉格朗日余項。該式揭示了該鄰域內f(x)可以用n次多項式近似表達,并且誤差為余項的絕對值|Rn(x)|。顯然,|Rn(x)|隨著n的增大而減小,即我們可以通過增加式(1)的項數來提高逼近的精度。這也是在算法2)中通過增加多項式擬合次數來逐漸達到精度要求的依據。
定理2[10]設函數 f(x)在點x0的某一鄰域內具有直到n+1階的導數,則 f(x)在該鄰域內能展開成泰勒級數的充分必要條件是 f(x)的泰勒公式中的余項Rn(x)當n→∞時的極限為0。
由式(3)可以得到關于ak的n+1元的線性方程組,易證明該線性方程組對應的系數矩陣為滿秩矩陣,因此方程組有唯一解。得到方程組的解,也就得到了擬合多項式的n+1個系數。
例1為了測定刀具的磨損速度,我們做了這樣的實驗,經過一定時間(如每隔1小時),測量一次刀具的厚度,測試數據如表1所示,其中t表示測量時間,d表示每次測量相應的刀具厚度。
表1 刀具磨損的測試數據
對該例子,我們用文中所示的算法進行擬合,當擬合精度e=0.01和e=0.00001,得到的擬合多項式分別為 f1(x)和 f2(x),
擬合誤差分別為E=0.0067和E=2.4461×10-26,擬合曲線分別如圖1和圖2所示。
圖1 擬合精度e=0.01的數據擬合結果
圖2 擬合精度e=0.00001的數據擬合結果
例2已知有以下11個測量數據(0,-0.447),(0.1,1.978),(0.2,3.28),(0.3,6.16),(0.4,7.08),(0.5,7.34),(0.6,7.66),(0.7,9.56),(0.8,9.48),(0.9,9.30),(1.0,11.2),要求擬合精度e=0.5和e=0.00001,試用多項式函數去擬合。
對該例子,用多項式數據擬合的算法進行擬合,當擬合精度e=0.5和e=0.00001,得到的擬合多項式分別為 f3(x)和 f4(x),
擬合誤差分別為E=0.1884和E=1.6867×10-18,擬合曲線分別如圖3和圖4所示。
圖3 擬合精度e=0.5的數據擬合結果
圖4 擬合精度e=0.00001的數據擬合結果
為了從實際的工程測量、物理實驗和科學研究等諸多領域獲得的孤立數據中找到其滿足的內在規(guī)律性,數據擬合方法是常用的數據分析方法。然而,選擇擬合方法通常需要考慮較多的因素進而增加了擬合的難度。為此,本文提出一種在實驗數據處理、統(tǒng)計數據分析等場合使用的一種基于MATLAB的通用數據擬合方法,并指出該方法可行的理論依據,最后通過實例說明了該方法的通用性和實用性。
[1]彭芳麟,梁穎,劉振興.在計算物理基礎課中用MATLAB培養(yǎng)學生的編程能力[J].大學物理,2013,32(9):9-14.
[2]王海鵬,趙莉,王殿生,等.基于MATLAB的均勻設計實驗數據多元非線性最小二乘擬合[J].化學工程與裝備,2010(9):29-32.
[3]白曉煊.基于Matlab的雷達試驗數據擬合[J].信息技術,2011(11):189-190.
[4]歐陽明松,徐連民.基于MATLAB的試驗數據擬合[J].南昌工程學院學報,2010,29(4):24-28.
[5]申紅蓮.Matlab中曲線擬合的方法[J].福建電腦,2010(7):10-11.
[6]丁士海,韓之俊.基于數據擬合的非線性方法及Matlab解決方案[J].統(tǒng)計與決策,2009(8):24-25.
[7]唐沖,惠輝輝.基于Matlab的高斯曲線擬合求解[J].計算機與數字工程,2013,41(8):1262-1263.
[8]江海東,費岳軍,應岳.MATLAB擬合工具箱進行潮汐調和分析[J].海洋技術,31(3):33-36.
[9]胡慶婉.使用MATLAB曲線擬合工具箱做曲線擬合[J].電腦知識與技術,2010,21(6):5822-5823.
[10]同濟大學數學教研室.高等數學[M].北京:高等教育出版社,1993.
A General Data Fitting Method Based on MATLAB
SONG Xiao-xia
(School of Mathematics and Computer Science,Shanxi Datong University,Datong Shanxi,037009)
This paper introduces a general data fitting method based on MATLAB in some applications,such as experimental data processing and statistical data analysis.Firstly,a general polynomial data fitting method is designed.Then we illustrate that the rule of this fitting method is the least square method and its theory support is the function approximation theory.Finally two specific examples are used to verify the effectiveness and generality of the proposed fitting method.
MATLAB;data fitting;the least square method;the fitting precision
O241
A
1674-0874(2014)04-0001-03
2014-07-12
國家自然科學基金項目[61307121];山西大同大學教學改革項目[XJG2014202];山西大同大學博士科研啟動項目[2013-B-17]
宋曉霞(1975-),女,山西廣靈人,博士,副教授。研究方向:信息處理、無線傳感器網絡。
〔責任編輯 高?!?/p>