胡松巖
西南財經(jīng)大學(xué)會計學(xué)院,四川成都610074
自適應(yīng)高斯-勒讓德求積法
胡松巖
西南財經(jīng)大學(xué)會計學(xué)院,四川成都610074
本文構(gòu)造了自適應(yīng)三點(diǎn)Gauss-Legendre求積算法,并初步對該算法和MATLAB自適應(yīng)Simpson積分程序(quad函數(shù))的計算效率進(jìn)行了比較。數(shù)值結(jié)果表明:在同一精度下,該算法的計算成本大約是自適應(yīng)Simpson積分算法的70%。
正交多項式;自適應(yīng)Gauss-Legendre算法;自適應(yīng)Simpson積分
積分是科學(xué)計算中經(jīng)常遇到的問題之一。在數(shù)值積分的諸多算法中,辛普森算法是最常用的一種有效算法,許多著名的科學(xué)計算軟件中計算定積分的程序都是基于辛普森算法設(shè)計的。辛普森算法的一個突出優(yōu)點(diǎn)是在積分區(qū)間逐步細(xì)分過程中,已經(jīng)計算的節(jié)點(diǎn)的函數(shù)值可以重復(fù)利用。與辛普森算法相比,高斯——勒讓德積分法的優(yōu)點(diǎn)是在節(jié)點(diǎn)數(shù)量一定的情況下具有更高的代數(shù)精度。然而,在積分區(qū)間逐步細(xì)分過程中,已經(jīng)計算的節(jié)點(diǎn)的函數(shù)值難以重復(fù)使用。高斯積分雖然在積分計算中有諸多優(yōu)點(diǎn),并得到了廣泛應(yīng)用[1-3],但與辛普森算法相比哪一個計算效率更高還沒有見過報到。
本文,我們以三點(diǎn)高斯——勒讓德積分法為基礎(chǔ),給出一種自適應(yīng)數(shù)值積分算法,并與Matlab中的自適應(yīng)辛普森積分法進(jìn)行了數(shù)值比較。結(jié)果表明,自適應(yīng)三點(diǎn)高斯——勒讓德積分法的計算成本大約是辛普森算法的70%,計算效率明顯高于辛普森積分法。
1.1勒讓德正交多項式
定義1.1若f( x), g( x)∈C[ a, b],ρ(x)為[a, b]上的權(quán)函數(shù)且滿足

則稱f( x)與g( x)在[a, b]上帶權(quán)ρ(x)正交。若函數(shù)族φ0(x),φ1(x),…,φn(x ),…(有限個,或無限個)滿足關(guān)系

則稱{φk(x)}nj=0為[a, b]上帶權(quán)ρ(x)的正交函數(shù)族。
定義1.2設(shè)φn(x)是[a, b]首項系數(shù)an≠0的n次多項式,ρ(x)為[a, b]上的權(quán)函數(shù),如果多項式序列{φk(x )}nk=0是正交函數(shù)族,則稱多項式序列{φk(x )}nk=0在[a, b]上帶權(quán)ρ(x)正交;稱φn(x)為[a, b]上帶權(quán)ρ(x)的n次正交多項式。
定義1.3在區(qū)間[1,1]-上關(guān)于權(quán)函數(shù)()1xρ≡的正交多項式稱為Legendre多項式。
1.2勒讓德求積公式
正交多項式的根都是單實(shí)根,且分布在相應(yīng)的區(qū)間內(nèi)。在求積公式

中,取n+1次勒讓德多項式的n+1個根作為積分節(jié)點(diǎn)x0,x1,…,xn,記lk(x)為拉格朗日插值基函數(shù),即


下面給出三點(diǎn)高斯——勒讓德求積公式。
取3次勒讓德多項式P3( x)=(5x3-3x)/2的三個零點(diǎn)作為積分節(jié)點(diǎn),可得三點(diǎn)高斯-勒讓德求積公式

當(dāng)積分區(qū)間不是[1,1]-,而是一般區(qū)間[,]a b時,只要作變換

即可得到

自適應(yīng)積分法就是按照積分區(qū)間上被積函數(shù)變化的劇烈程度,動態(tài)調(diào)整積分節(jié)點(diǎn)的分布密度,以達(dá)到節(jié)約計算成本的目的。下面三次高斯——勒讓德正交多項式的根為節(jié)點(diǎn),建立自適應(yīng)的高斯——勒讓德求積格式。
記在積分區(qū)間[a, b]的某一子區(qū)間[di, di+1]上的三點(diǎn)高斯-勒讓德求積公式的積分值為

我們給出的自適應(yīng)積分方法的基本思想是:整個區(qū)間[,]a b上的積分值()I f用多個子區(qū)間[di, di+1](i=0,1,…,m-1,d0=a, xm=b)上的三點(diǎn)高斯-勒讓德積分值之和來近似,
即

假定當(dāng)前區(qū)間為[c1, c2],令

則

下面通過一定要求誤差來判斷區(qū)間是否細(xì)分,令

將區(qū)間[c1, c2]分成四個小區(qū)間[d1, d2],[d2,d3],[d3, d4],[d4,d5],則

我們以被積函數(shù)的原函數(shù)能夠用初等函數(shù)表達(dá)的積分問題為例,通過10個算例對自適應(yīng)高斯-勒讓德求積算法進(jìn)行了積分精確性驗證.取ε=10-6,ε=10-8,采用雙精度計算,與Matlab中的自適應(yīng)辛普森算法的計算量進(jìn)行了比較。
取ε=10-6,ε=10-8(精確解為I=-1.42602475634627),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表1。

表1 例1在兩種控制精度下的計算結(jié)果Table 1 Results comparison of the two methods with different precisions on EX 1
取ε=10-6,ε=10-8(精確解為I=29.32621380439115),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表2。

表2 例2在兩種控制精度下的計算結(jié)果Table 2 Results comparison of the two methods with different precisions on EX 2
取ε=10-6,ε=10-8(精確解為I=0.57079632679490),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表3。

表3 例3在兩種控制精度下的計算結(jié)果Table 3 Results comparison of the two methods with different precisions on EX 3
取ε=10-6,ε=10-8(精確解為I=0.959572318005),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表4。

表4 例4在兩種控制精度下的計算結(jié)果Table 4 Results comparison of the two methods with different precisions on EX 4
取ε=10-6,ε=10-8(精確解為I=0.16666666666667),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表5。

表5 例5在兩種控制精度下的計算結(jié)果Table 5 Results comparison of the two methods with different precisions on EX 5
取ε=10-6,ε=10-8(精確解為I=13.28441557966756),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表6。

表6 例6在兩種控制精度下的計算結(jié)果Table 6 Results comparison of the two methods with different precisions on EX 6
取ε=10-6,ε=10-8(精確解為I=315.038461538461),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表7。

表7 例7在兩種控制精度下的計算結(jié)果Table 7 Results comparison of the two methods with different precisions on EX 7
取ε=10-6,ε=10-8(精確解為I=0.33333333333333),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表8。

表8 例8在兩種控制精度下的計算結(jié)果Table 8 Results comparison of the two methods with different precisions on EX 8
取ε=10-6,ε=10-8(精確解為I=0.54936030677801),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表9。

表9 例9在兩種控制精度下的計算結(jié)果Table 9 Results comparison of the two methods with different precisions on EX 9
取ε=10-6,ε=10-8(精確解為I=0.27219826128795),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計算積分,計算結(jié)果見表10。

表10 例10在兩種控制精度下的計算結(jié)果Table 10 Results comparison of the two methods with different precisions on EX 10
本文基于三點(diǎn)高斯-勒讓德求積公式構(gòu)造了一種自適應(yīng)積分算法。根據(jù)我們的數(shù)值試驗,當(dāng)計算精度為ε=10-6時,三點(diǎn)自適應(yīng)高斯-勒讓德求積算法的平均計算量約為辛普森算法的71%;當(dāng)計算精度為ε=10-8時,三點(diǎn)自適應(yīng)高斯-勒讓德求積算法的平均計算量約為自適應(yīng)辛普森算法的65%,由此可見新算法具有一定的實(shí)用價值。根據(jù)我們的數(shù)值經(jīng)驗,兩點(diǎn)自適應(yīng)高斯-勒讓德求積算法的計算效率遠(yuǎn)比三點(diǎn)的算法低,甚至不如自適應(yīng)辛普森算法,而四點(diǎn)及以上的自適應(yīng)高斯-勒讓德求積算法將顯著增加子區(qū)間的分割數(shù)量,從而降低計算效率。因此,我們認(rèn)為,三點(diǎn)自適應(yīng)高斯-勒讓德求積算法在該類算法中,應(yīng)該是最好的。
[1]李炯城,林惜斌,肖恒輝,等.高階高斯型積分計算機(jī)求解算法[J].計算機(jī)工程與設(shè)計,2012,33(5):1871-1875
[2]張慶禮,王曉梅,殷紹唐,等.高階高斯積分節(jié)點(diǎn)的高精度數(shù)值計算[J].中國工程科學(xué),2008,10(2):35-40
[3]周立峰,吳明.用高斯積分法計算混油濃度[J].天然氣與石油,2005,23(5):4-6
Self-adaptive Gauss-Legendre Quadrature Method
HU Song-yan
School of Accounting,Southwestern University of Finance and Economics,Chengdu610074,China
In this paper,a self-adaptive three point Gauss-Legendre quadrature method was proposed and the efficiency of the method was compared with the program of QUAD in MATLAB preliminarily.In view of function evaluation times,the computation cost of the new method was almost 70 percentage of QUAD under the same precision.
Orthogonal polynomials;self-adaptive Gauss-Legendre quadrature method;self-adaptive Simpson-method
O241.4
A
1000-2324(2014)04-0610-05
2013-03-11
2013-03-20
胡松巖(1992-),女,漢族,山東棲霞人,本科生.