Skip to content

19.3.4 龙贝格方法 ​

为提高数值积分的精度, 推荐从梯形求和序列出发, 重复对分积分步长的龙贝格 (Romberg) 方法.

19.3.4.1 龙贝格方法的算法 ​

该方法包含以下步骤.

1. 确定梯形和 ​

根据 19.3.2.2 的 (19.76) 确定积分 ∫abf(x)dx 关于步长

(19.85)hi=b−a2i(i=0,1,2,⋯,m)

的近似梯形和 T(hi) ,这里考虑递归关系

T(hi)=T(hi−12)=hi−12[12f(a)+f(a+hi−12)+f(a+hi−1)+f(a+32hi−1)+f(a+2hi−1)+⋯+f(a+2n−12hi−1)+12f(b)]=12T(hi−1)+hi−12∑j=0n−1⁡f(a+hi−12+jhi−1)(i=1,2,⋯,m;n=2i−1).

(19.86)

递归公式 (19.86) 告诉我们,由 T(hi−1) 计算 T(hi) 仅需在新增插值节点计算函数值.

2. 三角格式 ​

令 T0i=T(hi)(i=0,1,2,⋯) ,进行递归计算

(19.87)Tki=Tk−1,i+Tk−1,i−Tk−1,i−14k−1(k=1,2,⋯,m;i=k,k+1,⋯).

根据 (19.87) 计算得到的数值经常排列成三角格式, 其元素按逐列方式计算:

T(h0)=T00T(h1)=T01T11(19.88)T(h2)=T02T12T22T(h3)=T03T13T23T33

... ...

该格式会一直持续下去 (对于给定的列数), 直到在右边最下面的数值几乎相同. 第二列的值 T1i(i=1,2,⋯) 相应于由辛普森公式计算得到的值.

19.3.4.2 外推原理 ​

龙贝格方法应用了所谓外推原理. 当 k=1 时通过推导 (19.86) 证明之. 需要计算的积分表示为 I ,相应的梯形和 (19.76) 表示为 T(h) . 若 I 的被积函数在积分区间是 2m+2 次连续可微的,则能证明关于 h 的渐进展开对求积公式的误差 R 是成立的, 且有形式

(19.89a)R(h)=I−T(h)=a1h2+a2h4+⋯+amh2m+O(h2m+2)

或

(19.89b)T(h)=I−a1h2−a2h4−⋯−amh2m+O(h2m+2),

系数 a1,a2,⋯,am 为与 h 无关的常数.

根据(19.89b),考虑 T(h) 与 T(h2) 及其线性组合

T1(h)=α1T(h)+α2T(h2)=(α1+α2)I−a1(α1+α24)h2(19.90)−a2(α1+α216)h4−⋯

若以 α1+α2=1 及 α1+α24=0 代入,则 T1(h) 有 4 阶误差,而 T(h) 与 T(h2) 仅有 2 阶误差. 公式为

(19.91)T1(h)=−13T(h)+43T(h2)=T(h2)+T(h2)−T(h)3.

这是 k=1 时的公式 (19.87),根据 (19.87) 重复应用上述过程就得到近似 Tik ,且

(19.92)Tki=I+O(hi2k+2).

◼ 定积分 I=∫01sin⁡xxdx (参见第 681 页 8.2.5,1.) 不能用基本方法得到. 计算该积分的近似值 (保留 8 位数字).

1. 龙贝格方法 ​

k=0

k=1

k=2

k=3

0.92073549

0.93979328

0.94614588

0.94451352

0.94608693

0.94608300

0.94569086

0.94608331

0.94608307

0.94608307

由龙贝格方法得到近似值 0.94608307. 按 10 位数字得到的是 0.9460830704. 根据(19.92)验证了误差阶为 O((1/8)8)≈6⋅10−8 .

2. 梯形与辛普森公式 ​

根据龙贝格方法的格式,对于 h3=1/8 能直接得到梯形公式的近似值 0.94569086, 而辛普森公式得到的近似值为 0.94608331 .

根据 (19.79) 修正埃尔米特梯形公式得到的结果为

$◼$≈0.94569086+0.3011686864⋅12=0.94608301.

3. 高斯公式 ​

由公式 (19.83) 得

n=1:I≈12[c0f(12x0+12)+c1f(12x1+12)]=0.94604113n=2:I≈12[c0f(12x0+12)+c1f(12x1+12)+c2f(12x2+12)]=0.94608313n=3:I≈12[c0f(12x0+12)+⋯+c3f(12x3+12)]=0.94608307.

可见对于 n=3 的高斯积分公式,仅用四个函数值就可得到 8 位数字的准确值. 而用梯形公式要达到这个精度需要非常多 (大于 1000) 个函数值.

注 (1) 傅里叶分析在周期函数的积分中起重要作用 (参见第 633 页 7.4.1.1,1.). 其数值实现的细节可在调和分析的目录下找到 (参见第 1287 页 19.6.4). 实际计算基于所谓快速傅里叶变换 FFT (参见第 1288 页 19.6.4.2).

(2) 在许多应用中, 考虑积分的特殊性质是有用的. 对这些特殊情况发展了进一步的积分法则. 关于收敛性、误差分析、最优积分公式的大量讨论可见文献 (例如见 [19,7]) .

(3) 文献中讨论了求多重积分值的数值方法 (例如见 [19.34]).

version 1.24.0