靳海娟
(長治學(xué)院 數(shù)學(xué)系,山西 長治 046011)
《數(shù)值分析》(Numerical Analysis)是大學(xué)數(shù)學(xué)教學(xué)的必修課程。為了達到理想的教學(xué)效果,借助MATLAB軟件以實驗課的形式輔助教學(xué)越來越常見。MATLAB是目前世界上最為通用的數(shù)學(xué)和工程計算軟件之一,尤其是在《數(shù)值分析》課程的算法實現(xiàn)方面,發(fā)揮著巨大的作用。
x0,x1,x2,…,xn為[a,b]上 n+1個互不相同的點,f(x)為定義在區(qū)間[a,b]上的函數(shù),準為給定的一個函數(shù)類,若準上有函數(shù)φ(x),滿足
則稱 x0,x1,x2,…,xn為插值節(jié)點,φ(x)為插值函數(shù),f(x)為被插函數(shù),這種求函數(shù)近似式的方法稱為插值法[6]。
2.2.1 Lagrange插值法
先構(gòu)造 Lagrange插值基函數(shù) li(x)(i=0,1,2,…,n),它的次數(shù)不超過n,且滿足
然后以對應(yīng)點處的函數(shù)值為系數(shù)作線性組合,即得所要求的多項式,由多項式li(x)有n個根xj(j=0,1,…,i-1,i+1,…,n)故它必有如下形式:
n次Lagrange插值多項式的Ln(x)的公式為:
余項為
ξ 介于 x與節(jié)點 x0,x1,…,xn之間。
2.2.2 牛頓插值法
設(shè)有函數(shù)f(x),x0,x1,x2,…,xn為一系列互不相等的點,
k=1,2,…,n為f(x)關(guān)于節(jié)點x0,xk的1階差商,
(k=1,2,…,n)為f(x)關(guān)于節(jié)點x0,x1,xk的二階差商。
一般的若定義了k-1階差商,則稱
其中Newton插值公式為:
注意:由插值多項式的唯一性定理可知,Nn(x)=Ln(x)為f(x)關(guān)于節(jié)點x0,x1,x2,…,xn的Lagrange插值多項式。
2.2.3 分段線性插值法
分析插值結(jié)果可以發(fā)現(xiàn),實線為原函數(shù)f(x),在[-5,-4]和[4,5]部分,L10(x)比L5(x)效果更差,這種高階插值的振蕩現(xiàn)象稱為Runge現(xiàn)象。避免高階插值Runge現(xiàn)象的基本有效方法是使用分段函數(shù)進行分段插值。
對給定的區(qū)間[a,b]作分割(一般選擇等分):a=x0<x1<x2<…<xn=b 在每個小區(qū)間 [xi,xi+1]上作f(x)以xi,xi+1為節(jié)點的線性插值,記這個線性插值函數(shù)為si(x),則
于是就得到了分段線性插值函數(shù)。記為P(x),P(x)有如下特點:
圖1 高階插值的Runge現(xiàn)象
P(x)∈C[a,b]。
P(x)在[xi,xi+1]上為一個不高于一次的多項式。
在漁業(yè)評估的問題中,往往要求解體長與體重的關(guān)系。下面我們分別運用Lagrange插值法,Newton插值法和分段線性插值法對該問題進行分析研究?;舅枷肴缦拢?/p>
把測量次數(shù)確定為j=0,1,…,n時,測量同一種不同大小的魚類樣品對應(yīng)的體長與體重數(shù)據(jù)(xj,yj),其中xj表示第j條魚的體長,yj表示第j條魚的體重,即求n次多項式Pn(x),使?jié)M足條件:
xj為插值節(jié)點。已知一組魚體長與體重的實測結(jié)果如下表1所示。
表1 北部灣藍圓鱔體長和體重的的實測結(jié)果
取四個節(jié)點 x0,x1,x2,x3。分別用 Lagrange插值,Newton插值,分段線性插值法進行插值,構(gòu)造3階插值多項式與原函數(shù)進行比較,分析各個插值多項式與原函數(shù)的接近程度。
表2 節(jié)點表
由此可得Lagrange插值多項式:
Newton插值多項式:
其中
表3 3階差商
由L3(x)與N3(x)的計算結(jié)果可知L3(x)=N3(x),也正驗證了插值多項式的唯一性這一結(jié)論。下面用MATLAB作圖比較Lagrange插值多項式與原函數(shù)的接近程度,進而分析Lagrange插值法的插值效果,結(jié)果如圖3所示。
圖2 Lagrange插值與原函數(shù)圖像比較
圖3 分段線性插值與原函數(shù)作圖比較
由運行結(jié)果可知,實線為原函數(shù)f(x),虛線為Lagrange插值多項式L3(x)或Newton插值多項式N3(x)。分析插值結(jié)果可以發(fā)現(xiàn),Lagrange插值法的插值效果符合要求。
(3)分3段線性插值多項式
下面用MATLAB作圖比較分段線性插值多項式與原函數(shù)的接近程度,進而分析分段線性插值法的插值效果。
由圖2,圖3可知,實線為f(x),虛線為P(x),且分段線性插值多項式P(x)的S2(x)與原函數(shù)完全重合,從圖2和圖3對比可以看出:用分段線性插值法比Lagrange插值法更接近原函數(shù)。
則有以下結(jié)論:已知魚的體長估測其體重時,運用Lagrange插值法和Newton插值法結(jié)果是相同的,但從其多項式表達式上講,Newton插值要比Lagrange插值簡單。在運用Lagrange插值法時,要注意插值節(jié)點個數(shù)的選擇,當(dāng)節(jié)點選擇過多時,高次多項式雖然是連續(xù)的,但是很多情況下不一定收斂,甚至可能會產(chǎn)生Runge現(xiàn)象。而分段線性插值則因為在每一小區(qū)間上都是線性插值,從而極大地降低了插值多項式的次數(shù),克服了Lagrange值法當(dāng)節(jié)點不斷加密時出現(xiàn)的Runge現(xiàn)象。它的缺點是所求的插值函數(shù)的光滑性較差,這就要求一種更好的方法來克服這一缺點。