数值积分

  • 牛顿-柯特斯求积公式
    • 定义
      • 已知积分区间 [a,b][a,b] 和被积函数 f(x)f(x) 在 [a,b][a,b] 上等距的 n+1n+1 个插值节点 x0,x1,…,xnx_0,x_1,\dots,x_n 和函数值。
      • I=∫abf(x)dx≈∑i=0n∫abai(x)f(xi)dx=∑i=0ncif(xi)=(b−a)∑i=0nCi(n)f(xi)I=\displaystyle\int_a^b f(x) \mathrm dx \approx \sum_{i=0}^n \int_a^b a_i(x)f(x_i) \mathrm dx = \sum_{i=0}^n c_i f(x_i) = (b-a) \sum_{i=0}^n C_i^{(n)} f(x_i)。
      • 最后 I≈(b−a)∑i=0nCi(n)f(xi)I \approx (b-a) \displaystyle\sum_{i=0}^n C_i^{(n)} f(x_i) 称牛顿-柯特斯求积公式.
      • 定义 Ci(n)C_i^{(n)} 为柯特斯系数,只与插值节点数和下标有关。
      • 对于任意积分,只要在区间 [a,b][a,b] 选取等距的 n+1n+1 个点和函数值,分别相乘系数和相加即可得近似值。
    • 柯特斯系数表
      • nnC0(n)C_0^{(n)}C1(n)C_1^{(n)}C2(n)C_2^{(n)}C3(n)C_3^{(n)}C4(n)C_4^{(n)}
        111/21/21/21/2
        221/61/64/64/61/61/6
        331/81/83/83/83/83/81/81/8
        447/907/9016/4516/452/152/1516/4516/457/907/90
      • Ci(n)C_i^{(n)} 有对称性,Ci(n)=Cn−i(n)C_i^{(n)}=C_{n-i}^{(n)}。
      • ∑i=0nCi(n)=1\displaystyle \sum_{i=0}^n C_i^{(n)}=1。
    • 误差估计
      • 牛顿-柯特斯求积公式由拉格朗日公式推导而来,截断误差则也可以使用插值的误差推导。
      • nn 次插值多项式有 Rn(x)=f(n+1)(ξ)(n+1)!∏i=0n(x−xi)R_n(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!}\displaystyle\prod_{i=0}^n(x-x_i),则求积公式有 R=∫abRn(x)dxR=\displaystyle\int_a^b R_n(x)\mathrm dx。
      • 舍入误差有 ϵ=(b−a)∑i=0n(∣Ci(n)∣Δf∣+∣f∣ΔCi(n))\epsilon = (b-a)\displaystyle\sum_{i=0}^n (|C_i^{(n)}| \Delta f| + |f| \Delta C_i^{(n)})。
    • 常用形式
      • 梯形公式 n=1n=1
        • I≈b−a2(f(a)+f(b))I \approx \dfrac{b-a}{2} (f(a) + f(b))
        • R=−(b−a)312f′′(ξ)R=-\dfrac{(b-a)^3}{12}f''(\xi)
      • 辛普森公式 n=2n=2
        • I≈b−a6(f(a)+4f(a+b2)+f(b))I \approx \dfrac{b-a}{6}\left( f(a) + 4f\left(\dfrac{a+b}{2}\right) + f(b) \right)
        • R=−(b−a)52880f(4)(ξ)=−h590f(4)(ξ)R=-\dfrac{(b-a)^5}{2880}f^{(4)}(\xi)=-\dfrac{h^5}{90}f^{(4)}(\xi)
      • 柯特斯公式 n=4n=4
        • I≈b−a90(7f(x0)+32f(x1)+12f(x2)+32f(x3)+7f(x4))I \approx \dfrac{b-a}{90} (7f(x_0) + 32f(x_1) + 12f(x_2) + 32f(x_3) + 7f(x_4))
  • 复化求积公式
    • 定义
      • 对于积分区间 [a,b][a,b],等距分为 mm 大段,每个大段分别运用求积公式,最后累加。
      • 每一大段内分为 nn 个小段,即每一大段的积分值使用 nn 次牛顿-柯特斯求积公式求解。
      • 总共的小段数记作 M=mnM=mn。
    • 常用形式
      • 复化梯形公式 n=1n=1
        • M=mM=m
        • R=−(b−a)312m2f′′(ξ)R = -\dfrac{(b-a)^3}{12m^2}f''(\xi)
      • 复化辛普森公式 n=2n=2
        • M=2mM=2m
        • R=−(b−a)52880m4f(4)(ξ)R = -\dfrac{(b-a)^5}{2880m^4}f^{(4)}(\xi)
      • 通用形式
        • 若 RR 中包含 (b−a)k(b-a)^k,则复化后的 R′=mRmk=Rmk−1R' = m\dfrac{R}{m^k} = \dfrac{R}{m^{k-1}}。
    • 递推形式
      • 复化求积公式支持增量地添加节点,而已有不需要计算原来函数值。
      • 对梯形公式,设 TMT_M 表示有 M=mM=m 个小段的复化求积结果。
      • T2k=12T2k−1+h∑i=12k−1f(a+(2i−1)h)T_{2^k} = \dfrac{1}{2}T_{2^{k-1}} + h\displaystyle\sum_{i=1}^{2^{k-1}} f(a+(2i-1)h),后面的 a+(2i−1)ha+(2i-1)h 为原来 2k−12^{k-1} 个区间的中点。
    • 事后估计误差
      • 已知 TM,T2MT_M,T_{2M},则 I≈T2M+13(T2M−TM)I \approx T_{2M} + \dfrac{1}{3}(T_{2M} - T_M),Δ=13(T2M−TM)\Delta = \dfrac{1}{3}(T_{2M} - T_M) 为估计的 T2MT_{2M} 的误差。
      • 以上公式也可以看作加上误差来修正结果,对各常用公式都有:
        • 梯形公式:I≈T2M+13(T2M−TM)=44−1T2M−14−1TMI \approx T_{2M} + \dfrac{1}{3}(T_{2M} - T_M) = \dfrac{4}{4-1}T_{2M} - \dfrac{1}{4-1}T_M
        • 辛普森公式:I≈S2M+115(S2M−SM)=4242−1S2M−142−1SMI \approx S_{2M} + \dfrac{1}{15}(S_{2M} - S_M) = \dfrac{4^2}{4^2-1}S_{2M} - \dfrac{1}{4^2-1}S_M
        • 柯特斯公式:I≈C2M+163(C2M−CM)=4343−1C2M−143−1CMI \approx C_{2M} + \dfrac{1}{63}(C_{2M} - C_M) = \dfrac{4^3}{4^3-1}C_{2M} - \dfrac{1}{4^3-1}C_M
  • 龙贝格法
    • 推导可得 SM=44−1T2M−14−1TMS_M = \dfrac{4}{4-1}T_{2M} - \dfrac{1}{4-1}T_M,CM=4242−1S2M−142−1SMC_M = \dfrac{4^2}{4^2-1}S_{2M} - \dfrac{1}{4^2-1}S_M。
    • 每种两个积分值可以得到一个更精确的积分值。
    • 定义龙贝格序列 RM=4343−1C2M−143−1CMR_M = \dfrac{4^3}{4^3-1}C_{2M} - \dfrac{1}{4^3-1}C_M。
    • 理论上可以继续基于 RMR_M 组合,但系数的开始变化不大,对精度要求更高。
    • 实际计算采用如下顺序:T1→T2→S1→T4→S2→C1→T8→C4→S2→R1→⋯T_1 \to T_2 \to S_1 \to T_4 \to S_2 \to C_1 \to T_8 \to C_4 \to S_2 \to R_1 \to \cdots。
  • 高斯求积公式
    • 已知积分区间 [a,b][a,b],被积函数 f(x)f(x)。
    • I≈b−a2∑i=1nwi(n)f(xi)I \approx \dfrac{b-a}{2} \displaystyle\sum_{i=1}^n w_i^{(n)} f(x_i),xi=a+b2+b−a2ti(n)x_i = \dfrac{a+b}{2} + \dfrac{b-a}{2}t_i^{(n)},ti(n)t_i^{(n)} 为 nn 次勒让德多项式的 nn 个零点。
    • ti(n),wi(n),Rnt_i^{(n)},w_i^{(n)},R_n 都可以查表得到。
  • 求积公式的代数精度
    • 定义
      • 求积公式 In=∑i=0nAif(xi)I_n = \displaystyle\sum_{i=0}^n A_i f(x_i) 的代数精度为 mm,当且仅当
        • 对次数小于等于 mm 的多项式的截断误差 I−In=0I-I_n=0,
        • 对次数大于 mm 的 I−In≠0I-I_n\ne 0。
    • 计算
      • 对于已知求积公式,只要不断判断 1,x,x2,x3,…1,x,x^2,x^3,\dots 的积分值是否精确,直到不相等。
      • 对于 AiA_i 未知的求积公式,要求确定 AiA_i 以得到最高代数精度
        • 先用 1,x,x2,x3,…,xn1,x,x^2,x^3,\dots,x^n 的积分值构造方程组求解 AiA_i,此时至少有 nn 次精度。
        • 从 xn+1x^{n+1} 开始判断求解的 AiA_i 是否计算精确,若准确则代数精度可以增加。
    • 性质
      • nn 次牛顿-柯特斯求积公式(n+1n+1 个点)的代数精度:
        • 当 nn 为奇数时,代数精度为 nn。
        • 当 nn 为偶数时,代数精度为 n+1n+1。
      • 使用 nn 个节点的高斯求积公式的代数精度为 2n−12n-1。