胡松巖
西南財(cái)經(jīng)大學(xué)會(huì)計(jì)學(xué)院,四川成都610074
自適應(yīng)高斯-勒讓德求積法
胡松巖
西南財(cái)經(jīng)大學(xué)會(huì)計(jì)學(xué)院,四川成都610074
本文構(gòu)造了自適應(yīng)三點(diǎn)Gauss-Legendre求積算法,并初步對(duì)該算法和MATLAB自適應(yīng)Simpson積分程序(quad函數(shù))的計(jì)算效率進(jìn)行了比較。數(shù)值結(jié)果表明:在同一精度下,該算法的計(jì)算成本大約是自適應(yīng)Simpson積分算法的70%。
正交多項(xiàng)式;自適應(yīng)Gauss-Legendre算法;自適應(yīng)Simpson積分
積分是科學(xué)計(jì)算中經(jīng)常遇到的問(wèn)題之一。在數(shù)值積分的諸多算法中,辛普森算法是最常用的一種有效算法,許多著名的科學(xué)計(jì)算軟件中計(jì)算定積分的程序都是基于辛普森算法設(shè)計(jì)的。辛普森算法的一個(gè)突出優(yōu)點(diǎn)是在積分區(qū)間逐步細(xì)分過(guò)程中,已經(jīng)計(jì)算的節(jié)點(diǎn)的函數(shù)值可以重復(fù)利用。與辛普森算法相比,高斯——勒讓德積分法的優(yōu)點(diǎn)是在節(jié)點(diǎn)數(shù)量一定的情況下具有更高的代數(shù)精度。然而,在積分區(qū)間逐步細(xì)分過(guò)程中,已經(jīng)計(jì)算的節(jié)點(diǎn)的函數(shù)值難以重復(fù)使用。高斯積分雖然在積分計(jì)算中有諸多優(yōu)點(diǎn),并得到了廣泛應(yīng)用[1-3],但與辛普森算法相比哪一個(gè)計(jì)算效率更高還沒(méi)有見過(guò)報(bào)到。
本文,我們以三點(diǎn)高斯——勒讓德積分法為基礎(chǔ),給出一種自適應(yīng)數(shù)值積分算法,并與Matlab中的自適應(yīng)辛普森積分法進(jìn)行了數(shù)值比較。結(jié)果表明,自適應(yīng)三點(diǎn)高斯——勒讓德積分法的計(jì)算成本大約是辛普森算法的70%,計(jì)算效率明顯高于辛普森積分法。
1.1勒讓德正交多項(xiàng)式
定義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 ),…(有限個(gè),或無(wú)限個(gè))滿足關(guān)系
則稱{φk(x)}nj=0為[a, b]上帶權(quán)ρ(x)的正交函數(shù)族。
定義1.2設(shè)φn(x)是[a, b]首項(xiàng)系數(shù)an≠0的n次多項(xiàng)式,ρ(x)為[a, b]上的權(quán)函數(shù),如果多項(xiàng)式序列{φk(x )}nk=0是正交函數(shù)族,則稱多項(xiàng)式序列{φk(x )}nk=0在[a, b]上帶權(quán)ρ(x)正交;稱φn(x)為[a, b]上帶權(quán)ρ(x)的n次正交多項(xiàng)式。
定義1.3在區(qū)間[1,1]-上關(guān)于權(quán)函數(shù)()1xρ≡的正交多項(xiàng)式稱為L(zhǎng)egendre多項(xiàng)式。
1.2勒讓德求積公式
正交多項(xiàng)式的根都是單實(shí)根,且分布在相應(yīng)的區(qū)間內(nèi)。在求積公式
中,取n+1次勒讓德多項(xiàng)式的n+1個(gè)根作為積分節(jié)點(diǎn)x0,x1,…,xn,記lk(x)為拉格朗日插值基函數(shù),即
下面給出三點(diǎn)高斯——勒讓德求積公式。
取3次勒讓德多項(xiàng)式P3( x)=(5x3-3x)/2的三個(gè)零點(diǎn)作為積分節(jié)點(diǎn),可得三點(diǎn)高斯-勒讓德求積公式
當(dāng)積分區(qū)間不是[1,1]-,而是一般區(qū)間[,]a b時(shí),只要作變換
即可得到
自適應(yīng)積分法就是按照積分區(qū)間上被積函數(shù)變化的劇烈程度,動(dòng)態(tài)調(diào)整積分節(jié)點(diǎn)的分布密度,以達(dá)到節(jié)約計(jì)算成本的目的。下面三次高斯——勒讓德正交多項(xiàng)式的根為節(jié)點(diǎn),建立自適應(yīng)的高斯——勒讓德求積格式。
記在積分區(qū)間[a, b]的某一子區(qū)間[di, di+1]上的三點(diǎn)高斯-勒讓德求積公式的積分值為
我們給出的自適應(yīng)積分方法的基本思想是:整個(gè)區(qū)間[,]a b上的積分值()I f用多個(gè)子區(qū)間[di, di+1](i=0,1,…,m-1,d0=a, xm=b)上的三點(diǎn)高斯-勒讓德積分值之和來(lái)近似,
即
假定當(dāng)前區(qū)間為[c1, c2],令
則
下面通過(guò)一定要求誤差來(lái)判斷區(qū)間是否細(xì)分,令
將區(qū)間[c1, c2]分成四個(gè)小區(qū)間[d1, d2],[d2,d3],[d3, d4],[d4,d5],則
我們以被積函數(shù)的原函數(shù)能夠用初等函數(shù)表達(dá)的積分問(wèn)題為例,通過(guò)10個(gè)算例對(duì)自適應(yīng)高斯-勒讓德求積算法進(jìn)行了積分精確性驗(yàn)證.取ε=10-6,ε=10-8,采用雙精度計(jì)算,與Matlab中的自適應(yīng)辛普森算法的計(jì)算量進(jìn)行了比較。
取ε=10-6,ε=10-8(精確解為I=-1.42602475634627),利用自適應(yīng)三點(diǎn)高斯勒讓德算法以及自適應(yīng)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表1。
表1 例1在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表2。
表2 例2在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表3。
表3 例3在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表4。
表4 例4在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表5。
表5 例5在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表6。
表6 例6在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表7。
表7 例7在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表8。
表8 例8在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表9。
表9 例9在兩種控制精度下的計(jì)算結(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)辛普森算法分別計(jì)算積分,計(jì)算結(jié)果見表10。
表10 例10在兩種控制精度下的計(jì)算結(jié)果Table 10 Results comparison of the two methods with different precisions on EX 10
本文基于三點(diǎn)高斯-勒讓德求積公式構(gòu)造了一種自適應(yīng)積分算法。根據(jù)我們的數(shù)值試驗(yàn),當(dāng)計(jì)算精度為ε=10-6時(shí),三點(diǎn)自適應(yīng)高斯-勒讓德求積算法的平均計(jì)算量約為辛普森算法的71%;當(dāng)計(jì)算精度為ε=10-8時(shí),三點(diǎn)自適應(yīng)高斯-勒讓德求積算法的平均計(jì)算量約為自適應(yīng)辛普森算法的65%,由此可見新算法具有一定的實(shí)用價(jià)值。根據(jù)我們的數(shù)值經(jīng)驗(yàn),兩點(diǎn)自適應(yīng)高斯-勒讓德求積算法的計(jì)算效率遠(yuǎn)比三點(diǎn)的算法低,甚至不如自適應(yīng)辛普森算法,而四點(diǎn)及以上的自適應(yīng)高斯-勒讓德求積算法將顯著增加子區(qū)間的分割數(shù)量,從而降低計(jì)算效率。因此,我們認(rèn)為,三點(diǎn)自適應(yīng)高斯-勒讓德求積算法在該類算法中,應(yīng)該是最好的。
[1]李炯城,林惜斌,肖恒輝,等.高階高斯型積分計(jì)算機(jī)求解算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(5):1871-1875
[2]張慶禮,王曉梅,殷紹唐,等.高階高斯積分節(jié)點(diǎn)的高精度數(shù)值計(jì)算[J].中國(guó)工程科學(xué),2008,10(2):35-40
[3]周立峰,吳明.用高斯積分法計(jì)算混油濃度[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-),女,漢族,山東棲霞人,本科生.