楊亞輝,李志平,齊圓華(海南軟件職業(yè)技術(shù)學院,海南 瓊?!?71400)
?
數(shù)值積分的基本思想、術(shù)語及Maltab實現(xiàn)
楊亞輝,李志平,齊圓華
(海南軟件職業(yè)技術(shù)學院,海南瓊海571400)
摘 要:介紹了數(shù)值積分的基本思想、術(shù)語及MATLAB實現(xiàn)。
關(guān)鍵詞:數(shù)值積分,Newton-Cotes公式;高斯求積法;自適應求積法;MATLAB
用牛頓-萊布尼茲公式(Newton-leibniz formula)計算定積分在理論和解決實際問題中有很大的作用,但求解積分仍有很多困難。如涉及的初等函數(shù)的積分沒有或很難找到其有由初等函數(shù)構(gòu)成的解析表達式?;虮环e函數(shù)沒有函數(shù)表達式,只是一些由實驗數(shù)據(jù)或計算機的模擬輸出得到的函數(shù)關(guān)系(表格或圖形)。因此,探討近似計算的數(shù)值積分方法是有明顯的實際意義的。
在這些情況下, 必須對定積分
的值進行數(shù)值逼近(近似),這就是數(shù)值積分(numerical integration)。我們來看兩個例子:
例1:制造橢圓管
用平板材料制造橢圓管。為構(gòu)成一個軸長分別為a和b的橢圓,首先要找一個寬為L=2 aE的薄板,其中E是完全橢圓的積分
k2=。E沒有初等函數(shù)的理論分析表達式。
例2:用數(shù)值積分求誤差函數(shù)
誤差函數(shù)erf( x )
常出現(xiàn)在統(tǒng)計應用和一些拋物線類的微分方程的解中。方程(1)的積分也不能通過解析的辦法求值。數(shù)值積分在積分的解析式已知時也很有用,但是這樣做計算起來會有困難或不方便。對數(shù)值積分方法的選擇多少與f( x )的性質(zhì)或類型有關(guān)。所有的數(shù)值積分方法都要求f( x )可以在區(qū)間的任意x上求值。如果f( x )有奇異點(即對區(qū)間上的某些x*來說有,就要特別警惕。到目前為止,還沒有任何一種數(shù)值積分法可以適用于所有的積分。
數(shù)值積分也叫數(shù)值求積(numerical quadrature)。術(shù)語“求積”的本意是“求與某個平面圖形有相同面積的正方形的邊長”。這表明了數(shù)值積分的一個基本的計算策略:考慮定積分,
在積分所限定的區(qū)間中,被積函數(shù)f( x )的插值式在n個點處求值,這些點稱為節(jié)點(node)。節(jié)點用xi表示,并假設它們有序且各不相同(即。
已經(jīng)知道,分段多項式的插值比單個多項式的全局插值更加優(yōu)秀,這個結(jié)論對數(shù)值積分方法也適用。將整個閉區(qū)間[a , b ]劃分為N個小段(panel)。在每個小段上對f( x )進行低階多項式逼近。對每個小段上的逼近多項式積分時,就得到基本公式(basic rule):)。
基本公式涉及用足夠的(x , f ( x ))對來定義分段多項式的某一段,將此公式應用到N個小段并把結(jié)果相加得到了復合公式(composite rule),或稱為擴展公式(extended rule):
截斷誤差可用代數(shù)精度衡量,代數(shù)精度越高,誤差越?。环粗`差越大。代數(shù)精度是用來衡量數(shù)值積分公式近似程度的辦法,如果是一個次數(shù)不超過m的代數(shù)多項式,(2)式等號成立;而當是一個m + 1次多項式時,(3)式不能精確成立,則稱(3)式的代數(shù)精度為m。
在一個小段中節(jié)點的位置和數(shù)目決定了基本公式的很多重要特性。當節(jié)點均勻分布時,所用的積分公式就叫做Newton-Cotes公式。相反,高斯求積公式要選擇作為正交多項式零點的節(jié)點。高斯求積公式的截斷誤差比相同數(shù)目節(jié)點的Newton-Cotes公式的要小得多。雖然高斯求積公式難于推導,但是在程序中實現(xiàn)時不會有明顯的困難。
自適應(adaptive)數(shù)值積分法通過估計截斷誤差來決定是否需要更密的分布節(jié)點,從而達到指定精度。若需要增加節(jié)點,函數(shù)會在新節(jié)點處重新求值,截斷誤差也要重新估計。
MATLAB符號數(shù)學工具箱(Symbolic Math Toolbox)求數(shù)值積分的常用命令如下:
矩形公式命令sum(y) %輸出一個向量y的分量的和,按矩形公式計算積分的近似值。
梯形公式命令trapz(x,y)%輸入向量x=[x0,x1,…,xn],輸出同維數(shù)的向y=[f0,f1,… ,fn],按梯形公式計算積分近似值。
梯形公式命令trapz(y)%按梯形公式計算積分,但取步長h=1.辛普森公式quad('fun',a,b)%計算函數(shù)fun從a到b的定積分,自動選擇步長,誤差為10-3。
辛普森公式quad8('fun',a,b)%用高精度計算,效果比quad更好。
參考文獻:
[1]Gerala Reckttenwald(美).數(shù)值方法和Mtalab實現(xiàn)與應用[M].北京:機械工業(yè)出版社.
[2]王能超.計算方法簡明教程[M].北京:高等教育出版社,2004.
[3]姜健飛.數(shù)值分析及其Matlab實驗[M].北京:科學出版社,2004.
[4]黃明游.數(shù)值計算方法[M].北京:科學出版社,2005.
基金項目:海南省自然科學基金資助項目(編號:112008)
DOI :10.16640/j.cnki.37-1222/t.2016.01.250