跳至主要內容

数值积分

大约 3 分钟

数值积分

代数精度

当求积公式对次数不超过 mm 的多项式能够准确成立, 但对 m+1m+1 次多项式不成立, 则称求积公式具有 mm 次代数精度

确定代数精度/积分公式的系数

对于

I=abf(x)dx I=\int_a^bf(x)dx

可以令 f(x)=xif(x)=x^i, 从 00 开始不断提高 ii, 直到公式不成立, 注意积分上下限 a,ba,b

牛顿-柯斯特公式

即等距插值公式的积分形式, nn 阶公式至少具有 nn 次代数精度, 其中偶数阶的公式具有 n+1n+1 次代数精度 (nn 阶对应 nn 次插值, 等距离的取区间内的 n+1n+1 个点)

梯形公式

n=1n=1, 具有 n=1n=1 次代数精度 将积分区间的两个端点相连, 计算围成的梯形的面积, 近似为积分结果 (积分属于计算面积, 因此 bab-a 项不能忘)

abf(x)dxba2[f(a)+f(b)] \int_a^bf(x)dx\approx\frac{b-a}{2}[f(a)+f(b)]

辛普森公式

n=2n=2, 具有 n+1=3n+1=3 次代数精度

abf(x)dxba6[f(a)+4f(a+b2)+f(b)] \int_a^bf(x)dx\approx\frac{b-a}{6}[f(a)+4f(\frac{a+b}{2})+f(b)]

复合求积公式

n8n\ge8 时, 公式出现负数系数, 不具有稳定性, 可分段使用低阶公式

复合梯形公式

将积分区间 [a,b][a,b] nn 等分, 得到 xi=a+ih,h=banx_i=a+ih,h=\frac{b-a}{n}, 对每一个分段采用梯形公式有 (需要乘上每一段的步长 hh, 并在累加中提出)

I=abf(x)dxi=0n1h2[f(xi)+f(xi+1)]=h2[f(a)+2i=1n1f(xi)+f(b)] I=\int_a^bf(x)dx\approx\sum_{i=0}^{n-1}\frac{h}{2}[f(x_i)+f(x_{i+1})]\\=\frac{h}{2}[f(a)+2\sum^{n-1}_{i=1} f(x_i)+f(b)]

公式误差阶数为 h2h^2

复合辛普森公式

对每一个分段采用辛普森公式有(辛普森公式还需要子区间内的中点)

I=abf(x)dxi=0n1h6[f(xi)+4f(xi+12)+f(xi+1)]=h6[f(a)+2i=1n1f(xi)+4i=0n1f(xi+12)+f(b)] I=\int_a^bf(x)dx\approx\sum_{i=0}^{n-1}\frac{h}{6}[f(x_i)+4f(x_{i+\frac{1}{2}})+f(x_{i+1})]\\=\frac{h}{6}[f(a)+2\sum^{n-1}_{i=1}f(x_i)+4\sum^{n-1}_{i=0}f(x_{i+\frac{1}{2}})+f(b)]

公式误差阶数为 h4h^4

递推化复合求积

符号

  1. 规定 Tm(h)T_m(h) 表示采用 m+1m+1 阶公式, 子区间长度为 hh 的复合求积值, 其中 T0(h)T_0(h) 即梯形公式
  2. 规定 Tm(k)T_m^{(k)} 表示长度 kk 次二分后的复合求积值, 即 Tm(k)(h)=Tm(h2k)T_m^{(k)}(h)=T_m(\frac{h}{2^{k}}), 其中 (h)(h) 可省略

递推公式

梯形公式中, 如果二分区间, 可得到二分子区间的梯形公式

abf(x)dxba4[f(a)+f(b)+2f(a+b2)] \int_a^bf(x)dx\approx\frac{b-a}{4}[f(a)+f(b)+2f(\frac{a+b}{2})]

对每一个子区间使用可得

T0(1)=h4[f(a)+2i=1n1f(xi)+2i=0n1f(xi+12)+f(b)]=12T0(0)+h2i=0n1f(xi+12) T_0^{(1)}=\frac{h}{4}[f(a)+2\sum^{n-1}_{i=1}f(x_i)+2\sum^{n-1}_{i=0}f(x_{i+\frac{1}{2}})+f(b)]\\=\frac{1}{2}T_0^{(0)}+\frac{h}{2}\sum^{n-1}_{i=0}f(x_{i+\frac{1}{2}})

  • 递推公式中, 每次二分都从上一个积分值得到, 避免重复计算
  • 带入 n=2n,h=h2n'=2n,h'=\frac{h}{2} 推广可得到任意次二分公式

龙贝格算法

可通过低阶的复化求积公式递推到高阶的复化求积公式

Tm(k)=4m4m1Tm1(k+1)14m1Tm1(k) T_{m}^{(k)}=\frac{4^m}{4^m-1}T^{(k+1)}_{m-1}-\frac{1}{4^m-1}T^{(k)}_{m-1}