1、 本科毕业论文(设计) ( 20 届) 振荡函数积分的数值计算 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 I 摘要: 在科学应用领域,如电磁学、非线性学、流体动力学、等离子体运输、天体动力学、地质勘探等,都常常要计算含有振荡函数的 积分。振荡函数有时并非光滑,甚至并不连续。为了研究这一类特殊函数,我们 必须考虑一些相应的 数值求解振荡函数积分的方法,比如可考虑转化为两零点间的积分, Filon 算法等 。而这些方法的基础为 常用的数值积分公式,比如梯形公式及其复合公式,抛物线公式及其复合公式 等等。接着,通过比较总结得出 几种方法 的适用范围与优缺点
2、, 其中包括三次样条插值,分段插值以及复化九点高斯 -勒让德法。 关键词: 振荡函数;求积公式;数值计算 II The Numerical Formula for Integrals of Oscillation Function Abstract: In scientific applications, such as electromagnetism, nonlinear science, fluid dynamics, plasma transportation, celestial dynamics, geological prospecting etc, we often face
3、with the integral calculation of oscillation function. Oscillation function sometimes is not smooth, even not continuous. In order to research this kind of special function, some corresponding methods must be considered. For instance, it can be changed into the integral which is between two zeros, F
4、ilon algorithm, etc. These methods are based on the commonly used numerical integral formulas, such as trapezoidal formula, parabolic formula, compound formula and so on. Then the applicable scope and advantages and disadvantages of the methods will be find by comparing them. And spline interpolatio
5、n, sub-interpolation, complex nine-point Gauss-Legendre will be shown. Key words: oscillation function; quadrature formula; numerical calculation III 目 录 1 绪 论 . I 1.1 背景意义 . 1 1.2 结构特点 . 1 2 数值积分 .2 2.1 牛顿 -科茨求积公式 . 2 2.2 复合求积公式 .2 2.3 高斯型求积公式 .3 3 振荡函数积分的数值计算 .5 3.1 几种常用的振荡函数的 数值积分公式 .5 3.1.1 在两零点
6、之间积分 .5 3.1.2 菲隆方法 .5 3.1.3 Hermite 数值积分公式 .5 3.2 几类特殊振荡函数的数值积分方法分析 .5 3.3 一维振荡函数数值积分公式的设计 .7 3.3.1 三次样条插值求积公式 . 7 3.3.2 分段线性 插值求积公式 . 8 3.3.3 分段抛物插值求积公式 . 10 3.3.4 复化九点高斯 -勒让德求积公式 . 12 4 数值算例及比较 .15 4.1 几类特殊振荡函数的数值积分方法 .15 4.2 评价 .15 5 结 论 . 17 致谢 . 18 参考文献 . 19 附录 20 4 1 绪论 1.1 背景意 义 1 科学计算作为当今科学研
7、究的三种手段之一,是数学将触角伸向其他科学的桥梁。在科学应用领域,如电磁学、非线性学、流体动力学、等离子体运输、天体动力学、地质勘探等,都常常要计算含有振荡函数的积分。振荡函数有时并非光滑,甚至并不连续,为了研究这一类特殊函数,我们必须考虑一些相应的方法, 并数值求解振荡函数积分的若干方法。目前,对振荡函数数值积分公式进行的研究已取得一些研究成果。如 Filon 法, Lobatto 法和 Price法等,但它们都或多或少存在一些弊端,有的方法需要计算大量 的一阶或高阶导数,这样会使得问题更加复杂化,而且高阶导数的计算会降低最终结果的精度;另外,有的需要大量复杂的计算,这就使得算法的时间效率和
8、空间效率有所降低。在实际应用中,对于被积函数含有振荡的积分以及广义积分的计算中,需对被积函数作适当的处理再进行近似计算,才能提高计算结果的精度。 而这些方法的基础为 常用的数值积分公式,比如梯形公式及其复合公式,抛物线公式及其复合公式, Guass 求积公式等等。积分运算是微积分学的一个重要的分支。在加速度已知的情况下,积分运算用来求它的速度;或者通过速度求出位移,计算图形面积,预测人口增长等其他许多重要的应用。在微积分课程中已经学过许多求函数 ()fx的不定积分的方法。(给定函数 ()fx,它的不定积分是满足条件 F x f x 的函数 Fx。)根据积分学的基本定理,只要求出原函数便可求出定
9、积分的值。也学过定积分的计算方法:牛顿 -莱布尼兹公式 F x f x ,可以利用不定 积分计算定积分的值。然而有些被积函数的不定积分无法用普通的函数表示,求原函数往往是困难的,有时甚至是不可能的。当被积函数的不定积分未知时,我们就用到了数值积分方法。所以我们要讨论数值积分方法,即用数值方法求积分的近似值。 随着计算机的迅速发展,在科学、技术、工程、生产、医学、经济和人文等领域中抽象出来的许多数学问题可以用计算机计算、求解。 可借用软件如 Matlab 或 C 对其中一些方法进行编程实现。 能够将理论与实践联系起来,形成一个由“实践 理论 实践”的良性循环。 1.2 结构特点 本文主要研究一维
10、振荡函数的 情况,首先介绍几种常用的数值积分公式,然后介绍几种一般的振荡函数数值求积公式,并总计设计几种特殊振荡函数的求积公式。最后通过数值示例比较各种方法的优劣利弊。 5 2 数值积分 2.1 牛顿 -科茨求积公 式 2 我们利用插值多项式来构造数值积分公式,设区间 ,ab ,用被积函数 ()fx的以0 1 2 . na x x x x b 为节点的 n 次 Lagrange 插值多项式及其余项代替被积函数()fx, 当求积节点为等距节点时得到以下数值积分公式 n 0n nkkkQ f w f , ( 2.1) 其中 bnkkaw l x dx , 0,1,.,kn 称为求积系数, klx
11、为 n 次插值基函数, 12, ,. nx x x 称为求积积点。 非周期函数的积分,一般使用 Newton-Cotes 法或龙贝格法。 设 a,b为有限区间,步长 bah n ,则相应的公式( 2.1)便称为 n 阶 Newton-Cotes 型求积公式。 梯形公式建立的基础是用线性插值多项式逼近被积函数。即 当 Newton-Cotes 求积公 式中 n=1 时,得 1 2baQ f f a f b, 称为梯形公式。 如果用二次或 三次插值多项式我们可以使逼近效果更好 。辛普森公式建立的基础就是这种逼近。即 Newton-Cotes 求积公 式中 当 n=2 时,得 2 462b a a
12、bQ f f a f f b , 称为抛物线公式,也叫 Simpson 公式。 2.2 复合求积公 式 3 应用高阶的 Newton-Cotes 型求积公式计算积分会出现数值不稳定,低阶公式 (如梯形和抛物线公式 )又往往因积分区间步长过大使得离散误差大。然而,若积分区间愈小,则离6 散误差小。因此,为了提高求积公式的精确度,又 使算法简单易行,往往使用复化方法。即把积分区间分成若干个子区间,在每个子区间上使用低阶公式,然后将结果加起来,这种公式称为复合求积公式。复合求积公式是一种典型的求积方法,通过低阶的求积公式构造出收敛性极好的求积方法,主要有复合梯形公式和复合 Simpson 公式。 记
13、 /h b a m , kx a kh , 0,1,.,km 。在每个小区间 1,kkxx 上使用梯形求积 公式,便得到 复合梯形求积公式: 110122mmmkkhQ f f f f , 如将 a,b区间 2m 等分,记 /2h b a m , kx a kh , 0,1,.,2km ,在每个小区间 2 2 2,iixx 上使用抛物线求积公式,则得复合抛物线公式: 1122 0 2 1 2 201423mmmi i miihQ f f f f f . 2.3 高斯型求积公 式 4 若 ,ab 区间上一组节点使得相应求积公式( 2.1)具有 2n+1 次代数精度,则称此点组为高斯点组,相应的求
14、积公式( 2.1)为高斯型求积公式。高斯点组可直接通过求解相应方程组得到,也可借助正交多项式的零点来确定。我们前面讨论的数值积分公式都是事先给定均匀分布 x 值的;这就意味着 x 值被事先确定了。对于一个三项的公式,存在三个自由参数,即对应函数值的系数 (加权因子 )。一个有三个参数的公式可以确定一个二次多项式,比参数的个数少一个。高斯发现如果我们 改变求解函数值的任务没有事先确定 x 值的话,那么三项积分公式中将含有六个参数 (这三个 x 值现在是未知的,把三个权相加 )并且相当于一个五次插值多项式。以这个原则为基础的公式称作高斯积分公式。它们只能应用于 fx表达式已知的情况下,从而可以求出
15、任意需要 x 点的函数值。高斯积分公式效率高的原因是它只需要两个函数值的加权和。 Gauss 型求积公式是具有最高代数精确度的插值求积公式, 对于不同的权函数,便有不同的直交多项式,从而得到不同的具体 Gauss 型求积公式。 (一) Guass-Legendre 公式 7 11 0n nkkkf x d x w f x , 在物理和力学中常常遇到一些带有权函数的广义积分。对于这些积分使用其他求积公式会遇到困难,而针对权函数和积分区间,选择适当的节点构造代数精确度最高的 Gauss 型求积公式进行计算,通常是最有效的。 (二) Guass-Laguerre 公式 0 0n nxkkke f x
16、 d x w f x . 8 3 振荡函数积分的数值计算 3.1 几种常用的 振荡函数数值积分方法 在科学与工程计算中,经常要求计算积分 ,baI t f x K x t d x, ab ( 3.1) 其中 ,Kxt 是一个“振荡核”,即为关于 x 的振荡函数。而 f 为非振荡函数。 3.1.1 在两零点之间积分 5 设被积函数振荡部分在 ,ab 上的零点为 12. pa x x x b ,那么将 ,ab 上的积分分解为子区间 1,kkxx 上积分之和。在每个子区间上,因被积函数在端点之值为零,所以可以采用高斯 -洛巴托求积公式,这样可以不必增加计算量就可以得到较高的精度。 3.1.2 菲隆方
17、 法 6 设( 3.1)中 f 可以表示为 1n kkkf x a x x , ,x ab , 其中 x 是 ,ab 上的小量 (当然为 x 的函数 )。令 ,bkkat x K x t dx , 1,2,.kn 可以用初等积分显示表示出来。 Filon 方法就是用 fx的近似求出积分( 3.1),通常是用fx的抛物线插值函数近似,也可用三次样条插值近似。 3.1.3 Hermite 数值积分公 式 7 在工程技术问题中,常会遇到振荡函数的积分 11 sinf x x dx,通常的插值型求9 积公式往往是失效的。由于 sin x 在 -1,1上符号有正负,故不能作权函数处理。根据插值多项式的数
18、值积分的一些结论,导出 n+1 个节点的振荡函数的 Hermite 插值求积公式,它的权因 子分成两部分,一部分依赖于节点,另一部分独立于节点的新型的求积公式,并利用正交多项式的性质,给出其递推关系式及误差分析。 3.2 几类特殊振荡函数的数值积分方法分析 在这里,我们首先讨论振荡函数一维时的情形,它的一般形式为: ,F x f x K x t , ( 其中 t 为参数, fx为非振荡函数, ,Kxt 为依赖于 t 的高振荡函数。 )则振荡函数积分的形式为: ,baI F f x K x t d x, ab 傅里叶积分 sinba f x nxdx , cosba f x nxdx 为典型例子
19、。 当 n 较大时就是一类振荡函数积分。在物理学和工程学中,经常遇到型如 11 sinf x x dx ( 为正整数)振荡函数的数值积分问题。由于 sin x 在 ,上的符号有正有负,同样一般不能简单地作为权函数,而用高斯法来计算这种类型积分。但使用这种些方法想得到较精确的近似值需要较大的计算量。 而运用样条函数处理此类积分则能大大提高代数精确度。 振荡函数积分 , 在应用数学、物理学、工程计算等方面有着广泛的应用。众所周知 , n越大 , 被积函数 sin nx f x , cos nx f x 就振荡得越厉害 , 也就是说 , 函数与 x 轴的交点就越多。在对振荡函数积分进行数值计算时 , 如何克服 振荡 所带来的误差 , 成为解决这一问题的关键。 这时,若想要对上面这一类振荡函数积分建立插值多项式,那么为了保证精确度,必须进行高次插值。然而现实是高次插值存在严重缺陷,即 Ruge 现象 8 。而且当插值次数趋于无穷时,所求插值多项式不一定收敛到函数,这样就数值计算就是无效的。同时,高次插值会使计算机难以处理,数 值计算不稳定,往往达不到精确度要求甚至相差甚远。另一方面,对于一维情形,简单的复化求积公式像 复化 Newton-Cotes 公式效果也不是很理想。因此,对该类振荡函数寻求更高精度的收敛稳定的求积公式,对解决工程应用中遇到的一些振荡函