跳转至

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 公式体现了插值求积的一般框架,但高阶公式需要谨慎使用。