1 数值微分
1.1 差商公式
数值微分的目标是:已知函数 \(f(x)\) 在若干节点上的函数值,近似计算导数值。
由导数定义
\[
f'(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h}
\]
可以取有限但较小的 \(h\),得到常见差商公式。
向前差商
\[
f'(x)\approx \frac{f(x+h)-f(x)}{h}
\]
向后差商
\[
f'(x)\approx \frac{f(x)-f(x-h)}{h}
\]
中心差商
\[
f'(x)\approx \frac{f(x+h)-f(x-h)}{2h}
\]
1.2 截断误差
由 Taylor 展开
\[
f(x+h)=f(x)+hf'(x)+\frac{h^2}{2}f''(x)+\frac{h^3}{6}f'''(x)+\cdots
\]
可得向前差商误差:
\[
f'(x)-\frac{f(x+h)-f(x)}{h}
=-\frac{h}{2}f''(x+\theta_1h)=O(h)
\]
向后差商误差:
\[
f'(x)-\frac{f(x)-f(x-h)}{h}
=\frac{h}{2}f''(x-\theta_2h)=O(h)
\]
中心差商误差:
\[
f'(x)-\frac{f(x+h)-f(x-h)}{2h}
=-\frac{h^2}{12}\left[f'''(x+\theta_1h)+f'''(x-\theta_2h)\right]=O(h^2)
\]
其中 \(0<\theta_1,\theta_2<1\)。
中心差商为何更准
向前、向后差商的一阶误差项没有抵消,所以精度为 \(O(h)\);中心差商左右对称,偶然地消去了 \(O(h)\) 项,因此精度提升为 \(O(h^2)\)。
1.3 舍入误差与步长选择
步长 \(h\) 不是越小越好。截断误差随 \(h\) 减小而减小,但浮点舍入误差中含有除以 \(h\) 的放大效应。实际计算中误差通常先下降后上升。
实践经验
- 若 \(h\) 太大,Taylor 截断误差占主导。
- 若 \(h\) 太小,\(f(x+h)-f(x)\) 会发生严重相消,舍入误差占主导。
- 中心差商通常比单边差商更稳定,但同样需要合理步长。
1.4 插值型数值微分
设 \(f(x)\) 在节点 \(x_0,x_1,\cdots,x_n\) 处的函数值为 \(y_i=f(x_i)\),插值多项式为 \(\phi_n(x)\),可用
\[
f^{(k)}(x)\approx \phi_n^{(k)}(x),\qquad k=1,2,\cdots
\]
来近似导数。
插值余项为
\[
R_n(x)=f(x)-\phi_n(x)
=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x)
\]
因此微分误差可通过对余项求导估计。特别地,在节点上有
\[
R_n'(x_i)\approx
\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}'(x_i)
\]
这给出了插值求导公式的截断误差来源。
2 数值积分问题
2.1 求积公式
数值积分的目标是计算
\[
I=\int_a^b f(x)\,dx
\]
当原函数难以用初等函数表示时,采用有限个节点的函数值构造近似:
\[
I\approx I_n=\sum_{k=0}^n A_k f(x_k)
\]
其中 \(x_k\) 是求积节点,\(A_k\) 是求积系数。
2.2 代数精度
定义 2.1(代数精度)
若某求积公式对所有次数不超过 \(m\) 的多项式都精确成立,但对某个 \(m+1\) 次多项式不再精确,则称该求积公式具有 \(m\) 次代数精度。
例 2.1:含导数项的求积公式
设
\[
\int_0^1 f(x)\,dx\approx A_0f(0)+A_1f(1)+B_0f'(0)
\]
令 \(f(x)=1,x,x^2\) 分别精确成立:
\[
A_0+A_1=1
\]
\[
A_1+B_0=\frac12
\]
\[
A_1=\frac13
\]
得
\[
A_0=\frac23,\qquad A_1=\frac13,\qquad B_0=\frac16
\]
该公式不能精确计算 \(x^3\) 的积分,因此代数精度为 2。
3 插值型求积
3.1 基本思想
在 \([a,b]\) 上用插值多项式 \(P_n(x)\) 近似 \(f(x)\):
\[
P_n(x)=\sum_{i=0}^n f(x_i)l_i(x)
\]
其中 \(l_i(x)\) 是 Lagrange 基函数。于是
\[
\int_a^b f(x)\,dx
\approx
\int_a^b P_n(x)\,dx
=
\sum_{i=0}^n f(x_i)\int_a^b l_i(x)\,dx
\]
求积系数为
\[
A_i=\int_a^b l_i(x)\,dx
\]
误差为
\[
R(f)=\frac1{(n+1)!}\int_a^b f^{(n+1)}(\xi(x))\omega_{n+1}(x)\,dx
\]
3.2 梯形公式
取两个端点 \(a,b\) 作一次插值,得到
\[
\int_a^b f(x)\,dx
\approx
\frac{b-a}{2}[f(a)+f(b)]
\]
这称为 梯形求积公式。
3.3 Simpson 公式
取 \(a,\dfrac{a+b}{2},b\) 三个节点作二次插值,得到
\[
\int_a^b f(x)\,dx
\approx
\frac{b-a}{6}
\left[
f(a)+4f\left(\frac{a+b}{2}\right)+f(b)
\right]
\]
这称为 抛物线公式 或 Simpson 公式。
几何直觉
梯形公式用直线替代被积函数;Simpson 公式用抛物线替代被积函数,所以在光滑函数上通常明显更精确。
4 Newton-Cotes 求积公式
4.1 等距节点
Newton-Cotes 公式使用等距节点:
\[
x_i=a+ih,\qquad i=0,1,\cdots,n,\qquad h=\frac{b-a}{n}
\]
令 \(x=a+th,\ t\in[0,n]\),则求积公式可写为
\[
\int_a^b f(x)\,dx\approx
\sum_{i=0}^n A_i f(x_i)
\]
其中
\[
A_i=(b-a)C_i^{(n)}
\]
\(C_i^{(n)}\) 称为 Newton-Cotes 系数:
\[
C_i^{(n)}
=\frac{(-1)^{n-i}}{n\,i!(n-i)!}
\int_0^n
\frac{t(t-1)\cdots(t-n)}{t-i}\,dt
\]
4.2 常见闭型 Newton-Cotes 公式
\(n=1\):梯形公式
\[
\int_a^b f(x)\,dx
\approx
\frac{b-a}{2}[f(a)+f(b)]
\]
系数为
\[
\frac12,\quad \frac12
\]
\(n=2\):Simpson 公式
\[
\int_a^b f(x)\,dx
\approx
\frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right]
\]
系数为
\[
\frac16,\quad \frac23,\quad \frac16
\]
\(n=4\):Boole 公式
令 \(h=\dfrac{b-a}{4}\),节点为 \(a,a+h,a+2h,a+3h,b\),则
\[
\int_a^b f(x)\,dx
\approx
\frac{b-a}{90}
\left[
7f(a)+32f(a+h)+12f(a+2h)+32f(a+3h)+7f(b)
\right]
\]
例 4.1:积分比较
用梯形公式、Simpson 公式和 \(n=4\) Newton-Cotes 公式计算
\[
\int_{0.5}^{1}\sqrt{x}\,dx
\]
准确值为
\[
\int_{0.5}^{1}\sqrt{x}\,dx
=\frac23x^{3/2}\Big|_{0.5}^{1}
\]
课件中给出的相对误差为:
\[
\begin{array}{c|c}
\text{方法} & \text{相对误差}\\ \hline
\text{梯形公式} & 9.7\times10^{-3}\\
\text{Simpson 公式} & 7.0\times10^{-5}\\
\text{Newton-Cotes }(n=4) & 7.9\times10^{-7}
\end{array}
\]
5 误差分析
5.1 代数精度结论
定理 5.1
\(n+1\) 个节点的 Newton-Cotes 求积公式至少具有 \(n\) 次代数精度。
定理 5.2
当 \(n\) 为偶数时,\(n+1\) 个节点的 Newton-Cotes 求积公式至少具有 \(n+1\) 次代数精度。
这解释了 Simpson 公式的特殊性:它有 3 个节点,本应至少 2 次精确;由于 \(n=2\) 为偶数,实际至少具有 3 次代数精度。
5.2 梯形公式误差
若 \(f(x)\in C^2[a,b]\),则
\[
R_1(f)
\equiv
\int_a^b f(x)\,dx
-\frac{b-a}{2}[f(a)+f(b)]
=-\frac{(b-a)^3}{12}f''(\eta)
\]
其中 \(\eta\in[a,b]\)。
5.3 Simpson 公式误差
若 \(f(x)\in C^4[a,b]\),则
\[
R_2(f)
\equiv
\int_a^b f(x)\,dx
-\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)
\]
其中 \(\eta\in[a,b]\)。
5.4 一般 Newton-Cotes 误差
对 \(n+1\) 个节点的 Newton-Cotes 公式:
若 \(n\) 为偶数且 \(f(x)\in C^{n+2}[a,b]\),则
\[
R_n(f)
=
\frac{h^{n+3}}{(n+2)!}f^{(n+2)}(\eta)
\int_0^n t^2(t-1)\cdots(t-n)\,dt
\]
若 \(n\) 为奇数且 \(f(x)\in C^{n+1}[a,b]\),则
\[
R_n(f)
=
\frac{h^{n+2}}{(n+1)!}f^{(n+1)}(\eta)
\int_0^n t(t-1)\cdots(t-n)\,dt
\]
其中 \(\eta\in[a,b]\)。
高阶 Newton-Cotes 不一定更好
高阶闭型 Newton-Cotes 公式可能出现负权重和数值不稳定。实际计算中常优先使用复合梯形、复合 Simpson 或 Gauss 求积,而不是盲目提高单个 Newton-Cotes 公式的阶数。
6 小结
数值微分和数值积分都可以由插值思想统一理解:先用简单函数近似 \(f(x)\),再对近似函数求导或积分。
- 数值微分对数据噪声和舍入误差敏感,步长选择很重要。
- 数值积分通常比数值微分稳定,因为积分有平滑效应。
- 梯形公式简单稳健,Simpson 公式在光滑函数上精度高。
- Newton-Cotes 公式体现了插值求积的一般框架,但高阶公式需要谨慎使用。