# 数值微分

# 采用 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)hh2f(ξ)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(x0h)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(x0h)2hh26f(ξ)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=0kjn(xjxk)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=0kjn(xjxk)\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)[2xjx1x2(x0x1)(x0x2)]+f(x1)[2xjx0x2(x1x0)(x1x2)]+f(x2)[2xjx0x1(x2x0)(x2x1)]+16f(3)(ξj)k=0kj2(xjxk)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(x0h)]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(x0h,x0+h)\xi_1 \in (x_0-h,x_0+h).

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

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

f(x0)=112h(f(x02h)8f(x0h)+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(x0h)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{}{}