您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 数值积分的计算方法论文
摘要本文应用插值积分法和逼近论的思想,简单重述了推导Newton-Cotes公式和Gauss-Legendre求积公式的过程,以及这两个公式的系数、精度等问题。并以这两种数值积分的求解方法为基础,应用quad、guass函数编写具体Matlab程序,通过计算机软件计算出所给题目的近似数值积分。对二者所得的结果进行比较,从而研究了用Newton-Cotes和Gauss-Legendre公式求积分的方法和二者的精确度问题。得知,这两种求积公式所得的结果在精度上的确存在差异,结合理论部分更加充分地说明了,n相同时Gauss-Legendre公式比Newton-Cotes公式具有更高的代数精度,但当代数精度相同时,二者计算的结果仍存在细微的差异。关键字:插值积分、Newton-Cotes公式、Gauss-Legendre公式数值积分第1章理论依据逼近论——构造一个简单函数p(x)近似表示f(x),然后对p(x)求积分得到f(x)的积分的近似值。基于插值原理,推导出数值积分的基本公式。§1插值求积公式为了用数值方法求baI(f)=f(x)dx,对被积函数f(x)在给定的n+1个节点上作Lagrange插值,用插值函数Pn(x)代替f(x),就可用I(Pn(x))构造求积公式,近似地计算定积分I(f(x))。§2Newton—Cotes公式§2.1Newton—Cotes公式的推导当§1.1插值求积公式的插值节点为等距节点时,就得到Newton—Cotes公式。将区间[a,b]n等分,bahn,n+1个节点为xk=a+kh(k=0,1,…,n)在节点上对f(x)的Lagrange插值多项式是:00()()()nnjnkkjkjjkxxpxfxxx用Pn(x)代替f(x)构造求积公式:00()()()nnbbjnnkaakjkjjkxxIpxdxfxdxxx记,(k=0,1,…,n)作代换x=a+th带入上式,变为:()00()nnnnkkjjkbatjAdtbaCnkj其中:(k=0,1,…,n)(1-1)这个积分是有理多项式积分,它与被积函数f(x)和区间[a,b]无关。只要确定n就能计算出系数。于是得到称为Newton—Cotes公式的求积公式:()0()nnnkkkIbaCy(1-2)其中称为Newton—Cotes系数。如表1所示。表1Newton—Cotes系数n11/21/221/64/61/631/83/83/81/847/9032/9012/9032/907/90519/28825/9625/14425/14425/9019/288641/8409/359/28034/1059/2809/3541/840§2.2Newton—Cotes公式误差和稳定性在积分公式中用插值多项式Pn(x)代替f(x)的插值误差是(1)0()()()()()(1)!nnnnkkfRxfxpxxxn因此,Newton—Cotes公式的截断误差是(1)0()()()(1)!nnbkakfRfxxdxn(1-3)讨论舍入误差对计算结果产生的影响,设(1-2)式近似计算()bafxdx其中计算函数值f(xn)有误差值(k=0,1,2,…,n)。在(1-2)式中令设计算无误差,舍入误差也忽略,则,由(1-2)式计算时引式的误差为()()()()0000()[()(())()(...)nnnnnnnkkkknnnkkebaCfxCfxbaCC如果皆为正,并设,则,故有界,即引起的误差受控制,不超过()ba倍。保证了数值计算的稳定性。但当n8时,将出现负数,这时,数值计算的稳定性不能保证,所以节点超过8时Newton—Cotes公式不能用。当n为偶数时,Newton—Cotes积分公式具有n+1次代数精度。§2.3经典Newton—Cotes公式当n=4,5点公式称为经典Newton—Cotes公式01234()()00(7()32()12()32()7())90()()(()1,()11nnnnkknkknkkkbaCfxfxfxfxfxyfxIbaCyRfxpxC其中(k=0,1,…,4),它具有5次代数精度。§3Gauss-Legendre求积公式在积分区间[a,b]内对积分节点不作限制,不取等距,积分节点和求积系数都作为待定未知量。通过适当选择节点和求积系数,能构造更有效的高精度求积公式。§3.1计算()bafxdxn阶求积公式0()nniiiIAfx若nI有m次代数精度,对kx(k=0,1,…)应有而110nbmmiiiaiAxxdx。§3.2Gauss求积公式的基本原理更一般形式:()()()baIfxfxdx(2-1)()x为权函数,设()x0,且在[a,b]上可积,构造n阶求积公式:0()nniiiIAfx(2-2)积分点0...nxx使得(2-2)式达到2n+1次代数精度,则积分点称为Gauss点,(2-2)式称为Gauss求积公式。§3.3Gauss-Legendre求积公式求积分11()fxdx,权数()x=1,[1,1]x111()()niiifxdxAfx其中ix(i=0,1,…,n)是n+1阶Legendre多项式1()npx的零点,求积系数为:1111()()()niinipxAdxxxpx(i=0,1,…,n)具体Gauss-Legendre公式的插值节点和系数见表2(其中n为插值节点个数,为积分点,为对应积分点的系数)。表二Gauss-Legendre公式的插值节点和系数对一般区间[a,b]上的积分()bafxdx,通过代换:11()()22xabbat2badxdt将[,]xab转换到[1,1]t。再用Gauss-Legendre求积公式:11()()222babaabbafxdxftdt进行积分求解第2章问题描述用Newton—Cotes公式、Gauss-Legendre求下列积公式计算积分,并比较结果:12021dxx202sin211dxx第3章问题分析题目给出的是用Newton—Cotes公式、Gauss-Legendre求12021dxx积分的问题,为了实现题目要求,应编写Matlab程序,实现计算被积函数在积分区间[0,1]的积分,得到最终结果。最后将二者得到的结果进行比较,得出关与Newton—Cotes公式、Gauss-Legendre求积公式精确度的结论。第4章求解计算§1Newton—Cotes公式求解的Matlab程序§1.1方法1:(1)在Matlab工作窗口中:fn=inline('2/(1+x.^2)');y1=quad8('fn',0,1)运行结果为:y1=1.5078(2)在Matlab工作窗口中:fn=inline('(1-1/2*(sin(x)).^2).^(1/2)');y2=quad8('fn',0,pi/2)运行结果为:y2=1.3506§1.2方法2:(1)建立M文件:functionf=fn(x)f=2./(1+x.^2)在Matlab工作窗口中调用函数:y1=quad8('fn',0,1)运行结果为y1=1.5078(2)建立M文件:functionf=fn(x)f=(1-1/2*(sin(x)).^2).^(1/2)在Matlab工作窗口中调用函数:y2=quad8('fn',0,pi/2)运行结果为:y2=1.3506§2Gauss-Legendre求积公式求解的Matlab程序§2.1Gauss-Legendre方法的一些准备Gauss-Legendre:110()()niiifxdxfX具有2n+1次代数精度。当n=2时,3阶Gauss-Legendre公式3()px在[-1,1]上有三个零点:x0=0.7745967x1=0x2=-0.7745967即为高斯点发,对应的Gauss求积系数为:00.5555555610.8888888920.55555556对于任意区间(有界区间)[a,b],将[,]xab转换到[1,1]t。再用Gauss-Legendre求积公式:11()()22xabbat2badxdt11()()222babaabbafxdxftdt进行积分求解§2.2n=2的Gauss-Legendre方法(1)先建立M文件:functiong=gauss2(fun,a,b)h=(b-a)/2;c=(a+b)/2;x=[h*(-0.7745967)+c,c,h*0.7745967+c];g=h*(0.55555556*(gaussf(x(1))+gaussf(x(3)))+0.88888889*gaussf(x(2)));functiony=gaussf(x);y=2./(1+x.^2);在Matlab工作窗口中调用函数:y1=gauss2('gaussf',0,1)运行结果为:y1=1.5705(2)先建立M文件:functiong=gauss2(fun,a,b)h=(b-a)/2;c=(a+b)/2;x=[h*(-0.7745967)+c,c,h*0.7745967+c];g=h*(0.55555556*(gaussf(x(1))+gaussf(x(3)))+0.88888889*gaussf(x(2)));functiony=gaussf(x);y=(1-1/2*(sin(x)).^2).^(1/2);在Matlab工作窗口中调用函数:y2=gauss2('gaussf',0,pi/2)运行结果为:y2=1.3508第5章结论通过以上变成和计算,得到所求的两组积分:12021dxx202sin211dxx应用Newton—Cotes积分公式所求的结果分别是y1=1.5078,y2=1.3506,而应用Gauss-Legendre方法所求得的结果分别是y1=1.5705和y2=1.3508。单从结果上看,我们也能看出,Newton—Cotes积分公式和Gauss-Legendre积分公式在精度上的确存在着差异(两者n的取值不同)。而结果上的差异来源很明显是插值积分在近似替代时产生的,结合第1章理论依据的内容,Newton-Cotes积分公式的精度最高可达n+1次,Gauss-Legendre积分公式的精度为2n+1次,由此可知,当n相同时,Gauss-Legendre积分公式比Newton—Cotes积分公式具有更高的代数精度。而就本题而言Gauss-Legendre积分公式具有5次代数精度,Newton—Cotes积分公式也具有5次代数精度。因此二者所求积分只存在微小的差异,结果都比较准确。
本文标题:数值积分的计算方法论文
链接地址:https://www.777doc.com/doc-4424127 .html