第3章 积分的数值方法 3.1 概述 3.2 梯形积分法 3.3 抛物积分法 3.4 龙贝格积分法 3.5 高斯求积
定义3.1 求积公式 (3-10) 其系数为 时,则称求积公式为插值求积公式。
定义3.2 (代数精度) 设求积公式(3-10)对于一 切次数小于等于m的多项式( 或 ) 是准确的,而对于次数为m+1的多项式是不准确的,则称该求积公式具有m次代数精度(简称代数精度)
定理3.1 n+1个节点的求积公式 为插值型求积公式的充要条件是公式 至少具有n次代数精度。
3.4.1 牛顿—柯特斯(Newton-Cotes)求积公式 在插值求积公式 (3-10) 中,当所取节点是等距时称为牛顿-柯特斯公式
称为牛顿-柯特斯求积公式,Ck称为柯特斯系数 引进记号: ( k=0,1…,n ) 则有: ( k=0,1…,n ) 代入插值求积公式(3-10)中,有: 称为牛顿-柯特斯求积公式,Ck称为柯特斯系数
容易验证 显然, Ck是不依赖于积分区间[a,b]以及被积函数f(x)的常数,只要给出n,就可以算出柯特斯系数,譬如当n=1时
当n=2时 P127 给出了n从1~8的柯特斯系数。 当n = 8时,从表中可以看出出现了负系数,从而影响稳定性和收敛性,因此实用的只是低阶公式。
3.4.2 梯形积分法和抛物积分法的误差 在牛顿-柯特斯求积公式中n=1,2,4时,就分别 3.4.2 梯形积分法和抛物积分法的误差 在牛顿-柯特斯求积公式中n=1,2,4时,就分别 得到下面的梯形公式、辛卜生公式和柯特斯公式。(1) 梯形公式 当n=1时,牛顿-柯特斯公式就是梯形公式 定理3.2 (梯形公式的误差)设f(x)在[a,b]上具有连续的二阶导数,则梯形公式的误差(余项)为
(2) 辛卜生公式 当n=2时,牛顿-柯特斯公式就是辛卜生公式(或 称抛物线公式) 定理3.3(辛卜生公式的误差)设在[a,b]上具有连续的四阶导数,则辛卜生求积公式的误差为
(3) 柯特斯公式 当n=4时,牛顿-柯特斯公式为 定理3.4(柯特斯公式的误差)设在[a,b]上具有连续的6阶导数,则柯特斯求积公式的误差为
例3.12 用辛卜生公式和柯特斯公式计算定积分 的近似值,并估计其误差(计算结果取5位小数) 解: 辛卜生公式 由于 由辛卜生公式余项 知其误差为
例3.13 用辛卜生公式和柯特斯公式计算定积分 的近似值,并估计其误差(计算结果取5位小数) 解: 柯特斯公式 知其误差为
例3.12 用辛卜生公式和柯特斯公式计算定积分 的近似值,并估计其误差(计算结果取5位小数) 该定积分的准确值 ,这个例子告诉我们,对于同一个积分,当n≥2时,公式却是精确的,这是由于辛卜生公式具有三次代数精度,柯特斯公式具有五次代数精度,它们对被积函数为三次多项式当然是精确成立的。
3.5 复化求积公式 在实际应用中,通常将积分区间分成若干个小区间,在每个小区间上采用低阶求积公式,然后把所有小区间上的计算结果加起来得到整个区间上的求积公式,这就是复化求积公式的基本思想。 常用的复化求积公式有复化梯形公式和复化辛卜生公式。
3.5.1 复化梯形公式及其误差 将积分区间[a,b]划分为n等分,步长 求积节点为 在每个小区间 上应用梯形公式: 求出积分值Ik,然后将它们累加求和,用 作为所求积分I的近似值。
记 (3-4) (3-4)式称为复化梯形公式。 当f(x)在[a,b]上有连续的二阶导数,在子区间 上梯形公式的余项已知为: 则在[a,b]上的余项为:
设 在[a,b]上连续,根据连续函数的介值定理知,存在 ,使 因此,余项
3.5.2 复化梯形求积算法实现 (1)复化梯形公式计算步骤 ① 确定步长h=(b-a)/N ( N 为等分数 ) 3.5.2 复化梯形求积算法实现 (1)复化梯形公式计算步骤 ① 确定步长h=(b-a)/N ( N 为等分数 ) ② 对k=1,2,…,N,计算T=T+f(a +kh) ③ T= h f(a)+ 2T + f(b)/2 (3)程序实现(见103页 定步长梯形求积法)
3.5.3 复化辛卜生公式及其误差 将积分区间[a,b]划分为n等分,记子区间 的中点为 在每个小区间上应用辛卜生 公式,则有:
类似于复化梯形公式余项的讨论,复化辛卜生公式 (3.6) 的求积余项为 记 (3-15) 称为复化辛卜生公式 类似于复化梯形公式余项的讨论,复化辛卜生公式 (3.6) 的求积余项为
如果把每个子区间 四等分,内分点依次记 同理可得复化柯特斯公式: (3-16) 求积余项为:
复化求积公式的余项表明,只要被积函数f(x)所涉及的各阶导数在[a,b]上连续,那么复化梯形公式、复化辛卜生公式与复化柯特斯公式所得近似值 的余项和步长的关系依次为 、 。因此当h→0 (即n→∞)时, 都收敛于积分真值,且收敛速度一个比一个快。
① 确定步长h=(b-a)/N,S1=f (a+h/2) , S2=0 ( N 为等分数 ) ② 对k=1,2,…,N-1,计算 3.5.4 复化辛卜生求积算法实现 (1)复化辛卜生公式计算步骤 ① 确定步长h=(b-a)/N,S1=f (a+h/2) , S2=0 ( N 为等分数 ) ② 对k=1,2,…,N-1,计算 S1= S1+f (a+kh+h/2) , S2= S2+f (a+kh) ③ S = h f (a) +4S1+ 2 S2+ f (b)/6 (3)程序实现(见附录A A-12复化辛卜生求积法)
(2)复化辛卜生公式流程图
例3.13 依次用n=8的复化梯形公式、n=4的复化 辛卜生公式计算定积分 解:首先计算出所需各节点的函数值,n=8时, 由复化梯形公式(3-4)可得如下计算公式:
由复化辛卜生公式(3.6)可得如下计算公式 (积分准确值I=0.9460831) 这两种方法都需要提供9个点上的函数值,计算量基本相同,然而精度却差别较大,同积分的准确值(是指每一位数字都是有效数字的积分值)比较,复化梯形法只有两位有效数字(T8=0.9456909),而复化辛卜生法却有六位有效数字。
例3.14 用复化梯形公式计算定积分 才能使误差不超过 问区间[0,1]应分多少等份 解:取 ,则 ,又区间长度b-a=1,对 复化梯形公式有余项 即 ,n≥212.85,取n=213,即将区间 [0,1]分为213等份时,用复化梯形公式计算误差 不超过 。
复化求积方法对于提高计算精度是行之有效的方法,但复化公式的一个主要缺点在于要先估计出步长。 3.6 龙贝格(Romberg)求积法 复化求积方法对于提高计算精度是行之有效的方法,但复化公式的一个主要缺点在于要先估计出步长。 若步长太大,则难以保证计算精度,若步长太小,则计算量太大,并且积累误差也会增大。 在实际计算中通常采用变步长的方法,即把步长逐次分半,直至达到某种精度为止。
3.6.1变步长的梯形公式 变步长复化求积法的基本思想是在求积过程中,通过对计算结果精度的不断估计,逐步改变步长(逐次分半),直至满足精度要求为止。即按照给定的精度实现步长的自动选取。
设将积分区间[a,b]n等分,即分成n个子区间,一共有n+1个节点,即 x = a+kh, k=0,1,…,n, 步长为 。对于某个子区间 , 利用梯形公式计算积分近似值有: 对整个区间[a,b]有:
将子区间 再二等份,取其中点 作为新节点,此时区间数增加了一倍为2n,对某个子区间 ,利用复化梯形公式计算其积分近似值: 对整个区间[a,b]有:
比较 和 有: (3.7)
当把积分区间分成n等份,用复化梯形公式 所以 计算积分 I 的近似值 时,截断误差为: 当 在区间[a,b]上变化不大时,有 所以
可见,当步长二分后误差将减至 ,将 上式移项整理,可得验后误差估计式: 上式说明,只要二等份前后两个积分值 和 相当接近,就可以保证计算结果 可见,当步长二分后误差将减至 ,将 上式移项整理,可得验后误差估计式: (3.8) 上式说明,只要二等份前后两个积分值 和 相当接近,就可以保证计算结果 的误差很小,使 接近于积分值I。
① 变步长梯形求积法。它是以梯形求积公式为基础,逐步减少步长,按如下递推公式求二分后的梯形值: 6.6.2 变步长的梯形求积算法实现 (1)变步长的梯形求积法的计算步骤 ① 变步长梯形求积法。它是以梯形求积公式为基础,逐步减少步长,按如下递推公式求二分后的梯形值: 其中Tn和T2n分别代表二等分前后的积分值 。
② 如果 , (ε为给定的误差限 ) 则 T2n 作为积分的近似值, 否则继续进行二等分, 即:
(2)变步长梯形公式的流程图
例3.15 用变步长梯形求积法计算定积分 解: 先对整个区间0,1用梯形公式,对于 所以有: 然后将区间二等份,由于 ,故有: 进一步二分求积区间,并计算新分点上的函数值:
有: 再进一步二分求积区间,并计算新分点上的函数值: 有: 这样不断二分下去。积分的准确值为0.9460831,用变步长二分10次可得此结果。
变步长梯形求积法算法简单,但精度较差,收敛速度较慢,但可以利用梯形法算法简单的优点,形成一个新算法,这就是龙贝格求积公式。 3.6.3 龙贝格求积公式 变步长梯形求积法算法简单,但精度较差,收敛速度较慢,但可以利用梯形法算法简单的优点,形成一个新算法,这就是龙贝格求积公式。 龙贝格公式又称逐次分半加速法。
根据积分区间分成 n 等份和 2n 等份时的误差估计式 (3.8) 可得: 所以积分值 的误差大致等于 , 如果用 对 进行修正时, 与 之和比 更接近积分真 值,所以可以将 看成是对 误差的 一种补偿,因此可得到具有更好效果的式子。
作线性组合,结果却得到用复化辛卜生公式计算得到 的积分值 。 考察 与n等分辛卜生公式 之间的关系。将 复化梯形公式: 这就是说,用梯形法二分前后两个积分值 和 作线性组合,结果却得到用复化辛卜生公式计算得到 的积分值 。 (6.9) 考察 与n等分辛卜生公式 之间的关系。将 复化梯形公式: 梯形变步长公式: 代入(3.9) 表达式得: 故 (3.10)
再考察辛卜生法。其截断误差与 成正比,因此,如果将步长折半,则误差减至 ,即有: 由此可得: 可以验证,上式右端的值其实等于 Cn ,就是说,用辛卜生公式二等分前后的两个积分值 Sn和 S2n 作线性组合后,可得到用柯特斯公式求得的积分值 Cn ,即有: (3.11)
用同样的方法,根据柯特斯公式的误差公式,可进一步导出龙贝格公式: (3.12) 在变步长的过程中运用(3.10)、(3.11)和(3.12),就能将粗糙的梯形值 Tn 逐步加工成精度较高的辛卜生值 Sn 、柯特斯值 Cn 和龙贝格值 Rn 或者说,将收敛缓慢的梯形值序列 Tn 加工成收敛迅速的龙贝格值序列 Rn ,这种加速方法称为龙贝格算法(龙贝格公式)。
3.6.4 龙贝格求积法算法实现 (1) 龙贝格求积法计算步骤 用梯形公式计算积分近似值: 按变步长梯形公式计算积分近似值 将区间逐次分半,令区间长度 计算:
③ 按加速公式求加速值 梯形加速公式: 辛卜生加速公式: 龙贝格求积公式:
④ 精度控制,直到相邻两次积分值 (其中ε为允许的误差限)则终止计算并取 Rn 作为积分 的近似值,否则将区间再对分,重复 ②,③,④ 的计算,直到满足精度要求为止。
例6.16 用龙贝格算法计算定积分 要求相邻两次龙贝格值的偏差不超过 解: 由题意
由于 ,于是有:
Thank you very much!