楊 鑫,藺 琳
(大連財經學院,遼寧 大連 116000)
在實驗和統計中,需要根據已知的離散數據序列,采用函數逼近方法,構造與該序列誤差較小的函數,可以通過觀察和測試獲得f(x)的一組離散的數據[1].當獲得的實驗數據是足夠準確的,可以利用代數插值法進行計算從而近似原始函數.當實驗數據的觀察或測量不夠準確,插值法誤差則較大,可以使用最小二乘法進行函數逼近,降低誤差,效果較好.盡管求出的逼近曲線不一定經過所有點,但是會最大可能的接近原始曲線[2].函數逼近的數值方法從實際應用的角度來看,要解決一個函數的最佳逼近問題,需要構造出最佳逼近元和算出最佳逼近值[3].一般說要精確解決這兩個問題十分困難.這種情況要尋求最佳逼近元的近似表示和最佳逼近值的近似估計而設計出各種數值方法[4].本文針對離散的數據序列,采用函數逼近的方法,構造與該數據序列誤差較小的函數,具體包括多項式最小二乘法擬合,正交多項式最小二乘法擬合,并在Matlab中進行有關曲線擬合仿真實驗.
假定有一組數據(xi,yi),人們都希望可以找到近似函數,它在反映已知數據的變化趨勢的基礎上,產生的誤差不是很大,而且讓獲得的近似函數和被逼近的函數在一個給出的區(qū)間內產生誤差滿足相關的要求,這就是曲線擬合的思想[5].
(1)
最小二乘法在Matlab的環(huán)境下,提供了很多的好方法進行擬合.不僅可以利用函數的方法進行擬合,而且可以利用圖形界面擬合和曲線擬合工具箱擬合.
1)函數Polyfit進行多項式擬合
選擇合適的數學擬合公式是非常重要的,在進行數據擬合時,可以利用Matlab本身提供的函數進行線性曲線擬合[8].Polyfit函數的調用方式為p=polyfit(x,y,m),多項式曲線擬合是較頻繁使用的擬合數據的方式.如果數據比較多,多項式的階數一般很低,擬合的精確程度和實驗的效果都不太好.要提高擬合的精確程度和效率就要增大曲線的階數,計算上的復雜性及其他方面的不利又來源于階數較高.因此,擬合很多的數據僅僅只使用一種多項式曲線函數,又很不容易獲得高效率、高精度,利用分段的曲線擬合可以解決問題.
2)利用函數lsqcurvefit進行非線性函數擬合
對于非線性擬合,除少數形式外,大多數條件下是不能化成線性擬合,需要用非線性最小二乘法直接求解.該函數的調用格式為x=lsqcurvefit(y,x0,xd,yd),y為非線性函數,x0為初始參數,xd,yd是要擬合的數據.
若擬合模型p(x)=a0+a1x+…+anxn則稱其為多項式擬合.由最小二乘法確定系數a0,a1,…,an假設各點權為1,考慮
(2)
令其值最小,則有
(3)
(4)
此方程組為多項式擬合的法方程.
(5)
XY=A,A=X-1Y通過矩陣方程,得到擬合多項式的系數;即p(x,A)=a0+a1x+…+anxn;當擬合次數n比較大的情況下,方程的系數矩陣就變得病態(tài),獲取的結果誤差很大,導致實驗結果沒有意義.因此,在實際進行多項式曲線擬合時,擬合次數不適合取值很大.當擬合次數為零時,得到一種簡單的擬合模型p(x)=a0+a1x,這種模型計算比較簡單,被普遍地使用.
(6)
(7)
于是在正交多項式p(x)下的多項式擬合為
(8)
在給定結點xi(i=0,1,…,m)的情況下,可以用遞推公式的導出pi(x).設
(9)
這里pi(x)是首項系數為1的i次多項式.由正交性可得
(10)
圖1 數據擬合結果
本文以某種食品每件平均單價y與批量x之間的關系為樣本進行了數據擬合仿真實驗,其中x=[20 25 30 35 40 50 60 65 75 80],y=[1.81 1.70 1.65 1.55 1.48 1.40 1.30 1.25 1.21 1.20],其數據分布如圖1所示.分別利用二次多項式和正交多項式(最小二乘法)對數據進行擬合,擬合后得到二次多項式的模型為y=0.000 1x2-0.023 2x+2.213 1,正交二次多項式的模型為y=0.000 1x2-0.023 1x+2.208 3,擬合曲線結果見圖1.
從圖1可以看出,二次多項式擬合和正交多項式擬合都可以得到擬合曲線,并且兩種方法得到的曲線基本重合.
為了剖析不同擬合次數對兩種擬合方法的影響,對數據分別進行9次擬合,觀察其擬合后每個x值對應的y值的誤差平方和,結果見表1.
表1 不同擬合次數對擬合結果誤差平方和的影響
由表1可得,在多項式擬合結果中,擬合次數小于7時擬合次數越高,擬合結果的y值與實際數據的誤差越小,曲線越來越接近原始數據,曲線越逼近實際情況,實驗結果越精確.而正交多項式的擬合結果顯示,在擬合次數為5時擬合結果的誤差平方和達到最小,與真實結果最接近.為了直觀了解各個點實驗值的誤差分布情況,通過Matlab調用函數lsqcurvefit獲取擬合的曲線,得到擬合后方程的系數p分布情況,見圖2.
圖2 不同擬合次數對擬合方程系數的影響
由圖2可看出利用多項式擬合,如果擬合次數大于或等于7,與利用正交多項式最小二乘法擬合相比,擬合次數增高,求出方程系數增加程度較小,求出方程解誤差增大.因此,在求解離散數據系列中如要求擬合次數較多,應選擇正交多項式作最小二乘法曲線擬合.
綜上所述,多項式擬合的優(yōu)點是簡單方便.但其最大缺點為如果擬合次數高于或者等于7次,經過計算和分析,多項式擬合所得的正規(guī)方程組通常是病態(tài)的,會產生較大誤差,因此應選用正交多項式方法求解.使用最小二乘法進行曲線擬合時,可以通過擬合后每個點的y值與實際y值相比較進行誤差分析,也可用誤差平方和極小作為擬合標準,誤差平方和能在整體水平上系統地評價擬合后的精確度.對于擬合次數較高的,也要選用正交多項式進行擬合,得出的結果會更精確.對于曲線擬合,擬合次數越多,正交多項式最小二乘法的實驗結果的曲線越發(fā)接近原始數據,實驗結果越準確,誤差越小.
在實驗中,利用了多項式最小二乘法,正交多項式最小二乘法.同時,通過Matlab擬合工具箱調用相應的函數進行非線性函數擬合,進行誤差分析,并且選擇最適合的最小二乘法進行擬合.結果表明,基于最小二乘法原理的曲線擬合能夠清晰地表現出變量間的函數關系,還能通過數據點與曲線的偏離程度大致估計觀測誤差.正交多項式擬合比多項式擬合具有更小的擬合誤差,能夠提高實驗結果的精確性.