宋曉霞
(山西大同大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院,山西大同037009)
基于MATLAB的通用數(shù)據(jù)擬合方法
宋曉霞
(山西大同大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院,山西大同037009)
介紹了在實驗數(shù)據(jù)處理、統(tǒng)計數(shù)據(jù)分析等場合使用的一種基于MATLAB的通用數(shù)據(jù)擬合方法。首先設(shè)計了通用的多項式數(shù)據(jù)擬合方法,并揭示了多項式數(shù)據(jù)擬合方法的擬合準(zhǔn)則為最小二乘法、理論依據(jù)是函數(shù)逼近論。最后通過兩個具體實例驗證了所提擬合方法能獲得滿足擬合精度的多項式函數(shù)。
MATLAB;數(shù)據(jù)擬合;最小二乘法;擬合精度
在實際的工程測量、物理實驗和科學(xué)研究等諸多領(lǐng)域常??梢垣@得一些測試數(shù)據(jù)[1-3]。研究者們希望揭示這些數(shù)據(jù)滿足的關(guān)系進而得出物理、工程等現(xiàn)象的內(nèi)在規(guī)律性。通過經(jīng)典理論分析來推導(dǎo)這些數(shù)據(jù)滿足的函數(shù)關(guān)系是最直接和易于想到的方法。然而,這是一件非常困難的事情?;诖耍瑪?shù)據(jù)擬合的處理方法受到了人們的青睞[4-5]。針對實際的測試數(shù)據(jù),在數(shù)據(jù)擬合時常常面臨一系列的抉擇,如采用線性擬合還是非線性擬合[6],采用多項式函數(shù)擬合還是既定函數(shù)擬合[7],采用函數(shù)擬合還是工具箱擬合[8-9]。顯然這些抉擇大大地增加了數(shù)據(jù)擬合的難度。為此,本文提出一種通用的數(shù)據(jù)擬合方法,并論證了該方法的合理性。最后,通過具體的實例說明了該方法的實用性。
一般情況下,根據(jù)一些孤立的測試數(shù)據(jù)很難直接確定它符合的既定函數(shù)。而多項式數(shù)據(jù)擬合方法由于可以選擇擬合的次數(shù)進而能達到數(shù)據(jù)擬合精度的要求,因而具有通用性。多項式擬合問題可以歸結(jié)為函數(shù)逼近問題,它是用多項式函數(shù)來逼近一組給定的數(shù)據(jù)。本質(zhì)上它是由具體的測試數(shù)據(jù)找到滿足的一般規(guī)律,即由特殊到一般的研究方法。多項式數(shù)據(jù)擬合的算法如下。
1)輸入數(shù)據(jù)。將實際的測試數(shù)據(jù)分別用向量x和y來表示;并給定擬合需要滿足的誤差距e,令數(shù)據(jù)擬合的初次數(shù)量n=1。
3)轉(zhuǎn)換。將擬合的多項式向量通過調(diào)用poly2str函數(shù)轉(zhuǎn)換為多項式函數(shù)。
4)輸出。輸出多項式函數(shù)并繪制擬合曲線。
首先來分析多項式數(shù)據(jù)擬合具有通用性的原因。下面的定理1給出泰勒中值定理,它說明任意函數(shù) f(x)在一定條件下均可用多項式函數(shù)去逼近,并且給出了逼近誤差。定理2給出了函數(shù)可以展開成多項式函數(shù)(泰勒級數(shù))的條件,因此用多項式函數(shù)去逼近 f(x)具有通用性。
定理1[10]若函數(shù) f(x)在x0的某一鄰域內(nèi)具有直到n+1階的導(dǎo)數(shù),則在該鄰域內(nèi) f(x)的n階泰勒公式為:
其中Rn(x)為拉格朗日余項。該式揭示了該鄰域內(nèi)f(x)可以用n次多項式近似表達,并且誤差為余項的絕對值|Rn(x)|。顯然,|Rn(x)|隨著n的增大而減小,即我們可以通過增加式(1)的項數(shù)來提高逼近的精度。這也是在算法2)中通過增加多項式擬合次數(shù)來逐漸達到精度要求的依據(jù)。
定理2[10]設(shè)函數(shù) f(x)在點x0的某一鄰域內(nèi)具有直到n+1階的導(dǎo)數(shù),則 f(x)在該鄰域內(nèi)能展開成泰勒級數(shù)的充分必要條件是 f(x)的泰勒公式中的余項Rn(x)當(dāng)n→∞時的極限為0。
由式(3)可以得到關(guān)于ak的n+1元的線性方程組,易證明該線性方程組對應(yīng)的系數(shù)矩陣為滿秩矩陣,因此方程組有唯一解。得到方程組的解,也就得到了擬合多項式的n+1個系數(shù)。
例1為了測定刀具的磨損速度,我們做了這樣的實驗,經(jīng)過一定時間(如每隔1小時),測量一次刀具的厚度,測試數(shù)據(jù)如表1所示,其中t表示測量時間,d表示每次測量相應(yīng)的刀具厚度。
表1 刀具磨損的測試數(shù)據(jù)
對該例子,我們用文中所示的算法進行擬合,當(dāng)擬合精度e=0.01和e=0.00001,得到的擬合多項式分別為 f1(x)和 f2(x),
擬合誤差分別為E=0.0067和E=2.4461×10-26,擬合曲線分別如圖1和圖2所示。
圖1 擬合精度e=0.01的數(shù)據(jù)擬合結(jié)果
圖2 擬合精度e=0.00001的數(shù)據(jù)擬合結(jié)果
例2已知有以下11個測量數(shù)據(jù)(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,試用多項式函數(shù)去擬合。
對該例子,用多項式數(shù)據(jù)擬合的算法進行擬合,當(dāng)擬合精度e=0.5和e=0.00001,得到的擬合多項式分別為 f3(x)和 f4(x),
擬合誤差分別為E=0.1884和E=1.6867×10-18,擬合曲線分別如圖3和圖4所示。
圖3 擬合精度e=0.5的數(shù)據(jù)擬合結(jié)果
圖4 擬合精度e=0.00001的數(shù)據(jù)擬合結(jié)果
為了從實際的工程測量、物理實驗和科學(xué)研究等諸多領(lǐng)域獲得的孤立數(shù)據(jù)中找到其滿足的內(nèi)在規(guī)律性,數(shù)據(jù)擬合方法是常用的數(shù)據(jù)分析方法。然而,選擇擬合方法通常需要考慮較多的因素進而增加了擬合的難度。為此,本文提出一種在實驗數(shù)據(jù)處理、統(tǒng)計數(shù)據(jù)分析等場合使用的一種基于MATLAB的通用數(shù)據(jù)擬合方法,并指出該方法可行的理論依據(jù),最后通過實例說明了該方法的通用性和實用性。
[1]彭芳麟,梁穎,劉振興.在計算物理基礎(chǔ)課中用MATLAB培養(yǎng)學(xué)生的編程能力[J].大學(xué)物理,2013,32(9):9-14.
[2]王海鵬,趙莉,王殿生,等.基于MATLAB的均勻設(shè)計實驗數(shù)據(jù)多元非線性最小二乘擬合[J].化學(xué)工程與裝備,2010(9):29-32.
[3]白曉煊.基于Matlab的雷達試驗數(shù)據(jù)擬合[J].信息技術(shù),2011(11):189-190.
[4]歐陽明松,徐連民.基于MATLAB的試驗數(shù)據(jù)擬合[J].南昌工程學(xué)院學(xué)報,2010,29(4):24-28.
[5]申紅蓮.Matlab中曲線擬合的方法[J].福建電腦,2010(7):10-11.
[6]丁士海,韓之俊.基于數(shù)據(jù)擬合的非線性方法及Matlab解決方案[J].統(tǒng)計與決策,2009(8):24-25.
[7]唐沖,惠輝輝.基于Matlab的高斯曲線擬合求解[J].計算機與數(shù)字工程,2013,41(8):1262-1263.
[8]江海東,費岳軍,應(yīng)岳.MATLAB擬合工具箱進行潮汐調(diào)和分析[J].海洋技術(shù),31(3):33-36.
[9]胡慶婉.使用MATLAB曲線擬合工具箱做曲線擬合[J].電腦知識與技術(shù),2010,21(6):5822-5823.
[10]同濟大學(xué)數(shù)學(xué)教研室.高等數(shù)學(xué)[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
國家自然科學(xué)基金項目[61307121];山西大同大學(xué)教學(xué)改革項目[XJG2014202];山西大同大學(xué)博士科研啟動項目[2013-B-17]
宋曉霞(1975-),女,山西廣靈人,博士,副教授。研究方向:信息處理、無線傳感器網(wǎng)絡(luò)。
〔責(zé)任編輯 高?!?/p>