当前位置:文档之家› 数值分析 高斯—勒让德积分公式

数值分析 高斯—勒让德积分公式

数值分析 高斯—勒让德积分公式
数值分析 高斯—勒让德积分公式

高斯—勒让德积分公式

摘要:

高斯—勒让德积分公式可以用较少节点数得到高精度的计算结果,是现在现实生活中经常运用到的数值积分法。然而,当积分区间较大时,积分精度并不理想。

T he adva ntage of Gauss-Legendre integral formula is tend to get high-precision calculational result by using fewer Gauss-points, real life is now often applied numerical integration method. But the precision is not good when the length of integral interval is longer.

关键字:

积分计算,积分公式,高斯—勒让德积分公式,MATLAB

Keyword:

Integral Calculation , Integral formula ,Gauss-Legendre integral formula, Matlab 引言:

众所周知,微积分的两大部分是微分与积分。微分实际上是求一函数的导数,而积分是已知一函数的导数,求这一函数。所以,微分与积分互为逆运算。

实际上,积分还可以分为两部分。第一种,是单纯的积分,也就是已知导数求原函数,称为不定积分。

相对而言,另一种就是定积分了,之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。

计算定积分的方法很多,而高斯—勒让德公式就是其中之一。

高斯积分法是精度最高的插值型数值积分,具有2n+1阶精度,并且高斯积分总是稳定。而高斯求积系数,可以由Lagrange多项式插值系数进行积分得到。

高斯—勒让德求积公式是构造高精度差值积分的最好方法之一。他是通过让节点和积分系数待定让函数f(x)以此取i=0,1,2....n次多项式使其尽可能多的能够精确成立来求出积分节点和积分系数。高斯积分的代数精度是2n-1,而且是最

高的。通常运用的是(-1,1)的积分节点和积分系数,其他积分域是通过变换x=(b-a)t/2 +(a+b)/2 变换到-1到1之间积分。

1.现有的方法和理论

高斯勒让德求积公式

在高斯求积公式(4.5.1)中,若取权函数,区间为,则得公式{

我们知道勒让

德多项式是区间上的正交

多项式,因此,勒让德多项式的零点就是求积公式(上式)的高斯点.形如(上式)的高斯公式特别地称为高斯-勒让德求积公式.

若取的零点做节点构造求积公式

令它对准确成立,即可定出.这样构造出的一点高斯-勒让

德求积公式是中矩形公式.再取的两个零点构造求积公式

令它对都准确成立,有

由此解出,从而得到两点高斯-勒让德求积公式

三点高斯-勒让德求积公式的形式是

.如表列出高斯-勒让德求积公式的节点和系数.

1

2

~

3

4

(

公式(4.5.9)的余项由得

这里是最高项系数为1的勒让德多项式,由(3.2.6)及得

当时,有

它比辛普森公式余项还小,且比辛普森公式少算一个函数值.当积分区间不是[-1,1],而是一般的区间时,只要做变换

:

可将化为[-1,1],这时

对等式右端的积分即可使用高斯-勒让德求积公式.

复化Gauss-Legendre求积公式

将被积区间m等分, 记, 作变换

在每个小区间上应用Gauss-Legendre公式, 累加即得复化Gauss-Legendre求积公式

>

不妨设

则有:

Gauss点个数时,

Gauss点个数时,

总结复化Gauss-Legendre求积过程如下:

1. 分割区间, 记录区间端点值;

2. 通过查表或求解非线性方程组, 在所有小区间上, 将Gauss系数和Gauss点

的值代入变量替换后的公式;

3. 将所有区间的结果累加, 即得到整个区间上的积分近似值.

针对Gauss点个数和的复化Gauss-Legendre求积公式编写的一个简单的MATLAB函数compgauss() 如下:

function [ ] = compgauss(a, b, n)

% Composite Gauss Integration

% Equation Type: n=2, n=3

% Coded by 2010-05-25

% Divide Interval

% Calculate

% Sum Results

format long

f = @(x) exp(x).*sin(x);

h=(b-a)/n;

xk=zeros(n+1,1);

xk(1,1)=a;

xk(n+1,1)=b;

fk1=zeros(n,1);

fk2=zeros(n,1);

for i=1:n-1

xk(i+1,1)=a+h*i;

end

for j=1:n

{

fk1(j)=f((xk(j)+xk(j+1))/2+(h/2)*(-1/sqrt(3)))+...

f((xk(j)+xk(j+1))/2+(h/2)*(1/sqrt(3)));

end

for r=1:n

fk2(r)=(5/9)*f((xk(r)+xk(r+1))/2+(h/2)*(-sqrt(15)/5))+...

(8/9)*f((xk(r)+xk(r+1))/2+(h/2)*(0))+...

(5/9)*f((xk(r)+xk(r+1))/2+(h/2)*(sqrt(15)/5)); end

mysum1=h*sum(fk1)/2;

mysum2=h*sum(fk2)/2;

disp('Result of 2 Nodes:')

disp(mysum1);

disp('Result of 3 Nodes:')

disp(mysum2);

end

龙贝格,三点,五点以及变步长高斯勒让德求积法以下是关于龙贝格,三点,五点以及变步长高斯勒让德之间精度的相互比较#include <>

#include <>

#include <>

#define Precision1

# define e 2.

#define MAXRepeat 10

double function (double x)

{

double s;

s=1/x;

return s;

}

'

double Romberg(double a,double b,double f(double x))

{

int m,n,k;

double y[MAXRepeat],h,ep,p,xk,s,q;

h=b-a;

y[0]=h*(f(a)+f(b))/;fx);

3.数值实验

用4点(n=3)的高斯——勒让德求积公式计算

$

xdx x cos 20

2?

=

I π

.

解:

先将区间]

2,0[π

化为]1,1[-,由(1)

dt

b

a t a

b f a b dx x f b

a

)22(2)(11++--=??

-.(1)

有 dt

t t )1(4cos )1()4(231

1++=I ?-π

π.

根据表4-7中n=3的节点及系数值可求得

467402

.0)(3

0≈≈I ∑=k k k x f A .

( 准确值 467401.0=I )

|

用2,3n =的高斯-勒让德公式计算积分

3

1

sin .x e xdx ?

解:

3

1sin .

x I e xdx =?

[1,3],x ∈令2t x =-,则[1,1]t ∈-

用2n =的高斯—勒让德公式计算积分

0.5555556[(0.7745967)(0.7745967)]0.8888889(0)10.9484I f f f ≈?-++?≈

用3n =的高斯—勒让德公式计算积分

0.3478548[(0.8611363)(0.8611363)]0.6521452[(0.3399810)(0.3399810)]10.95014

I f f f f ≈?-++?-+≈

{

用四个节点的高斯―勒让德求积公式计算定积分x

x d 11

?+,计

算过程保留4位小数.

解 :

高斯-勒让德求积公式只求积分区间为[-1,1]上的积分问题.需作变换,

21

2+

=

u x ,当x=1时,u=1;当x=0时,u=-1.于是,

x x d 11

?

+=u

u

d 2232111?-+

=)21

861.02321861.023(9347.0[21++-? )]20

340.0232

340.023(

1652.0++-?+

9218.1]5445.21652.06423.29347.0[21

=?+?=

2. 总结

高斯―勒让德求积公式对定积分的计算拥有高精度的特点,但是这只存在

于积分区间在[-1,1]上,区间的变大会导致精度的降低。因此,寻找精度更高,加速更快的算法是必要的。

《参考文献》

[1]《数值计算》张军、林瑛、钟竞辉清华大学出版社2008 6 17

[2]《数值分析》陈晓江、黄樟灿·科学出版社2010 7 10

[3]《数值分析原理》吴勃英科学出版社2009 7 23

[4] 复化两点Gauss-Legendre求积公式的外推算法《桂林航天工业高等专科学校学报》2007年03期

相关主题
文本预览
相关文档 最新文档