徐小華,胡曉飛,趙艷春
(1.昭通學院 網(wǎng)絡(luò)信息中心;2.昭通學院 數(shù)學與統(tǒng)計學院,云南 昭通 657000)
基于多項式非線性擬合問題的探討
徐小華1,胡曉飛2,趙艷春2
(1.昭通學院 網(wǎng)絡(luò)信息中心;2.昭通學院 數(shù)學與統(tǒng)計學院,云南 昭通 657000)
在實際問題中,變量之間存在大量的非線性關(guān)系.文章選取非線性模型的多項式方法來進行變量之間的數(shù)據(jù)擬合,從而推出單一的高階多項式擬合方法的缺點,提出采用兩個或多個三階多項式方法來彌補缺陷.
擬合;多項式;非線性
在實際的生產(chǎn)生活問中,變量之間幾乎不是簡簡單單的線性關(guān)系,而是非線性的,使得分析實際問題比較困難.要找出這些變量間的關(guān)系,就需用非線性來擬合.選擇恰當?shù)姆蔷€性擬合模型尤為重要.常見的非線性擬合模型有:冪函數(shù)模型、指數(shù)函數(shù)模型多項式模型等.其中,多項式模型在非線性擬合分析中占有重要的地位.
曲線擬合的最優(yōu)標準是采用常見的最小二乘法原理,所構(gòu)造的函數(shù)p(x)是一個次數(shù)小于觀測值個數(shù)的多項式.即設(shè)測得n個離散數(shù)據(jù)點(xi,yi)(i=1,2,3,…,n),構(gòu)造一個m(m≤n)次多項式p(x):
曲線擬合的評價有兩個因數(shù):一是擬合的多項式在各節(jié)點處的偏差(殘差)J=(p(xi)-yi)2;二是決定系數(shù)r2=1-J/S.對于較好的擬合來說,J的值應越接近0,r2的值應越接近1.
文章主要討論多項式的非線性擬合,所得到的數(shù)據(jù)是通過MATLAB語言來實現(xiàn)的.
某產(chǎn)品測得21個數(shù)據(jù)如下表:
x y x y x y 0 0.1 14 2.022 28 0.4308 2 1.884 16 1.65 30 0.203 4 2.732 18 1.5838 32 0.1652 6 3.388 20 1.35 34 -0.073 8 3.346 22 1.0082 36 -0.002 10 3 24 0.718 38 -0.1122 12 2.644 26 0.689 40 0.106
對其4至6階多項式的擬合.利用MATLAB程序得到的擬合表達式如下:
四階:
五階:
六階:
繪圖如圖1所示,并且得到四階至六階殘差J值分別是3.489346710108339,0.987557698632428,0.19017256778587 1.決定系數(shù)r2的值分別是:0.965805850678412, 0.993415281771642,0.993498647389725.
圖1 4至6階多項式的擬合圖
從擬合的圖形和擬合品質(zhì)可以得到,使用越高階的多項式,其J的值越來越小,r2平方的值越來越大.也就是說階數(shù)越高,可以得到更好的數(shù)據(jù)擬合.但是高階多項式存在兩個問題:數(shù)據(jù)點之間顯現(xiàn)出較大的誤差;需要使用大量的有效數(shù)位來表示它們的系數(shù).如果減少其有效位數(shù),則可能會產(chǎn)生較大的誤差,不具有魯棒性.如上例中對六階的取其八位的小數(shù)數(shù)位,那么產(chǎn)生的多項式是:
繪圖如圖2所示,J和r2的值分別是1.857245941222893,0.935692926976283.顯然,殘差比準確的系數(shù)要大,決定系數(shù)比準確的系數(shù)要大,所以擬合效果不好.從圖2也可以看出,當x的值很大,這個多項式偏離數(shù)據(jù)值較遠.擬合效果很差,對于x>30的值來說,幾乎沒有用處.也就是說,如果沒有足夠準確的找到多項式的系數(shù),多項式就很容易在較大的x值產(chǎn)生較大的誤差.
圖2 8位小數(shù)位精確度的效果
利用MATLAB完成以上功能程序如下:
為了解決高階多項式在回歸中出現(xiàn)的問題,采用兩個或多個函數(shù)來進行分段擬合數(shù)據(jù).文章中采用兩個三階多項式進行擬合.其區(qū)間在0≤x≤15上用一個三階多項式進行擬合;15≤x≤40上用另外的一個三階函數(shù)進行擬合.這是因為:三階比二階多項式更具有靈活性,并且比高階多項式更不容易受到數(shù)值不確定行的影響.得到回歸的表達式如下:
繪圖如圖3所示,J和r2的值分別是0.086280739926740,0.993296620892077.與前面的高階多項式回歸比較,后者都有更好的擬合品質(zhì)和效果.
圖3 使用兩個三階多項式的數(shù)據(jù)擬合
對上面的式子將系數(shù)取其八位小數(shù)位,利用MATLAB計算的到J和r2的值分別是0.086280740359406,0.993296620892077.利用MATLAB程序完成以上功能程序如下:
對于系數(shù)取其八位小數(shù)與精確的系數(shù)進行運算是的所獲得J和r2結(jié)果保持一致.其擬合圖形也幾乎和準確系數(shù)兩個多項式一樣,所以兩個三階多項式具有魯棒性.利用兩個或多個函數(shù)來擬合數(shù)據(jù),從而解決了一個高階多項式擬合產(chǎn)生的問題.
〔1〕W illiam J.Palm.MATLAB 7面向基礎(chǔ)教程[M].北京:清華大學出版社,2007.300-320.
〔2〕盛驟,謝式千,潘承毅.概率論與數(shù)理統(tǒng)計[M].北京:高等教育出版社,2009.292-313.
〔3〕劉衛(wèi)國.MATLAB程序設(shè)計與應用[M].北京:高等教育出版社,2008.148-152.
TP317
A
1673-260X(2014)01-0037-02