信息与计算科学
振荡函数积分的数值计算
一、前言部分
科学计算作为当今科学研究的三种手段之一,是数学将触角伸向其他科学的桥梁。在科学应用领域,如电磁学、非线性学、流体动力学、等离子体运输、天体动力学、地质勘探等,都常常要计算含有振荡函数的积分。振荡函数有时并非光滑,甚至并不连续,为了研究这一类特殊函数,我们必须考虑一些相应的数值求解振荡函数积分的方法,比如可考虑转化为两零点间的积分,Filon算法等。而这些方法的基础为常用的数值积分公式,比如梯形公式及其复合公式,抛物线公式及其复合公式,Guass求积公式等等。随着计算机的迅速发展,在科学、技术、工程、生产、医学、经济和人文等领域中抽象出来的许多数学问题可以用计算机计算、求解[1]。可借用软件如Matlab或C对其中一些方法进行编程实现。能够将理论与实践联系起来,形成一个由“实践—理论—实践”的良性循环。
二、主题部分
2.1数值积分[2]
积分运算是微积分学的一个重要的分支。在加速度已知的情况下,积分运算用来求它的速度;或者通过速度求出位移,计算图形面积,预测人口增长等其他许多重要的应用。在微积分课程中已经学过许多求函数f(x)的不定积分的方法。(给定函数f(x),它的不定积分是满足条件Fxfx的函数Fx。)在实际计算中常常遇到求定积分的问题,根据积
'分学的基本定理,只要求出原函数便可求出定积分的值。也学过定积分的计算方法:牛顿-莱布尼兹公式 Fxfx,可以利用不定积分计算定积分的值。然而有些被积函数的
'不定积分无法用普通的函数表示,求原函数往往是困难的,有时甚至是不可能的。当被积函数的不定积分未知时,我们就用到了数值积分方法。所以我们要讨论数值积分方法,即用数值方法求积分的近似值。
2.1.1 Newton-Cotes求积公式[34]
设a,b为有限或无穷区间,用被积函数f(x)的以ax0x1x2...xnb为节点的n次Lagrange插值多项式及其余项代替被积函数f(x),当求积节点为等距节点
Qnfwkfk, (2.1)
nk0nlkxdx,k0,1,...,n Qnf称为数值积分公式,其中求积系数wknablkx 为 n次插值基函数,x1,x2,...xn称为求积积点。
非周期函数的积分,一般使用Newton-Cotes法或龙贝格法。 设[a,b]为有限区间,步长h求积公式。
梯形公式建立的基础是用线性插值多项式逼近被积函数。即当Newton-Cotes求积公式中n=1时,得
ba,则相应的公式(2.1)便称为n阶Newton-Cotes型nQ1f称为梯形公式。
bafafb, 2我们可以使逼近函数的效果更好如果用二次或三次插值多项式。辛普森公式建立的基础就是这种逼近。即Newton-Cotes求积公式中当n=2时,得
Q2fbaab, fa4ffb62称为抛物线公式,也叫Simpson公式。 2.1.2复合求积公式[5]
应用高阶的Newton-Cotes型求积公式计算积分会出现数值不稳定,低阶公式(如梯形和抛物线公式)又往往因积分区间步长过大使得离散误差大。然而,若积分区间愈小,则离散误差小。因此,为了提高求积公式的精确度,又使算法简单易行,往往使用复化方法。即把积分区间分成若干个子区间,在每个子区间上使用低阶公式,然后将结果加起来,这种公式称为复合求积公式。复合求积公式是一种典型的求积方法,通过低阶的求积公式构造出收敛性极好的求积方法,主要有复合梯形公式和复合Simpson公式。
记hba/m,xkakh,k0,1,...,m。在每个小区间xk,xk1上使用梯形求积公式,便得到复合梯形求积公式:
m1hff0fm2fk
2k1Q1m如将[a,b]区间2m等分,记hba/2m,xkakh,k0,1,...,2m,在每个小区间x2i,x2i2上使用抛物线求积公式,则得复合抛物线公式:
m1m1hff04f2i12f2if2m
3i0i1Q22m2.1.3龙贝格积分公式[6]
利用类似于理查德外推的技巧提高复化梯形求积公式的精度。这种方法就是众所周知的龙贝格积分。我们可以利用龙贝格法求一个结点均匀分布的表格函数的积分,但是现在我们不能使h变小。龙贝格方法可用于很多种类的函数。对光滑性和连续性没有要求。然而,当
fx不连续时,我们应该把均匀分布的点落在间断点上。这个可以完成如果我们根据间断
点把区间分成几个子区间。利用步长折半的方法推导出梯形公式的递推式,外推加速技术是一种简单有效的方法,在复合梯形公式递推化的基础上,可以通过外推加速,得到较高精度Romberg算法。
对于fx不充分光滑的函数也可用龙贝格算法计算,只是收敛慢一些,这时可以直接使用复化辛普森公式计算[7]。龙贝格积分法精度比Newton-Cotes法高,收敛速度快,编程容易实现,使用面向对象程序设计方法,回避了函数指针的使用,降低了编程调试的难度。工程上一般首选龙贝格法。
2.1.4Gauss型求积公式[8]
若a,b区间上一组节点使得相应求积公式(2.1)具有2n+1次代数精度,则称此点组为高斯点组,相应的求积公式(2.1)为高斯型求积公式。高斯点组可直接通过求解相应方
程组得到,也可借助正交多项式的零点来确定。我们前面讨论的数值积分公式都是事先给定均匀分布x值的;这就意味着x值被事先确定了。对于一个三项的公式,存在三个自由参数,即对应函数值的系数(加权因子)。一个有三个参数的公式可以确定一个二次多项式,比参数的个数少一个。高斯发现如果我们改变求解函数值的任务没有事先确定x值的话,那么三项积分公式中将含有六个参数(这三个x值现在是未知的,把三个权相加)并且相当于一个五次插值多项式。以这个原则为基础的公式称作高斯积分公式。它们只能应用于fx表达式已知的情况下,从而可以求出任意需要x点的函数值。高斯积分公式效率高的原因是它只需要两个函数值的加权和。
Gauss型求积公式是具有最高代数精确度的插值求积公式,对于不同的权函数,便有不同的直交多项式,从而得到不同的具体Gauss型求积公式。 (一) Guass-Legendre公式
fxdxwfx
n1kkk01n在物理和力学中常常遇到一些带有权函数的广义积分。对于这些积分使用其他求积公式会遇到困难,而针对权函数和积分区间,选择适当的节点构造代数精确度最高的Gauss型求积公式进行计算,通常是最有效的。 (二) Guass-Laguerre公式
0efxdxwkfxk
xnk0n2.2振荡函数积分的数值计算
在科学与工程计算中,经常要求计算积分 ItfxKx,tdx,ab (2.2)
ab其中Kx,t是一个“振荡核”,即为关于x的振荡函数。而f为非振荡函数。傅里叶积分
bafxsinnxdx,fxcosnxdx
ab为典型例子。当n较大时就是振荡函数积分。
振荡函数积分,在应用数学、物理学、工程计算等方面有着广泛的应用。众所周知,n
越大,被积函数sinnxfx,cosnxfx就振荡得越厉害,也就是说,函数与x轴的交点就越多。在对振荡函数积分进行数值计算时,如何克服振荡所带来的误差,成为解决这一问题的关键。
目前,对振荡函数数值积分公式进行的研究已取得一些成果。对这一问题的解决最早要归功于Fillon,其后在此基础上出现了很多解决这一问题的方法。比如我国著名数学家徐利治先生提出了渐进展开的徐氏公式。另外还有Lobatto法和Price法等,但它们都或多或少存在一些弊端,有的方法需要计算大量的一阶或高阶导数,这样会使得问题更加复杂化,而且高阶导数的计算会降低最终结果的精度;另外,有的需要大量复杂的计算,这就使得算法的时间效率和空间效率有所降低[8]。因此在实际应用中,对于被积函数含有振荡的积分以及广义积分的计算中,需对被积函数作适当的处理再进行近似计算,才能提高计算结果的精度。
2.2.1在零点之间积分[9]
设被积函数振荡部分在a,b上的零点为ax1x2...xpb,那么将a,b上的积分分解为子区间xk,xk1上积分之和。在每个子区间上,因被积函数在端点之值为零,所以可以采用高斯-洛巴托求积公式,这样可以不必增加计算量就可以得到较高的精度。 2.2.2菲隆方法
设(2.2)中f可以表示为
nfxakkxx, xa,b,
k1其中x是a,b上的小量(当然为x的函数)。令 ktxKx,tdx k1,2,...n
akb可以用初等积分显示表示出来。Filon方法就是用fx的近似求出积分(2.2),通常是用
fx的抛物线插值函数近似,也可用三次样条插值近似[10]。
2.2.3Hermite数值积分公式[11]
在工程技术问题中,常会遇到振荡函数的积分
fxsinxdx,通常的插值型求
11积公式往往是失效的。由于sinx在[-1,1]上符号有正负,故不能作权函数处理。根据插值多项式的数值积分的一些结论,导出n+1个节点的振荡函数的Hermite插值求积公式,它的权因子分成两部分,一部分依赖于节点,另一部分于节点的新型的求积公式,并利用正交多项式的性质,给出其递推关系式及误差分析。 2.2.4几类特殊振荡函数的数值积分方法归纳
在物理学和工程学中,经常遇到型如
fxsinxdx(为正整数)振荡函数的
11数值积分问题。由于sinx在,上的符号有正有负,同样一般不能简单地作为权函数,而用高斯法来计算这种类型积分。目前,常用的方法已有多种,如Filon法,Lobatto等。但使用这种些方法想得到较精确的近似值需要较大的计算量[12]。
另外,还有一类计算振荡函数积分公式,优于新的对振荡函数的Gauss型积分,具有函数振荡越剧烈,求积结果越容易达到精确的特点。在有关函数充分光滑的情况下,可以有很高的求积精度与效率[1314]。
形如I1f函数频率越大,
220fxcosmxdx,其中fx是非振荡函数,m越大,cosmx的振荡
0fxcosmx与x轴的交点就越多。由于高次插值多项式的严重缺陷,
使得积分精度得不到保证,而运用复化Newton-Cotes公式效果也不是很理想,而运用样条函数处理此类积分则能大大提高代数精确度。
在工程物理问题中,
fxcosmxadx,其中fx是光滑函数,变化不厉害。
ab常数m较大,从而使被积函数fxcosmxa振荡很激烈。无论是Guass型求积法,还是Romberg方法,自适应方法,都需要计算大量的函数值才能使数值结果达到给定的误差要求。此时,利用fx的三次插值样条函数逼近来建立有效的数值方法
[15]
。
三、总结部分
本文大致阐述了一些数值积分的基本思想和原理,并深入认识数值积分法的意义,明确代数精度的概念,以及数值积分精度与步长的关系;同时介绍了几种基本的常用积分公式,如牛顿-科茨求积公式、复合求积公式、龙贝格积分方法、高斯求积方法等。列出它们各自的优缺点及适用范围,并能用来解决一些实际问题。众所周知,振荡函数的数值积分是数值积分的一个难点。同时目前对求振荡函数数值积分的方法研究也有了一些成果,相比以前的方法具有简便易行、计算量小而求积精度高等特点。现代计算机的出现为大规模的数值计算提供了条件,集中而系统地研究适用于计算机的数值方法变得十分迫切和必要。
四、参考文献
[1]林成森.数值计算方法(上)[M]. 北京:科学出版社,2004:173-179. [2]黄明游,刘播,徐涛. 数值计算方法[M]. 北京:科学出版社,2005:125-132.
[3]Micheal T.Heath. Scientific Computing: An Introductory Survey[M].(2nd edition). 北京:清华大学出版社,2002:186-199.
[4]李庆扬,王能超,易大义.数值分析[M].(第四版).北京:清华大学出版社,2001:118-146. [5]现代应用数学手册编委会. 现代应用数学手册——计算与数值分析卷[M]. 北京:清华大学出版社,2005:223-227.
[6]马昌凤,林伟川. 现代数值计算方法[M]. 北京:科学出版社,2008:100-120.
[7]Richard L.Burden, J.Douglas Faires. Numerical Analysis[M].( 7th edition) . 北京:高等教育出版社,2003.4:221-2.
[8]李毅夫.一种新型高效的振荡函数数值积分方法[J].计算数学.1992,14(04):506-512. [9]郑咸义,姚仰新,雷秀仁,路子强,黄凤辉.应用数值分析[M].广州:华南理工大学出版社,2008:157-159.
[10]李庆扬,关治,白峰杉.数值计算原理[M].北京:清华大学出版社,2005:109-115. [11]陆建芳.振荡函数的Hermite数值积分公式[J].数值计算与计算机应用.1998, 14(04):96-98.
[12] 熊华,杨国孝.一类振荡函数的数值积分方法[J].北京理工大学学报.1999, 19(03):280-284.
[13] 李毅夫.计算振荡函数积分的新公式[J]. 数学的实践与认识.1994,20(03):92-96 [14] 李毅夫.对振荡函数数值积分方法的进一步探讨[J].数学的实践与认识.2002, 32(01):91-93.
[15] 韩丹夫,吴庆标.数值计算方法[M].浙江:浙江大学出版社,2006:191-193.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务