您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 数值分析-高斯—勒让德积分公式
《数值分析》课程设计说明书1高斯—勒让德积分公式摘要:高斯—勒让德积分公式可以用较少节点数得到高精度的计算结果,是现在现实生活中经常运用到的数值积分法。然而,当积分区间较大时,积分精度并不理想。TheadvantageofGauss-Legendreintegralformulaistendtogethigh-precisioncalculationalresultbyusingfewerGauss-points,reallifeisnowoftenappliednumericalintegrationmethod.Buttheprecisionisnotgoodwhenthelengthofintegralintervalislonger.关键字:积分计算,积分公式,高斯—勒让德积分公式,MATLABKeyword:IntegralCalculation,Integralformula,Gauss-Legendreintegralformula,Matlab引言:众所周知,微积分的两大部分是微分与积分。微分实际上是求一函数的导数,而积分是已知一函数的导数,求这一函数。所以,微分与积分互为逆运算。实际上,积分还可以分为两部分。第一种,是单纯的积分,也就是已知导数求原函数,称为不定积分。相对而言,另一种就是定积分了,之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。计算定积分的方法很多,而高斯—勒让德公式就是其中之一。高斯积分法是精度最高的插值型数值积分,具有2n+1阶精度,并且高斯积分总是稳定。而高斯求积系数,可以由Lagrange多项式插值系数进行积分得到。高斯—勒让德求积公式是构造高精度差值积分的最好方法之一。他是通过让节点和积分系数待定让函数f(x)以此取i=0,1,2....n次多项式使其尽可能多的能够精确成立来求出积分节点和积分系数。高斯积分的代数精度是2n-1,而且是最高的。通常运用的是(-1,1)的积分节点和积分系数,其他积分域是通过变换《数值分析》课程设计说明书2x=(b-a)t/2+(a+b)/2变换到-1到1之间积分。1.现有的方法和理论1.1高斯勒让德求积公式在高斯求积公式(4.5.1)中,若取权函数,区间为,则得公式德多项式是区间上的正交我们知道勒让多项式,因此,勒让德多项式的零点就是求积公式(上式)的高斯点.形如(上式)的高斯公式特别地称为高斯-勒让德求积公式.若取的零点做节点构造求积公式令它对准确成立,即可定出.这样构造出的一点高斯-勒让德求积公式是中矩形公式.再取的两个零点构造求积公式令它对都准确成立,有.由此解出,从而得到两点高斯-勒让德求积公式《数值分析》课程设计说明书3.三点高斯-勒让德求积公式的形式是.如表列出高斯-勒让德求积公式的节点和系数.00.00000002.000000010.57735031.000000020.77459670.00000000.55555560.888888930.86113630.33998100.34785480.652145240.90617980.53846930.00000000.23692690.47862870.5688889公式(4.5.9)的余项由(4.5.8)得,这里是最高项系数为1的勒让德多项式,由(3.2.6)及(3.2.7)得.《数值分析》课程设计说明书4当时,有.它比辛普森公式余项还小,且比辛普森公式少算一个函数值.当积分区间不是[-1,1],而是一般的区间时,只要做变换可将化为[-1,1],这时.对等式右端的积分即可使用高斯-勒让德求积公式.1.2复化Gauss-Legendre求积公式将被积区间m等分,记,作变换在每个小区间上应用Gauss-Legendre公式,累加即得复化Gauss-Legendre求积公式不妨设《数值分析》课程设计说明书5则有:Gauss点个数时,Gauss点个数时,总结复化Gauss-Legendre求积过程如下:1.分割区间,记录区间端点值;2.通过查表或求解非线性方程组,在所有小区间上,将Gauss系数和Gauss点的值代入变量替换后的公式;3.将所有区间的结果累加,即得到整个区间上的积分近似值.针对Gauss点个数和的复化Gauss-Legendre求积公式编写的一个简单的MATLAB函数compgauss()如下:function[]=compgauss(a,b,n)%CompositeGaussIntegration%EquationType:n=2,n=3%CodedbyNan.Xiao2010-05-25%Step.1DivideInterval%Step.2Calculate%Step.3SumResultsformatlongf=@(x)exp(x).*sin(x);h=(b-a)/n;xk=zeros(n+1,1);xk(1,1)=a;《数值分析》课程设计说明书6xk(n+1,1)=b;fk1=zeros(n,1);fk2=zeros(n,1);fori=1:n-1xk(i+1,1)=a+h*i;endforj=1:nfk1(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)));endforr=1:nfk2(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));endmysum1=h*sum(fk1)/2;mysum2=h*sum(fk2)/2;disp('Resultof2Nodes:')disp(mysum1);disp('Resultof3Nodes:')disp(mysum2);end1.3龙贝格,三点,五点以及变步长高斯勒让德求积法以下是关于龙贝格,三点,五点以及变步长高斯勒让德之间精度的相互比较#includeiostream.h#includemath.h#includeiomanip.h#definePrecision10.000000000001#definee2.71828183《数值分析》课程设计说明书7#defineMAXRepeat10doublefunction(doublex){doubles;s=1/x;returns;}doubleRomberg(doublea,doubleb,doublef(doublex)){intm,n,k;doubley[MAXRepeat],h,ep,p,xk,s,q;h=b-a;y[0]=h*(f(a)+f(b))/2.0;//计算T`1`(h)=1/2(b-a)(f(a)+f(b));m=1;n=1;ep=Precision1+1;while((ep=Precision1)&&(mMAXRepeat)){p=0.0;for(k=0;kn;k++){xk=a+(k+0.5)*h;p=p+f(xk);}p=(y[0]+h*p)/2.0;//T`m`(h/2),变步长梯形求积公式s=1.0;for(k=1;k=m;k++){s=4.0*s;//pow(4,m)q=(s*p-y[k-1])/(s-1.0);《数值分析》课程设计说明书8y[k-1]=p;p=q;}ep=fabs(q-y[m-1]);m=m+1;y[m-1]=q;n=n+n;//24816h=h/2.0;//二倍分割区间returnq;}doubleThreePointGaussLegendre(doublea,doubleb,doublef(doublex)){doublex,w;staticdoubleX[3]={-sqrt(15)/5.0,0,sqrt(15)/5.0};staticdoubleL[3]={5/9.0,8/9.0,5/9.0};w=0.0;for(inti=0;i3;i++){x=((b-a)*X[i]+(b+a))/2.0;w=w+f(x)*L[i];}returnw;}doubleFivePointGaussLegendre(doublea,doubleb,doublef(doublex)){doublex,w;staticdoubleX[5]={-0.9061798459,-0.5384693101,0,0.5384693101,0.9061798459};《数值分析》课程设计说明书9staticdoubleL[5]={0.2369268851,0.4786286705,0.5688888889,0.4786286705,0.2369268851};w=0.0;for(inti=0;i5;i++){x=((b-a)*X[i]+(b+a))/2.0;w=w+f(x)*L[i];//每一次小区间利用勒让德公式计算的结果}returnw;}doubleFivePointPrecisionGaussLegendre(doublea,doubleb,doublef(doublex)){intm,i,j;doubles,p,ep,h,aa,bb,w,x,g;staticdoubleX[5]={-0.9061798459,-0.5384693101,0,0.5384693101,0.9061798459};m=1;h=b-a;s=fabs(0.001*h);p=1.0e+35;ep=Precision1+1;while((ep=Precision1)&&(fabs(h)s)){g=0.0;for(i=0;im;i++){aa=a+i*h;bb=aa+h;w=0.0;for(j=0;j=4;j++)《数值分析》课程设计说明书10{x=((bb-aa)*X[j]+(bb+aa))/2.0;w=w+f(x)*L[j];}g=g+w;//各个区间计算结果之和相加}g=g*h/2.0;ep=fabs(g-p)/(1.0+fabs(g));//计算精度p=g;m=m+1;h=(b-a)/m;//分割区间}returng;}main(){doublea,b,s;cout请输入积分下限:;cina;cout请输入积分上限:;cinb;cout㏑的真值为:endl;cout1.098612289endl;/*龙贝格求积*/s=Romberg(a,b,function);cout龙贝格求积公式:endl;coutsetiosflags(ios::fixed)setprecision(14)sendl;/*三点求积公式*/s=ThreePointGaussLegendre(a,b,function);《数值分析》课程设计说明书11cout三点求积公式:endl;coutsetiosflags(ios::fixed)setprecision(14)sendl;/*五点求积公式*/s=FivePointGaussLegendre(a,b,function);cout五点求积公式endl;coutsetiosflags(ios::fixed)setprecision(14)sendl;s=FivePointPrecisionGaussLegendre(a,b,function);cout控制精度五点求积公式endl;coutsetiosflags(ios::fixed)setprecision(14)sendl;return0;}2.高斯-勒让德求积的程序2.1三点高斯勒让德公式的代码functiongl=f(str,a,b)x=zeros(3,1);y=zeros(3,1);x(1)=-sqrt(15)/5;x(2)=0;x(3)=sqrt
本文标题:数值分析-高斯—勒让德积分公式
链接地址:https://www.777doc.com/doc-5206981 .html