数值积分算法与MATLAB实现

摘 要:在求一些函数的定积分时,由于原函数十分复杂难以求出或用初等函数表达,导致积分很难精确求出,只能设法求其近似值,因此能够直接借助牛顿-莱布尼兹公式计算定积分的情形是不多的。数值积分就是解决此类问题的一种行之有效的方法。积分的数值计算是数值分析的一个重要分支;因此,探讨近似计算的数值积分方法是有着明显的实际意义的。本文从数值积分问题的产生出发,详细介绍了一些数值积分的重要方法。
本文较详细地介绍了牛顿-科特斯求积公式,以及为了提高积分计算精度的高精度数值积分公式,即龙贝格求积公式和高斯-勒让德求积公式。除了研究这些数值积分算法的理论外,本文还将这些数值积分算法在计算机上通过MATLAB软件编程实现,并通过实例用各种求积公式进行运算,分析比较了各种求积公式的计算误差。
【关键词】数值积分 牛顿-科特斯求积公式 高精度求积公式 MATLAB软件
前 言
对于定积分 ,在求某函数的定积分时,在一定条件下,虽然有牛顿-莱布里茨公式 可以计算定积分的值,但在很多情况下 的原函数不易求出或非常复杂。被积函数 的原函数很难用初等函数表达出来,例如 等;有的函数 的原函数 存在,但其表达式太复杂,计算量太大,有的甚至无法有解析表达式。因此能够借助牛顿-莱布尼兹公式计算定积分的情形是不多的。另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解,只能设法求其近似值。因此,探讨近似计算的数值积分方法是有明显的实际意义的,即有必要研究定积分的数值计算方法,以解决定积分的近似计算。而数值积分就是解决此类问题的一种有效的方法,它的特点是利用被积函数 在一些节点上的信息求出定积分的近似值。
微积分的发明是人类科学史上一项伟大的成就,在科学技术中,积分是经常遇到的一个重要计算环节。数值积分是数学上重要的课题之一,是数值分析中重要的内容之一,也是应用数学研究的重点。随着计算机的出现,近几十年来,对于数值积分问题的研究已经成为一个很活跃的研究领域。现在,数值积分在计算机图形学,积分方程,工程计算,金融数学等应用科学领域都有着相当重要的应用,所以研究数值积分问题有着很重要的意义。国内外众多学者在数值积分应用领域也提出了许多新方法。
在很多实际应用中,只能知道积分函数在某些特定点的取值,比如天气测量中的气温、湿度、气压等,医学测量中的血压、浓度等等。通过这个课题的研究,我们将会更好地掌握运用数值积分算法求特殊积分函数的定积分的一些基本方法、理论基础;并且通过matlab软件编程的实现,应用于实际生活中。

第一章 牛顿-科特斯求积公式
第一节 数值求积公式的构造
大多数实际问题的积分是需要用数值积分方法求出近似结果的。数值积分原则上可以用于计算各种被积函数的定积分,无论被积函数是解析解形式还是数表形式,其基本原理都是用多项式函数近似代替被积函数,用多项式的积分结果近似代替对被积函数的积分。由于所选多项式形式的不同,可以有许多种数值积分方法。而利用插值多项式来构造数值求积公式是最常用的一种方法。
对于积分 ,用一个容易积分的函数 去代替被积函数 ,这样的 自然以多项式 为最佳,因为多项式能很好的逼近任何连续函数,而且容易求出其原函数。
牛顿-科特斯求积公式,其中 称为科特斯系数。
第五节 各种求积算法的分析比较
下面用各种求积公式分别计算积分,并给出了相应的计算误差,进行比较,结果如下:
1、用Newton-Cotes公式
当n=1时,即用梯形公式,用程序一
在MATLAB命令窗口中输入>> NCotes(0,1,1,2) 得
0.92703549240395 0.01904757796323
当n=2时, 即用Simpson公式,用程序一
在MATLAB命令窗口中输入>> NCotes(0,1,2,2)得
0.94614588227359 0.000062811906407
当n=4时, 即用科特斯公式,用程序一
在MATLAB命令窗口中输入>> NCotes(0,1,4,2)得
0.94608300406367 0.000000066303513
2、用Romberg公式 ,用程序五
在MATLAB命令窗口中输入>> romber(‘f’,0,1,5,0.5*(10^(-8))),得
0.94608307036718 0.000000000000002
3、用高斯-勒让德求积公式,
令 ,
用2个节点的Gauss公式
0.94604115827633
用3个节点的Gauss公式,用程序六
在MATLAB命令窗口中输入>> GuassLegendre (0,1,2,2),得
0.946083134078473 0.000000063711290
算法比较
此例题的精确值为0.946083070367183
由例题的各种求积算法可知:
 对Newton-cotes公式,当n=1时只有1位有效数字,当n=2时有3位有效数字,当n=4时有7位有效数字。
 用Romberg公式对区间 二分3次,用了9个函数值,能得到同样的结果;二分4次,用了14个函数值,却能得到14位有效数字。
 用高斯-勒让德求积公式仅用了3个函数值,就能得到同样比较精确的6位有效数字。

结 论

本文主要讨论了数值积分的计算方法并通过MATLAB软件编程实现,通过前面的研究我们知道求数值积分近似值的计算方法很多,包括Newton-Cotes求积公式、复化求积公式、Romberg求积公式、高斯求积公式等等 。
其中Newton-Cotes方法是一种利用插值多项式来构造数值积分的常用方法,这其中梯形积分方法的误差最大,近似效果最差,Simpson方法的精度比梯形积分高了一个数量级,它的代数精度比梯形积分的代数精度高,能更好地近似积分值;Cotes积分方法的误差比Simpson积分精度高两个数量级。因此,一般情况下,代数精度越高,积分公式计算精度也越高。但是高阶的Newton -Cotes方法的收敛性没有保证,因此,在实际计算中很少使用高阶的Newton
-Cotes公式。Romberg方法收敛速度快、计算精度较高,但是计算量较大。Gauss求积方法积分精度高、数值稳定、收敛速度较快,但是节点与系数的计算较麻烦、而且要求已知积分函数。
一般来说,Newton-Cotes方法的代数精度越高,数值积分的效果越好、越精确。变步长积分方法不仅可以很好地控制计算误差,并且可以寻找到适当的积分步长;Romberg积分方法可以更好地利用变步长复化积分公式得到的积分序列从而得到更为精确的数值结果,是一个较好的数值积分方法。高斯求积方法精确度高,收敛性快也是一种很优秀的数值积分方法。

原创文章,作者:Editor,如若转载,请注明出处:https://www.diyilunwen.com/lwfw/shuxue/2246.html

(0)
EditorEditor
上一篇 2014年10月19日
下一篇 2014年10月19日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注