数值积分

  • 牛顿-柯特斯求积公式
    • 定义
      • 已知积分区间 [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)dxi=0nabai(x)f(xi)dx=i=0ncif(xi)=(ba)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(ba)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)=Cni(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(xxi)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
      • 舍入误差有 ϵ=(ba)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
        • Iba2(f(a)+f(b))I \approx \dfrac{b-a}{2} (f(a) + f(b))
        • R=(ba)312f(ξ)R=-\dfrac{(b-a)^3}{12}f''(\xi)
      • 辛普森公式 n=2n=2
        • Iba6(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=(ba)52880f(4)(ξ)=h590f(4)(ξ)R=-\dfrac{(b-a)^5}{2880}f^{(4)}(\xi)=-\dfrac{h^5}{90}f^{(4)}(\xi)
      • 柯特斯公式 n=4n=4
        • Iba90(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=(ba)312m2f(ξ)R = -\dfrac{(b-a)^3}{12m^2}f''(\xi)
      • 复化辛普森公式 n=2n=2
        • M=2mM=2m
        • R=(ba)52880m4f(4)(ξ)R = -\dfrac{(b-a)^5}{2880m^4}f^{(4)}(\xi)
      • 通用形式
        • RR 中包含 (ba)k(b-a)^k,则复化后的 R=mRmk=Rmk1R' = m\dfrac{R}{m^k} = \dfrac{R}{m^{k-1}}
    • 递推形式
      • 复化求积公式支持增量地添加节点,而已有不需要计算原来函数值。
      • 对梯形公式,设 TMT_M 表示有 M=mM=m 个小段的复化求积结果。
      • T2k=12T2k1+hi=12k1f(a+(2i1)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+(2i1)ha+(2i-1)h 为原来 2k12^{k-1} 个区间的中点。
    • 事后估计误差
      • 已知 TM,T2MT_M,T_{2M},则 IT2M+13(T2MTM)I \approx T_{2M} + \dfrac{1}{3}(T_{2M} - T_M)Δ=13(T2MTM)\Delta = \dfrac{1}{3}(T_{2M} - T_M) 为估计的 T2MT_{2M} 的误差。
      • 以上公式也可以看作加上误差来修正结果,对各常用公式都有:
        • 梯形公式:IT2M+13(T2MTM)=441T2M141TMI \approx T_{2M} + \dfrac{1}{3}(T_{2M} - T_M) = \dfrac{4}{4-1}T_{2M} - \dfrac{1}{4-1}T_M
        • 辛普森公式:IS2M+115(S2MSM)=42421S2M1421SMI \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
        • 柯特斯公式:IC2M+163(C2MCM)=43431C2M1431CMI \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=441T2M141TMS_M = \dfrac{4}{4-1}T_{2M} - \dfrac{1}{4-1}T_MCM=42421S2M1421SMC_M = \dfrac{4^2}{4^2-1}S_{2M} - \dfrac{1}{4^2-1}S_M
    • 每种两个积分值可以得到一个更精确的积分值。
    • 定义龙贝格序列 RM=43431C2M1431CMR_M = \dfrac{4^3}{4^3-1}C_{2M} - \dfrac{1}{4^3-1}C_M
    • 理论上可以继续基于 RMR_M 组合,但系数的开始变化不大,对精度要求更高。
    • 实际计算采用如下顺序:T1T2S1T4S2C1T8C4S2R1T_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)
    • Iba2i=1nwi(n)f(xi)I \approx \dfrac{b-a}{2} \displaystyle\sum_{i=1}^n w_i^{(n)} f(x_i)xi=a+b2+ba2ti(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 的多项式的截断误差 IIn=0I-I_n=0
        • 对次数大于 mmIIn0I-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 个节点的高斯求积公式的代数精度为 2n12n-1