数值微分
核心思想
设 f ( x ) f(x) f ( x ) 在区间内有定义,给定步长 h > 0 h>0 h > 0 ,通过节点 x , x ± h x, x\pm h x , x ± h 上的函数值构造差商 近似导数:
f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h f'(x) = \lim_{h\to 0}\frac{f(x+h)-f(x)}{h} f ′ ( x ) = h → 0 lim h f ( x + h ) − f ( x )
数学基础
Taylor 公式 (Lagrange 余项):
f ( x + h ) = f ( x ) + h 1 ! f ′ ( x ) + h 2 2 ! f ′ ′ ( x ) + ⋯ + h n − 1 ( n − 1 ) ! f ( n − 1 ) ( x ) + h n n ! f ( n ) ( x + θ h ) f(x+h)
=f(x)+\frac{h}{1!}f'(x)+\frac{h^2}{2!}f''(x)
+\cdots+ \frac{h^{n-1}}{(n-1)!}f^{(n-1)}(x) + \frac{h^n}{n!}f^{(n)}(x+\theta h) f ( x + h ) = f ( x ) + 1 ! h f ′ ( x ) + 2 ! h 2 f ′′ ( x ) + ⋯ + ( n − 1 )! h n − 1 f ( n − 1 ) ( x ) + n ! h n f ( n ) ( x + θ h )
其中 0 < θ < 1 0 \lt \theta \lt 1 0 < θ < 1 。
向前差商
f ′ ( x ) ≈ f ( x + h ) − f ( x ) h f'(x) \approx \frac{f(x+h)-f(x)}{h} f ′ ( x ) ≈ h f ( x + h ) − f ( x )
误差推导 :将 f ( x + h ) f(x+h) f ( x + h ) 在 x x x 处 Taylor 展开至二阶:
f ( x + h ) = f ( x ) + h f ′ ( x ) + h 2 2 f ′ ′ ( x + θ 1 h ) f(x+h) = f(x) + hf'(x) + \frac{h^2}{2}f''(x+\theta_1 h) f ( x + h ) = f ( x ) + h f ′ ( x ) + 2 h 2 f ′′ ( x + θ 1 h )
整理得:
f ′ ( x ) − f ( x + h ) − f ( x ) h = − h 2 f ′ ′ ( x + θ 1 h ) = O ( h ) f'(x) - \frac{f(x+h)-f(x)}{h} = -\frac{h}{2}f''(x+\theta_1 h) = O(h) f ′ ( x ) − h f ( x + h ) − f ( x ) = − 2 h f ′′ ( x + θ 1 h ) = O ( h )
向后差商
f ′ ( x ) ≈ f ( x ) − f ( x − h ) h f'(x) \approx \frac{f(x)-f(x-h)}{h} f ′ ( x ) ≈ h f ( x ) − f ( x − h )
误差推导 :将 f ( x − h ) f(x-h) f ( x − h ) 在 x x x 处 Taylor 展开至二阶:
f ( x − h ) = f ( x ) − h f ′ ( x ) + h 2 2 f ′ ′ ( x − θ 2 h ) f(x-h) = f(x) - hf'(x) + \frac{h^2}{2}f''(x-\theta_2 h) f ( x − h ) = f ( x ) − h f ′ ( x ) + 2 h 2 f ′′ ( x − θ 2 h )
整理得:
f ′ ( x ) − f ( x ) − f ( x − h ) h = − h 2 f ′ ′ ( x − θ 2 h ) = O ( h ) f'(x) - \frac{f(x)-f(x-h)}{h} = -\frac{h}{2}f''(x-\theta_2 h) = O(h) f ′ ( x ) − h f ( x ) − f ( x − h ) = − 2 h f ′′ ( x − θ 2 h ) = O ( h )
中心差商
f ′ ( x ) ≈ f ( x + h ) − f ( x − h ) 2 h f'(x) \approx \frac{f(x+h)-f(x-h)}{2h} f ′ ( x ) ≈ 2 h f ( x + h ) − f ( x − h )
误差推导 :分别展开 f ( x + h ) f(x+h) f ( x + h ) 与 f ( x − h ) f(x-h) f ( x − h ) 至三阶:
f ( x + h ) = f ( x ) + h f ′ ( x ) + h 2 2 f ′ ′ ( x ) + h 3 6 f ′ ′ ′ ( x + θ 1 h ) f ( x − h ) = f ( x ) − h f ′ ( x ) + h 2 2 f ′ ′ ( x ) − h 3 6 f ′ ′ ′ ( x − θ 2 h ) \begin{aligned}
f(x+h) &= f(x) + hf'(x) + \frac{h^2}{2}f''(x) + \frac{h^3}{6}f'''(x+\theta_1 h) \\
f(x-h) &= f(x) - hf'(x) + \frac{h^2}{2}f''(x) - \frac{h^3}{6}f'''(x-\theta_2 h)
\end{aligned} f ( x + h ) f ( x − h ) = f ( x ) + h f ′ ( x ) + 2 h 2 f ′′ ( x ) + 6 h 3 f ′′′ ( x + θ 1 h ) = f ( x ) − h f ′ ( x ) + 2 h 2 f ′′ ( x ) − 6 h 3 f ′′′ ( x − θ 2 h )
两式相减得:
f ( x + h ) − f ( x − h ) = 2 h f ′ ( x ) + h 3 6 [ f ′ ′ ′ ( x + θ 1 h ) + f ′ ′ ′ ( x − θ 2 h ) ] f(x+h)-f(x-h) = 2hf'(x) + \frac{h^3}{6}\left[f'''(x+\theta_1 h) + f'''(x-\theta_2 h)\right] f ( x + h ) − f ( x − h ) = 2 h f ′ ( x ) + 6 h 3 [ f ′′′ ( x + θ 1 h ) + f ′′′ ( x − θ 2 h ) ]
整理得:
f ′ ( x ) − f ( x + h ) − f ( x − h ) 2 h = − h 2 12 [ f ′ ′ ′ ( x + θ 1 h ) + f ′ ′ ′ ( x − θ 2 h ) ] = O ( h 2 ) f'(x) - \frac{f(x+h)-f(x-h)}{2h} = -\frac{h^2}{12}\left[f'''(x+\theta_1 h) + f'''(x-\theta_2 h)\right] = O(h^2) f ′ ( x ) − 2 h f ( x + h ) − f ( x − h ) = − 12 h 2 [ f ′′′ ( x + θ 1 h ) + f ′′′ ( x − θ 2 h ) ] = O ( h 2 )
几何直观 :向前/向后差商分别用右/左割线斜率逼近切线斜率,而中心差商用对称割线,利用函数凹凸性的对称 抵消,使精度提升一阶。
插值型数值微分
当函数形式未知,仅知离散节点 { x i } i = 0 n \{x_i\}_{i=0}^n { x i } i = 0 n 上的函数值 y i = f ( x i ) y_i=f(x_i) y i = f ( x i ) 时,
可以构造 n n n 次 Lagrange 插值多项式 φ n ( x ) \varphi_n(x) φ n ( x ) ,以 φ n ( k ) ( x ) \varphi_n^{(k)}(x) φ n ( k ) ( x ) 近似 f ( k ) ( x ) f^{(k)}(x) f ( k ) ( x ) 。
误差推导 :
已知插值余项为
R n ( x ) = f ( x ) − φ n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ( x ) R_n(x) = f(x) - \varphi_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) R n ( x ) = f ( x ) − φ n ( x ) = ( n + 1 )! f ( n + 1 ) ( ξ ) ω n + 1 ( x )
其中 ω n + 1 ( x ) = ∏ j = 0 n ( x − x j ) \omega_{n+1}(x)=\prod_{j=0}^n(x-x_j) ω n + 1 ( x ) = ∏ j = 0 n ( x − x j ) 。
对余项求导得近似误差:
R n ′ ( x ) = d d x [ f ( n + 1 ) ( ξ ) ( n + 1 ) ! ] ω n + 1 ( x ) + f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ′ ( x ) R_n'(x) = \frac{\mathrm{d}}{\mathrm{d}x}\left[\frac{f^{(n+1)}(\xi)}{(n+1)!}\right]\omega_{n+1}(x) + \frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}'(x) R n ′ ( x ) = d x d [ ( n + 1 )! f ( n + 1 ) ( ξ ) ] ω n + 1 ( x ) + ( n + 1 )! f ( n + 1 ) ( ξ ) ω n + 1 ′ ( x )
节点处的误差 :当 x = x i x=x_i x = x i 时 ω n + 1 ( x i ) = 0 \omega_{n+1}(x_i)=0 ω n + 1 ( x i ) = 0 ,故
R n ′ ( x i ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ′ ( x i ) R_n'(x_i) = \frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}'(x_i) R n ′ ( x i ) = ( n + 1 )! f ( n + 1 ) ( ξ ) ω n + 1 ′ ( x i )
特殊地,取两节点 x 0 , x 1 x_0, x_1 x 0 , x 1 ,步长 h = x 1 − x 0 > 0 h=x_1-x_0>0 h = x 1 − x 0 > 0 ,则线性插值多项式:
φ 1 ( x ) = f ( x 0 ) x − x 1 x 0 − x 1 + f ( x 1 ) x − x 0 x 1 − x 0 = f ( x 1 ) ( x − x 0 ) − f ( x 0 ) ( x − x 1 ) h \varphi_1(x) = f(x_0)\frac{x-x_1}{x_0-x_1} + f(x_1)\frac{x-x_0}{x_1-x_0} = \frac{f(x_1)(x-x_0)-f(x_0)(x-x_1)}{h} φ 1 ( x ) = f ( x 0 ) x 0 − x 1 x − x 1 + f ( x 1 ) x 1 − x 0 x − x 0 = h f ( x 1 ) ( x − x 0 ) − f ( x 0 ) ( x − x 1 )
求导得:
φ 1 ′ ( x ) = f ( x 1 ) − f ( x 0 ) h \varphi_1'(x) = \frac{f(x_1)-f(x_0)}{h} φ 1 ′ ( x ) = h f ( x 1 ) − f ( x 0 )
此即向前差商(若 x = x 0 x=x_0 x = x 0 )或向后差商(若 x = x 1 x=x_1 x = x 1 )。
数值积分
问题描述
定积分 I = ∫ a b f ( x ) d x I=\int_a^b f(x)\,\mathrm{d}x I = ∫ a b f ( x ) d x 的数值逼近一般形式:
I ≈ I n ≡ ∑ k = 0 n A k f ( x k ) I \approx I_n \equiv \sum_{k=0}^{n} A_k f(x_k) I ≈ I n ≡ k = 0 ∑ n A k f ( x k )
其中 x k x_k x k 为求积节点,A k A_k A k 为求积系数。
定义 (代数精度):
若求积公式对次数不超过 m m m 的多项式均精确成立,但对 m + 1 m+1 m + 1 次多项式不精确成立,则称该公式具有 m m m 次代数精度。
数学基础
将 [ a , b ] [a,b] [ a , b ] 作 n n n 等分,节点 x i = a + i h x_i=a+ih x i = a + ih (i = 0 , 1 , … , n i=0,1,\dots,n i = 0 , 1 , … , n ),h = b − a n h=\dfrac{b-a}{n} h = n b − a 。
以 P n ( x ) P_n(x) P n ( x ) 为 f ( x ) f(x) f ( x ) 的 n n n 次 Lagrange 插值多项式:
P n ( x ) = ∑ i = 0 n f ( x i ) l i ( x ) , l i ( x ) = ∏ j ≠ i x − x j x i − x j P_n(x) = \sum_{i=0}^{n} f(x_i) l_i(x),\quad l_i(x)=\prod_{j\neq i}\frac{x-x_j}{x_i-x_j} P n ( x ) = i = 0 ∑ n f ( x i ) l i ( x ) , l i ( x ) = j = i ∏ x i − x j x − x j
积分近似:
∫ a b f ( x ) d x ≈ ∫ a b P n ( x ) d x = ∑ i = 0 n [ ∫ a b l i ( x ) d x ] ⏟ A i f ( x i ) \int_a^b f(x)\,\mathrm{d}x \approx \int_a^b P_n(x)\,\mathrm{d}x
= \sum_{i=0}^{n}\underbrace{\left[\int_a^b l_i(x)\,\mathrm{d}x\right]}_{A_i} f(x_i) ∫ a b f ( x ) d x ≈ ∫ a b P n ( x ) d x = i = 0 ∑ n A i [ ∫ a b l i ( x ) d x ] f ( x i )
积分余项:
R ( f ) = ∫ a b f ( n + 1 ) ( ξ ( x ) ) ( n + 1 ) ! ω n + 1 ( x ) d x , ω n + 1 ( x ) = ∏ j = 0 n ( x − x j ) R(f) = \int_a^b \frac{f^{(n+1)}(\xi(x))}{(n+1)!}\omega_{n+1}(x)\,\mathrm{d}x,\quad \omega_{n+1}(x)=\prod_{j=0}^n(x-x_j) R ( f ) = ∫ a b ( n + 1 )! f ( n + 1 ) ( ξ ( x )) ω n + 1 ( x ) d x , ω n + 1 ( x ) = j = 0 ∏ n ( x − x j )
Newton-Cotes 积分
作变量替换 x = a + t h x = a + th x = a + t h (t ∈ [ 0 , n ] t\in[0,n] t ∈ [ 0 , n ] ),则:
ω n + 1 ( x ) = h n + 1 t ( t − 1 ) ⋯ ( t − n ) \omega_{n+1}(x) = h^{n+1}t(t-1)\cdots(t-n) ω n + 1 ( x ) = h n + 1 t ( t − 1 ) ⋯ ( t − n )
ω n + 1 ′ ( x i ) = h n ( − 1 ) n − i i ! ( n − i ) ! \omega_{n+1}'(x_i) = h^n (-1)^{n-i} i!\,(n-i)! ω n + 1 ′ ( x i ) = h n ( − 1 ) n − i i ! ( n − i )!
代入系数公式 A i = ∫ a b l i ( x ) d x A_i = \int_a^b l_i(x)\,\mathrm{d}x A i = ∫ a b l i ( x ) d x :
A i = ∫ a b ω n + 1 ( x ) ( x − x i ) ω n + 1 ′ ( x i ) d x = ∫ 0 n h n + 1 t ( t − 1 ) ⋯ ( t − n ) ( − 1 ) n − i h n i ! ( n − i ) ! ⋅ h ( t − i ) h d t = ( b − a ) ⋅ ( − 1 ) n − i n ⋅ i ! ( n − i ) ! ∫ 0 n t ( t − 1 ) ⋯ ( t − i + 1 ) ( t − i − 1 ) ⋯ ( t − n ) d t \begin{aligned}
A_i &= \int_a^b \frac{\omega_{n+1}(x)}{(x-x_i)\omega_{n+1}'(x_i)}\,\mathrm{d}x \\
&= \int_0^n \frac{h^{n+1}t(t-1)\cdots(t-n)}{(-1)^{n-i}h^n i!\,(n-i)!\cdot h(t-i)}\,h\,\mathrm{d}t \\
&= (b-a)\cdot\frac{(-1)^{n-i}}{n\cdot i!\,(n-i)!}\int_0^n t(t-1)\cdots(t-i+1)(t-i-1)\cdots(t-n)\,\mathrm{d}t
\end{aligned} A i = ∫ a b ( x − x i ) ω n + 1 ′ ( x i ) ω n + 1 ( x ) d x = ∫ 0 n ( − 1 ) n − i h n i ! ( n − i )! ⋅ h ( t − i ) h n + 1 t ( t − 1 ) ⋯ ( t − n ) h d t = ( b − a ) ⋅ n ⋅ i ! ( n − i )! ( − 1 ) n − i ∫ 0 n t ( t − 1 ) ⋯ ( t − i + 1 ) ( t − i − 1 ) ⋯ ( t − n ) d t
定义 Newton-Cotes 系数 C i ( n ) = A i b − a C_i^{(n)} = \dfrac{A_i}{b-a} C i ( n ) = b − a A i ,则求积公式统一写为:
∫ a b f ( x ) d x ≈ ( b − a ) ∑ i = 0 n C i ( n ) f ( x i ) \int_a^b f(x)\,\mathrm{d}x \approx (b-a)\sum_{i=0}^{n} C_i^{(n)} f(x_i) ∫ a b f ( x ) d x ≈ ( b − a ) i = 0 ∑ n C i ( n ) f ( x i )
注 :C i ( n ) C_i^{(n)} C i ( n ) 仅与 n n n 有关 ,与积分区间及被积函数无关,具有通用性。
常用 Newton-Cotes 系数表
n n n C 0 ( n ) C_0^{(n)} C 0 ( n ) C 1 ( n ) C_1^{(n)} C 1 ( n ) C 2 ( n ) C_2^{(n)} C 2 ( n ) C 3 ( n ) C_3^{(n)} C 3 ( n ) C 4 ( n ) C_4^{(n)} C 4 ( n ) C 5 ( n ) C_5^{(n)} C 5 ( n ) C 6 ( n ) C_6^{(n)} C 6 ( n ) 公式名称 1 1 2 \frac{1}{2} 2 1 1 2 \frac{1}{2} 2 1 梯形公式 2 1 6 \frac{1}{6} 6 1 4 6 \frac{4}{6} 6 4 1 6 \frac{1}{6} 6 1 Simpson 公式 3 1 8 \frac{1}{8} 8 1 3 8 \frac{3}{8} 8 3 3 8 \frac{3}{8} 8 3 1 8 \frac{1}{8} 8 1 3/8 公式 4 7 90 \frac{7}{90} 90 7 32 90 \frac{32}{90} 90 32 12 90 \frac{12}{90} 90 12 32 90 \frac{32}{90} 90 32 7 90 \frac{7}{90} 90 7 Cotes 公式 5 19 288 \frac{19}{288} 288 19 25 96 \frac{25}{96} 96 25 25 144 \frac{25}{144} 144 25 25 144 \frac{25}{144} 144 25 25 96 \frac{25}{96} 96 25 19 288 \frac{19}{288} 288 19 6 41 840 \frac{41}{840} 840 41 9 280 \frac{9}{280} 280 9 9 280 \frac{9}{280} 280 9 34 105 \frac{34}{105} 105 34 9 280 \frac{9}{280} 280 9 9 280 \frac{9}{280} 280 9 41 840 \frac{41}{840} 840 41
具体积分公式
梯形公式(n = 1 n=1 n = 1 )
线性插值 P 1 ( x ) P_1(x) P 1 ( x ) 过 ( a , f ( a ) ) (a,f(a)) ( a , f ( a )) 与 ( b , f ( b ) ) (b,f(b)) ( b , f ( b )) :
∫ a b f ( x ) d x ≈ b − a 2 [ f ( a ) + f ( b ) ] \int_a^b f(x)\,\mathrm{d}x \approx \frac{b-a}{2}\bigl[f(a)+f(b)\bigr] ∫ a b f ( x ) d x ≈ 2 b − a [ f ( a ) + f ( b ) ]
几何意义:以梯形面积近似曲边梯形面积。
Simpson 公式(n = 2 n=2 n = 2 )
二次插值过 a , a + b 2 , b a, \dfrac{a+b}{2}, b a , 2 a + b , b 三点:
∫ a b f ( x ) d x ≈ b − a 6 [ f ( a ) + 4 f ( a + b 2 ) + f ( b ) ] \int_a^b f(x)\,\mathrm{d}x \approx \frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right] ∫ a b f ( x ) d x ≈ 6 b − a [ f ( a ) + 4 f ( 2 a + b ) + f ( b ) ]
几何意义:以抛物线围成面积近似原函数积分。
Newton-Cotes 公式(n = 3 n=3 n = 3 )
∫ a b f ( x ) d x ≈ b − a 8 [ f ( x 0 ) + 3 f ( x 1 ) + 3 f ( x 2 ) + f ( x 3 ) ] \int_a^b f(x)\,\mathrm{d}x \approx \frac{b-a}{8}\left[f(x_0)+3f(x_1)+3f(x_2)+f(x_3)\right] ∫ a b f ( x ) d x ≈ 8 b − a [ f ( x 0 ) + 3 f ( x 1 ) + 3 f ( x 2 ) + f ( x 3 ) ]
其中 x 1 = 2 a + b 3 , x 2 = a + 2 b 3 x_1=\dfrac{2a+b}{3},\; x_2=\dfrac{a+2b}{3} x 1 = 3 2 a + b , x 2 = 3 a + 2 b 。
算法实现
通用 Newton-Cotes 求积 :
# 预定义常用系数
TRAPEZOIDAL = [ 0.5 , 0.5 ]
SIMPSON = [ 1 / 6 , 4 / 6 , 1 / 6 ]
NC3 = [ 1 / 8 , 3 / 8 , 3 / 8 , 1 / 8 ]
NC4 = [ 7 / 90 , 32 / 90 , 12 / 90 , 32 / 90 , 7 / 90 ]
def newton_cotes (f, a, b, n, coeffs):
"""
通用 Newton-Cotes 积分
coeffs: 长度为 n+1 的系数列表 C_i^(n)
"""
h = (b - a) / n
nodes = [a + i * h for i in range (n + 1 )]
return (b - a) * sum (c * f(x) for c, x in zip (coeffs, nodes))
复化求积 :
由于单区间高次 Newton-Cotes 可能出现 Runge 现象,故更常用复化低阶公式 ,也即将 [ a , b ] [a,b] [ a , b ] 分为 m m m 个子区间,在每个子区间上应用低阶公式。
def composite_simpson (f, a, b, m):
"""复化 Simpson 公式:m 为子区间数(偶数)"""
if m % 2 == 1 :
m += 1
h = (b - a) / m
s = f(a) + f(b)
for i in range ( 1 , m):
x = a + i * h
s += 4 * f(x) if i % 2 == 1 else 2 * f(x)
return s * h / 3
误差分析
代数精度定理
n + 1 n+1 n + 1 个节点的 Newton-Cotes 求积公式至少具有 n n n 次代数精度。
当 n n n 为偶数时,n + 1 n+1 n + 1 个节点的 Newton-Cotes 求积公式至少具有 n + 1 n+1 n + 1 次代数精度。
证明 :
由于 n + 1 n+1 n + 1 个节点的 Newton-Cotes 求积公式进行了 n n n 次 Lagrange 插值,故至少有 n n n 次代数精度。
只需验证当 n n n 为偶数时对 f ( x ) = x n + 1 f(x)=x^{n+1} f ( x ) = x n + 1 也精确。此时插值余项为:
x n + 1 − P n ( x ) = ω n + 1 ( x ) , ω n + 1 ( x ) = ∏ j = 0 n ( x − x j ) x^{n+1}-P_n(x)=\omega_{n+1}(x),\qquad \omega_{n+1}(x)=\prod_{j=0}^n(x-x_j) x n + 1 − P n ( x ) = ω n + 1 ( x ) , ω n + 1 ( x ) = j = 0 ∏ n ( x − x j )
误差为:
R n ( x n + 1 ) = ∫ a b ω n + 1 ( x ) d x R_n(x^{n+1})=\int_a^b \omega_{n+1}(x)\,\mathrm{d}x R n ( x n + 1 ) = ∫ a b ω n + 1 ( x ) d x
令 x = a + t h x=a+th x = a + t h ,等距节点 x j = a + j h x_j=a+jh x j = a + j h 对应 t j = j t_j=j t j = j ,则:
ω n + 1 ( x ) = h n + 1 ⋅ t ( t − 1 ) ( t − 2 ) ⋯ ( t − n ) \omega_{n+1}(x)=h^{n+1}\cdot t(t-1)(t-2)\cdots(t-n) ω n + 1 ( x ) = h n + 1 ⋅ t ( t − 1 ) ( t − 2 ) ⋯ ( t − n )
于是:
R n ( x n + 1 ) = h n + 2 ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t R_n(x^{n+1})=h^{n+2}\int_0^n t(t-1)\cdots(t-n)\,\mathrm{d}t R n ( x n + 1 ) = h n + 2 ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t
记 I = ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t I=\int_0^n t(t-1)\cdots(t-n)\,\mathrm{d}t I = ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t 。作代换 t = n − u t=n-u t = n − u :
I = ∫ n 0 ( n − u ) ( n − 1 − u ) ⋯ ( − u ) ( − d u ) = ( − 1 ) n + 1 ∫ 0 n u ( u − 1 ) ⋯ ( u − n ) d u = − I \begin{aligned}
I&=\int_n^0 (n-u)(n-1-u)\cdots(-u)\,(-\mathrm{d}u)\\
&=(-1)^{n+1}\int_0^n u(u-1)\cdots(u-n)\,\mathrm{d}u\\
&=-I
\end{aligned} I = ∫ n 0 ( n − u ) ( n − 1 − u ) ⋯ ( − u ) ( − d u ) = ( − 1 ) n + 1 ∫ 0 n u ( u − 1 ) ⋯ ( u − n ) d u = − I
故 I = − I I=-I I = − I ,即:
I = 0 I=0 I = 0
因此 R n ( x n + 1 ) = 0 R_n(x^{n+1})=0 R n ( x n + 1 ) = 0 ,Newton-Cotes 公式对 x n + 1 x^{n+1} x n + 1 也精确成立。
梯形公式误差估计
若 f ( x ) ∈ C 2 [ a , b ] f(x)\in C^2[a,b] f ( x ) ∈ C 2 [ a , b ] ,则梯形公式误差:
R 1 ( f ) = ∫ a b f ( x ) d x − b − a 2 [ f ( a ) + f ( b ) ] = − ( b − a ) 3 12 f ′ ′ ( η ) , a ≤ η ≤ b R_1(f) = \int_a^b f(x)\,\mathrm{d}x - \frac{b-a}{2}[f(a)+f(b)] = -\frac{(b-a)^3}{12}f''(\eta),\quad a\leq\eta\leq b R 1 ( f ) = ∫ a b f ( x ) d x − 2 b − a [ f ( a ) + f ( b )] = − 12 ( b − a ) 3 f ′′ ( η ) , a ≤ η ≤ b
证明 :
由线性插值余项 f ( x ) − P 1 ( x ) = f ′ ′ ( ξ ) 2 ( x − a ) ( x − b ) f(x)-P_1(x)=\frac{f''(\xi)}{2}(x-a)(x-b) f ( x ) − P 1 ( x ) = 2 f ′′ ( ξ ) ( x − a ) ( x − b ) ,积分得:
R 1 ( f ) = ∫ a b f ′ ′ ( ξ ( x ) ) 2 ( x − a ) ( x − b ) d x R_1(f) = \int_a^b \frac{f''(\xi(x))}{2}(x-a)(x-b)\,\mathrm{d}x R 1 ( f ) = ∫ a b 2 f ′′ ( ξ ( x )) ( x − a ) ( x − b ) d x
因 ( x − a ) ( x − b ) ≤ 0 (x-a)(x-b)\leq 0 ( x − a ) ( x − b ) ≤ 0 在 [ a , b ] [a,b] [ a , b ] 上不变号,应用积分中值定理:
R 1 ( f ) = f ′ ′ ( η ) 2 ∫ a b ( x − a ) ( x − b ) d x = − ( b − a ) 3 12 f ′ ′ ( η ) R_1(f) = \frac{f''(\eta)}{2}\int_a^b (x-a)(x-b)\,\mathrm{d}x = -\frac{(b-a)^3}{12}f''(\eta) R 1 ( f ) = 2 f ′′ ( η ) ∫ a b ( x − a ) ( x − b ) d x = − 12 ( b − a ) 3 f ′′ ( η )
注 :梯形公式具有一次代数精度。
Simpson 公式误差估计
若 f ( x ) ∈ C 4 [ a , b ] f(x)\in C^4[a,b] f ( x ) ∈ C 4 [ a , b ] ,则 Simpson 公式误差:
R 2 ( f ) = ∫ a b f ( x ) d x − b − a 6 [ f ( a ) + 4 f ( a + b 2 ) + f ( b ) ] = − ( b − a ) 5 2880 f ( 4 ) ( η ) R_2(f) = \int_a^b f(x)\,\mathrm{d}x - \frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right] = -\frac{(b-a)^5}{2880}f^{(4)}(\eta) R 2 ( f ) = ∫ a b f ( x ) d x − 6 b − a [ f ( a ) + 4 f ( 2 a + b ) + f ( b ) ] = − 2880 ( b − a ) 5 f ( 4 ) ( η )
证明 :
设 c = a + b 2 c=\dfrac{a+b}{2} c = 2 a + b ,h = b − a 2 h=\dfrac{b-a}{2} h = 2 b − a 。构造三次 Hermite 插值多项式 H ( x ) H(x) H ( x ) ,使其满足:
H ( a ) = f ( a ) , H ( c ) = f ( c ) , H ′ ( c ) = f ′ ( c ) , H ( b ) = f ( b ) H(a)=f(a),\quad H(c)=f(c),\quad H'(c)=f'(c),\quad H(b)=f(b) H ( a ) = f ( a ) , H ( c ) = f ( c ) , H ′ ( c ) = f ′ ( c ) , H ( b ) = f ( b )
这 4 个条件唯一确定一个次数不超过 3 的多项式。
由于 Simpson 公式具有 3 次代数精度,因此:
∫ a b H ( x ) d x = b − a 6 [ H ( a ) + 4 H ( c ) + H ( b ) ] = b − a 6 [ f ( a ) + 4 f ( c ) + f ( b ) ] \int_a^b H(x)\,\mathrm{d}x
=\frac{b-a}{6}\Bigl[H(a)+4H(c)+H(b)\Bigr]
=\frac{b-a}{6}\Bigl[f(a)+4f(c)+f(b)\Bigr] ∫ a b H ( x ) d x = 6 b − a [ H ( a ) + 4 H ( c ) + H ( b ) ] = 6 b − a [ f ( a ) + 4 f ( c ) + f ( b ) ]
于是误差可写成:
R 2 ( f ) = ∫ a b [ f ( x ) − H ( x ) ] d x R_2(f)=\int_a^b\bigl[f(x)-H(x)\bigr]\,\mathrm{d}x R 2 ( f ) = ∫ a b [ f ( x ) − H ( x ) ] d x
对 H ( x ) H(x) H ( x ) 应用重节点差商余项公式,存在 ξ x ∈ ( a , b ) \xi_x\in(a,b) ξ x ∈ ( a , b ) 使得:
f ( x ) − H ( x ) = f ( 4 ) ( ξ x ) 4 ! ( x − a ) ( x − c ) 2 ( x − b ) f(x)-H(x)=\frac{f^{(4)}(\xi_x)}{4!}\,(x-a)(x-c)^2(x-b) f ( x ) − H ( x ) = 4 ! f ( 4 ) ( ξ x ) ( x − a ) ( x − c ) 2 ( x − b )
从而:
R 2 ( f ) = 1 24 ∫ a b f ( 4 ) ( ξ x ) ( x − a ) ( x − c ) 2 ( x − b ) d x R_2(f)=\frac{1}{24}\int_a^b f^{(4)}(\xi_x)\,(x-a)(x-c)^2(x-b)\,\mathrm{d}x R 2 ( f ) = 24 1 ∫ a b f ( 4 ) ( ξ x ) ( x − a ) ( x − c ) 2 ( x − b ) d x
由于 f ( 4 ) f^{(4)} f ( 4 ) 连续,且 ( x − a ) ( x − c ) 2 ( x − b ) (x-a)(x-c)^2(x-b) ( x − a ) ( x − c ) 2 ( x − b ) 在 [ a , b ] [a,b] [ a , b ] 上不变号,由积分第一中值定理,存在 η ∈ [ a , b ] \eta\in[a,b] η ∈ [ a , b ] 使得:
R 2 ( f ) = f ( 4 ) ( η ) 24 ∫ a b ( x − a ) ( x − c ) 2 ( x − b ) d x R_2(f)=\frac{f^{(4)}(\eta)}{24}\int_a^b(x-a)(x-c)^2(x-b)\,\mathrm{d}x R 2 ( f ) = 24 f ( 4 ) ( η ) ∫ a b ( x − a ) ( x − c ) 2 ( x − b ) d x
作换元 x = c + t h x=c+th x = c + t h ,则 x − a = h ( t + 1 ) x-a=h(t+1) x − a = h ( t + 1 ) ,x − b = h ( t − 1 ) x-b=h(t-1) x − b = h ( t − 1 ) ,d x = h d t \mathrm{d}x=h\,\mathrm{d}t d x = h d t ,积分区间 t ∈ [ − 1 , 1 ] t\in[-1,1] t ∈ [ − 1 , 1 ] :
∫ a b ( x − a ) ( x − c ) 2 ( x − b ) d x = h 5 ∫ − 1 1 ( t + 1 ) t 2 ( t − 1 ) d t = − 4 h 5 15 \int_a^b(x-a)(x-c)^2(x-b)\,\mathrm{d}x
=h^5\int_{-1}^1(t+1)t^2(t-1)\,\mathrm{d}t
=-\frac{4h^5}{15} ∫ a b ( x − a ) ( x − c ) 2 ( x − b ) d x = h 5 ∫ − 1 1 ( t + 1 ) t 2 ( t − 1 ) d t = − 15 4 h 5
代回可得:
R 2 ( f ) = f ( 4 ) ( η ) 24 ⋅ ( − 4 h 5 15 ) = − ( b − a ) 5 2880 f ( 4 ) ( η ) R_2(f)
=\frac{f^{(4)}(\eta)}{24}\cdot\left(-\frac{4h^5}{15}\right)
=-\frac{(b-a)^5}{2880}\,f^{(4)}(\eta) R 2 ( f ) = 24 f ( 4 ) ( η ) ⋅ ( − 15 4 h 5 ) = − 2880 ( b − a ) 5 f ( 4 ) ( η )
注 :Simpson 公式具有三次代数精度。
一般 Newton-Cotes 误差估计
对 n + 1 n+1 n + 1 个节点的 Newton-Cotes 公式,
当 n n n 为偶数且 f ∈ C n + 2 [ a , b ] f\in C^{n+2}[a,b] f ∈ C n + 2 [ a , b ] 时:
R n ( f ) = h n + 3 ( n + 2 ) ! f ( n + 2 ) ( η ) ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t R_n(f) = \frac{h^{n+3}}{(n+2)!}f^{(n+2)}(\eta)\int_0^n t^2(t-1)\cdots(t-n)\,\mathrm{d}t R n ( f ) = ( n + 2 )! h n + 3 f ( n + 2 ) ( η ) ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t
当 n n n 为奇数且 f ∈ C n + 1 [ a , b ] f\in C^{n+1}[a,b] f ∈ C n + 1 [ a , b ] 时:
R n ( f ) = h n + 2 ( n + 1 ) ! f ( n + 1 ) ( η ) ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t R_n(f) = \frac{h^{n+2}}{(n+1)!}f^{(n+1)}(\eta)\int_0^n t(t-1)\cdots(t-n)\,\mathrm{d}t R n ( f ) = ( n + 1 )! h n + 2 f ( n + 1 ) ( η ) ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t
其中 h = b − a n h=\dfrac{b-a}{n} h = n b − a ,a ≤ η ≤ b a\leq\eta\leq b a ≤ η ≤ b 。
证明 :
奇数时显然,下证偶数时。采用 Newton 型插值余项的积分:
R n ( f ) = ∫ a b [ f ( x ) − P n ( x ) ] d x = ∫ a b f [ x 0 , x 1 , … , x n , x ] ω ( x ) d x R_n(f)=\int_a^b \bigl[f(x)-P_n(x)\bigr]\,\mathrm{d}x=\int_a^b f[x_0,x_1,\dots,x_n,x]\,\omega(x)\,\mathrm{d}x R n ( f ) = ∫ a b [ f ( x ) − P n ( x ) ] d x = ∫ a b f [ x 0 , x 1 , … , x n , x ] ω ( x ) d x
其中 ω ( x ) = ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) \omega(x)=(x-x_0)(x-x_1)\cdots(x-x_n) ω ( x ) = ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) ,f [ ⋯ ] f[\cdots] f [ ⋯ ] 是 n + 1 n+1 n + 1 阶差商。
定义:
Ω ( x ) = ∫ a x ω ( t ) d t \Omega(x)=\int_a^x \omega(t)\,\mathrm{d}t Ω ( x ) = ∫ a x ω ( t ) d t
由于节点等距且 x 0 = a , x n = b x_0=a,\,x_n=b x 0 = a , x n = b ,显然 ω ( a ) = ω ( b ) = 0 \omega(a)=\omega(b)=0 ω ( a ) = ω ( b ) = 0 。
又因 n n n 为偶数,由对称性可证 ∫ a b ω ( t ) d t = 0 \int_a^b\omega(t)\,\mathrm{d}t=0 ∫ a b ω ( t ) d t = 0 ,故:
Ω ( a ) = 0 , Ω ( b ) = 0 \Omega(a)=0,\qquad \Omega(b)=0 Ω ( a ) = 0 , Ω ( b ) = 0
且 Ω ( x ) \Omega(x) Ω ( x ) 在 [ a , b ] [a,b] [ a , b ] 上不变号。
对 R n ( f ) R_n(f) R n ( f ) 分部积分(注意 Ω ( a ) = Ω ( b ) = 0 \Omega(a)=\Omega(b)=0 Ω ( a ) = Ω ( b ) = 0 ,边界项消失):
R n ( f ) = ∫ a b f [ x 0 , … , x n , x ] ω ( x ) d x = [ f [ x 0 , … , x n , x ] Ω ( x ) ] a b − ∫ a b d d x f [ x 0 , … , x n , x ] Ω ( x ) d x = − ∫ a b f [ x 0 , … , x n , x , x ] Ω ( x ) d x \begin{aligned}
R_n(f)&=\int_a^b f[x_0,\dots,x_n,x]\,\omega(x)\,\mathrm{d}x\\
&=\Bigl[f[x_0,\dots,x_n,x]\,\Omega(x)\Bigr]_a^b-\int_a^b \frac{\mathrm{d}}{\mathrm{d}x}f[x_0,\dots,x_n,x]\,\Omega(x)\,\mathrm{d}x\\
&=-\int_a^b f[x_0,\dots,x_n,x,x]\,\Omega(x)\,\mathrm{d}x
\end{aligned} R n ( f ) = ∫ a b f [ x 0 , … , x n , x ] ω ( x ) d x = [ f [ x 0 , … , x n , x ] Ω ( x ) ] a b − ∫ a b d x d f [ x 0 , … , x n , x ] Ω ( x ) d x = − ∫ a b f [ x 0 , … , x n , x , x ] Ω ( x ) d x
其中用到了差商对活跃节点的求导公式:
d d x f [ x 0 , … , x n , x ] = f [ x 0 , … , x n , x , x ] \frac{\mathrm{d}}{\mathrm{d}x}f[x_0,\dots,x_n,x]=f[x_0,\dots,x_n,x,x] d x d f [ x 0 , … , x n , x ] = f [ x 0 , … , x n , x , x ]
而 n + 2 n+2 n + 2 阶差商等于导数:
f [ x 0 , … , x n , x , x ] = f ( n + 2 ) ( ξ ( x ) ) ( n + 2 ) ! f[x_0,\dots,x_n,x,x]=\frac{f^{(n+2)}(\xi(x))}{(n+2)!} f [ x 0 , … , x n , x , x ] = ( n + 2 )! f ( n + 2 ) ( ξ ( x ))
又因为 Ω ( x ) \Omega(x) Ω ( x ) 在 [ a , b ] [a,b] [ a , b ] 上不变号,且 f ( n + 2 ) ( ξ ( x ) ) f^{(n+2)}(\xi(x)) f ( n + 2 ) ( ξ ( x )) 连续(f ∈ C n + 2 f\in C^{n+2} f ∈ C n + 2 ),可用积分中值定理提出:
R n ( f ) = − f ( n + 2 ) ( η ) ( n + 2 ) ! ∫ a b Ω ( x ) d x , a ≤ η ≤ b R_n(f)=-\frac{f^{(n+2)}(\eta)}{(n+2)!}\int_a^b \Omega(x)\,\mathrm{d}x,\qquad a\leq\eta\leq b R n ( f ) = − ( n + 2 )! f ( n + 2 ) ( η ) ∫ a b Ω ( x ) d x , a ≤ η ≤ b
对 ∫ a b Ω ( x ) d x \int_a^b\Omega(x)\,\mathrm{d}x ∫ a b Ω ( x ) d x 再做一次分部积分:
∫ a b Ω ( x ) d x = [ x Ω ( x ) ] a b − ∫ a b x ω ( x ) d x = − ∫ a b x ω ( x ) d x \int_a^b\Omega(x)\,\mathrm{d}x=\Bigl[x\Omega(x)\Bigr]_a^b-\int_a^b x\,\omega(x)\,\mathrm{d}x=-\int_a^b x\,\omega(x)\,\mathrm{d}x ∫ a b Ω ( x ) d x = [ x Ω ( x ) ] a b − ∫ a b x ω ( x ) d x = − ∫ a b x ω ( x ) d x
令 x = a + t h x=a+th x = a + t h ,则 x ω ( x ) d x = ( a + t h ) ⋅ h n + 1 t ( t − 1 ) ⋯ ( t − n ) ⋅ h d t x\omega(x)\,\mathrm{d}x=(a+th)\cdot h^{n+1}t(t-1)\cdots(t-n)\cdot h\,\mathrm{d}t x ω ( x ) d x = ( a + t h ) ⋅ h n + 1 t ( t − 1 ) ⋯ ( t − n ) ⋅ h d t 。
由于 ∫ a b ω ( x ) d x = 0 \int_a^b\omega(x)\,\mathrm{d}x=0 ∫ a b ω ( x ) d x = 0 ,即 ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t = 0 \int_0^n t(t-1)\cdots(t-n)\,\mathrm{d}t=0 ∫ 0 n t ( t − 1 ) ⋯ ( t − n ) d t = 0 ,故:
∫ a b x ω ( x ) d x = h n + 3 ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t \int_a^b x\,\omega(x)\,\mathrm{d}x=h^{n+3}\int_0^n t^2(t-1)\cdots(t-n)\,\mathrm{d}t ∫ a b x ω ( x ) d x = h n + 3 ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t
R n ( f ) = h n + 3 ( n + 2 ) ! f ( n + 2 ) ( η ) ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t R_n(f)=\frac{h^{n+3}}{(n+2)!}\,f^{(n+2)}(\eta)\int_0^n t^2(t-1)\cdots(t-n)\,\mathrm{d}t R n ( f ) = ( n + 2 )! h n + 3 f ( n + 2 ) ( η ) ∫ 0 n t 2 ( t − 1 ) ⋯ ( t − n ) d t
这正是偶数情形的 Newton-Cotes 误差公式。
注 :误差阶数反映 n n n 为偶数时具有精度优势,这与代数精度的结论一致。
单区间误差的奇次幂结构
对 n + 1 n+1 n + 1 个节点的 Newton-Cotes 公式,设区间长度 H = b − a H=b-a H = b − a ,步长 h = H / n h=H/n h = H / n ,节点 x j = a + j h x_j=a+jh x j = a + j h (j = 0 , 1 , … , n j=0,1,\dots,n j = 0 , 1 , … , n )。其误差
E n ( H ) = ∫ a b f ( x ) d x − ∑ j = 0 n w j f ( x j ) E_n(H)=\int_a^b f(x)\,\mathrm{d}x-\sum_{j=0}^n w_j f(x_j) E n ( H ) = ∫ a b f ( x ) d x − j = 0 ∑ n w j f ( x j )
作为 H H H 的函数,其 Taylor 展开仅含 H H H 的奇次幂:
E n ( H ) = { c n + 2 H n + 2 + c n + 4 H n + 4 + ⋯ , 2 ∤ n c n + 3 H n + 3 + c n + 5 H n + 5 + ⋯ , 2 ∣ n E_n(H)=
\begin{cases}
c_{n+2}H^{n+2}+c_{n+4}H^{n+4}+\cdots,& 2 \nmid n \\[6pt]
c_{n+3}H^{n+3}+c_{n+5}H^{n+5}+\cdots,& 2 \mid n
\end{cases} E n ( H ) = ⎩ ⎨ ⎧ c n + 2 H n + 2 + c n + 4 H n + 4 + ⋯ , c n + 3 H n + 3 + c n + 5 H n + 5 + ⋯ , 2 ∤ n 2 ∣ n
证明 :
将区间平移至关于原点对称。令 x = m + t x=m+t x = m + t ,其中 m = a + b 2 m=\dfrac{a+b}{2} m = 2 a + b ,t ∈ [ − H / 2 , H / 2 ] t\in[-H/2,H/2] t ∈ [ − H /2 , H /2 ] ,节点变为 t j = − H 2 + j h t_j=-\dfrac{H}{2}+jh t j = − 2 H + j h (j = 0 , 1 , … , n j=0,1,\dots,n j = 0 , 1 , … , n )。
由于节点等距且 n + 1 n+1 n + 1 个节点的 Newton-Cotes 权重满足 w j = w n − j w_j=w_{n-j} w j = w n − j ,从而该求积公式对任意关于 t t t 的奇函数精确成立:
∫ − H / 2 H / 2 g ( t ) d t = 0 , ∑ j = 0 n w j g ( t j ) = 0 \int_{-H/2}^{H/2}g(t)\,\mathrm{d}t=0,\qquad \sum_{j=0}^n w_j g(t_j)=0 ∫ − H /2 H /2 g ( t ) d t = 0 , j = 0 ∑ n w j g ( t j ) = 0
将 f f f 在 t = 0 t=0 t = 0 (即区间中点)处 Taylor 展开:
f ( m + t ) = ∑ k = 0 ∞ f ( k ) ( m ) k ! t k f(m+t)=\sum_{k=0}^{\infty}\frac{f^{(k)}(m)}{k!}t^k f ( m + t ) = k = 0 ∑ ∞ k ! f ( k ) ( m ) t k
误差具有线性性,故
E n ( H ) = ∑ k = 0 ∞ f ( k ) ( m ) k ! [ ∫ − H / 2 H / 2 t k d t − ∑ j = 0 n w j t j k ] ⏟ e k ( H ) E_n(H)=\sum_{k=0}^{\infty}\frac{f^{(k)}(m)}{k!}\underbrace{\left[\int_{-H/2}^{H/2}t^k\,\mathrm{d}t-\sum_{j=0}^n w_j t_j^k\right]}_{e_k(H)} E n ( H ) = k = 0 ∑ ∞ k ! f ( k ) ( m ) e k ( H ) [ ∫ − H /2 H /2 t k d t − j = 0 ∑ n w j t j k ]
当 k k k 为奇数时,t k t^k t k 是奇函数,由 Newton-Cotes 的对称性,积分与求积值均为 0 0 0 ,故 e k ( H ) = 0 e_k(H)=0 e k ( H ) = 0 。
当 k k k 为偶数时,e k ( H ) e_k(H) e k ( H ) 一般非零。作变量替换 t = H s t=Hs t = H s ,则
e k ( H ) = H k + 1 [ ∫ − 1 / 2 1 / 2 s k d s − ∑ j = 0 n w j s j k ] = C k ⋅ H k + 1 , e_k(H)=H^{k+1}\left[\int_{-1/2}^{1/2}s^k\,\mathrm{d}s-\sum_{j=0}^n w_j s_j^k\right]=C_k\cdot H^{k+1}, e k ( H ) = H k + 1 [ ∫ − 1/2 1/2 s k d s − j = 0 ∑ n w j s j k ] = C k ⋅ H k + 1 ,
其中 C k C_k C k 与 H H H 无关。
因此求和只遍历偶数 k k k :
E n ( H ) = ∑ 2 ∣ k f ( k ) ( m ) k ! C k H k + 1 E_n(H)=\sum_{2 \mid k}\frac{f^{(k)}(m)}{k!}\,C_k\,H^{k+1} E n ( H ) = 2 ∣ k ∑ k ! f ( k ) ( m ) C k H k + 1
注 :这与代数精度的结论一致:
n n n 为奇数时,k = 0 , 1 , … , n k=0,1,\dots,n k = 0 , 1 , … , n 均精确,首项取 k = n + 1 k=n+1 k = n + 1 (偶数),对应 H n + 2 H^{n+2} H n + 2 ;
n n n 为偶数时,k = 0 , 1 , … , n + 1 k=0,1,\dots,n+1 k = 0 , 1 , … , n + 1 均精确,首项取 k = n + 2 k=n+2 k = n + 2 (偶数),对应 H n + 3 H^{n+3} H n + 3 。
复杂度与稳定性分析
指标 梯形公式 Simpson 公式 Newton-Cotes (n n n 阶) 函数求值次数 2 3 n + 1 n+1 n + 1 代数精度 1 3 n n n (n n n 奇)/ n + 1 n+1 n + 1 (n n n 偶)误差阶 O ( h 3 ) O(h^3) O ( h 3 ) O ( h 5 ) O(h^5) O ( h 5 ) O ( h n + 2 ) O(h^{n+2}) O ( h n + 2 ) (奇)/ O ( h n + 3 ) O(h^{n+3}) O ( h n + 3 ) (偶)稳定性 高(系数同号) 高(系数同号) n ≥ 8 n\geq 8 n ≥ 8 时系数变号,不稳定
注 :
实际计算中,步长 h h h 的选择需在截断误差(希望 h h h 小)与舍入误差(希望 h h h 不太小)之间权衡;
数值微分的中心差商在 h ≈ ϵ m a c h 3 h\approx\sqrt[3]{\epsilon_{\mathrm{mach}}} h ≈ 3 ϵ mach 时达到最优,数值积分的复化公式在 h h h 足够小时呈现单调收敛。