# 数值微分

# 采用 Taylor 估计

采用定义是最基本的数值微分方法,即计算

f(x0+h)−f(x0)h\frac{f\left(x_{0}+h\right)-f\left(x_{0}\right)}{h}

根据 Taylor 公式可以简单估计其误差范围,即 f′′(ξ(x))f''(\xi(x)) 的范围。

因此,我们得到了

  1. 向前差分公式 (forward-difference formula):

f′(x0)=f(x0+h)−f(x0)h−h2f′′(ξ)f'\left(x_{0}\right) = \frac{f\left(x_{0}+h\right)-f\left(x_{0}\right)}{h} - \frac{h}{2}f''(\xi)

  1. 向后差分公式 (backward-difference formula):

f′(x0)=f(x0)−f(x0−h)h+h2f′′(ξ)f^{\prime}\left(x_{0}\right) = \frac{f\left(x_{0}\right)-f\left(x_{0}-h\right)}{h} + \frac{h}{2}f''(\xi)

  1. 中心差分公式 (central-difference formula):

f′(x0)=f(x0+h)−f(x0−h)2h−h26f′′′(ξ)f^{\prime}\left(x_{0}\right) = \frac{f\left(x_{0}+h\right)-f\left(x_{0}-h\right)}{2h} - \frac{h^2}{6}f'''(\xi)

# 采用 Lagrange 插值公式估计

注意,由于 Lagrange 公式中的余项求导难以估计,因此选择在插值点求导进行估计。

在区间 II 内有 n+1n+1 个不同的点,因此有 n+1 点公式:

f′(xj)=∑k=0nf(xk)Lk′(xj)+f(n+1)(ξ(xj))(n+1)!∏k=0k≠jn(xj−xk)f'\left(x_{j}\right)=\sum_{k=0}^{n} f\left(x_{k}\right) L_{k}^{\prime}\left(x_{j}\right)+\frac{f^{(n+1)}\left(\xi\left(x_{j}\right)\right)}{(n+1) !} \prod_{\substack{k=0 \\ k \neq j}}^{n}\left(x_{j}-x_{k}\right)

其中,

f(n+1)(ξ(xj))(n+1)!∏k=0k≠jn(xj−xk)\frac{f^{(n+1)}\left(\xi\left(x_{j}\right)\right)}{(n+1) !} \prod_{\substack{k=0 \\ k \neq j}}^{n}\left(x_{j}-x_{k}\right)

是误差项。

在此基础上,有两个简化的公式版本,即三点公式和五点公式。
三点公式的原始版本为:

f′(xj)=f(x0)[2xj−x1−x2(x0−x1)(x0−x2)]+f(x1)[2xj−x0−x2(x1−x0)(x1−x2)]+f(x2)[2xj−x0−x1(x2−x0)(x2−x1)]+16f(3)(ξj)∏k=0k≠j2(xj−xk)f^{\prime}\left(x_{j}\right)= f\left(x_{0}\right)\left[\frac{2 x_{j}-x_{1}-x_{2}}{\left(x_{0}-x_{1}\right)\left(x_{0}-x_{2}\right)}\right]+f\left(x_{1}\right)\left[\frac{2 x_{j}-x_{0}-x_{2}}{\left(x_{1}-x_{0}\right)\left(x_{1}-x_{2}\right)}\right]+f\left(x_{2}\right)\left[\frac{2 x_{j}-x_{0}-x_{1}}{\left(x_{2}-x_{0}\right)\left(x_{2}-x_{1}\right)}\right]+\frac{1}{6} f^{(3)}\left(\xi_{j}\right) \prod_{\substack{k=0 \\ k \neq j}}^{2}\left(x_{j}-x_{k}\right)

在此基础上,令取样点具有相同的间隔,得到两个简化的公式:

f′(x0)=12h[−3f(x0)+4f(x0+h)−f(x0+2h)]+h23f(3)(ξ0)f^{\prime}\left(x_{0}\right)=\frac{1}{2 h}\left[-3 f\left(x_{0}\right)+4 f\left(x_{0}+h\right)-f\left(x_{0}+2 h\right)\right]+\frac{h^{2}}{3} f^{(3)}\left(\xi_{0}\right)

和

f′(x0)=12h[f(x0+h)−f(x0−h)]−h26f(3)(ξ1)f^{\prime}\left(x_{0}\right)=\frac{1}{2 h}\left[f\left(x_{0}+h\right)-f\left(x_{0}-h\right)\right]-\frac{h^{2}}{6} f^{(3)}\left(\xi_{1}\right)

其中,ξ0∈(x0,x0+2h)\xi_0 \in (x_0,x_0+2h),ξ1∈(x0−h,x0+h)\xi_1 \in (x_0-h,x_0+h).

它们的误差都是 O(h2)O(h^2) 的。

在五点公式中,值得记忆或使用的包括:

f′(x0)=112h(f(x0−2h)−8f(x0−h)+8f(x0+h)−f(x0+2h))+h430f(5)(ξ)f'(x_0) = \frac{1}{12h}(f(x_0-2h) - 8f(x_0-h) + 8f(x_0+h) - f(x_0+2h)) + \frac{h^4}{30}f^{(5)}(\xi)

二阶导数的中点公式

f′′(x0)=1h2(f(x0−h)−2f(x0)+f(x0+h))−h212f(4)(ξ)f''(x_0) = \frac{1}{h^2}(f(x_0-h) - 2f(x_0) + f(x_0+h)) - \frac{h^2}{12}f^{(4)}(\xi)

# Richardson 外推法

采用增加取样点换取高精度的方法。每增高11 倍的取样点数量,可以让精度提高22 阶。

# 数值积分

# 梯形公式

梯形公式如下:

∫abf(x)dx=h2(f(x0)+f(x1))−h312f′′(ξ)\int_a^b f(x) \mathrm dx = \frac{h}{2}(f(x_0) + f(x_1)) - \frac{h^3}{12}f''(\xi)

# Simpson 公式

∫x0x2f(x)dx=h3(f(x0)+4f(x0+h)+f(x1))−\int_{x_0}^{x_2}f(x) \mathrm dx = \frac{h}{3}(f(x_0) + 4f(x_0 + h) + f(x_1)) - \frac{}{}