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