理查森外推法( Richardson extrapolation)是一种提高某些数值过程精度的简单方法,在数值方法中广泛应用。
对于
f^{\prime}(x) = \frac{f(x+h)-f(x-h)}{2h}-\frac{h^2}{6}f^{\prime\prime\prime}(x)+\cdots \qquad(1)
f^{\prime\prime}(x) = \frac{f(x+h)-2f(x)+f(x-h)}{h^2}-\frac{h^2}{12}f^{(4)}(x)+\cdots \qquad(2)
等公式可将其抽象概括为
G = g(h) + E(h) \qquad(3)
其中
G为待求数值,结果依赖于参数
h。
g(h)表示
G的近似值,
E(h)是误差。
E(h)=ch^p ,现在令
h = h_1开始计算
GG = g(h_1) + ch_1^p \qquad(4)
令
h = h_2G = g(h_2) + ch_2^p \qquad(5)
由(4)(5)消去
cG= \frac{(h_1/h_2)^pg(h_2)-g(h_1)}{(h_1/h_2)^p-1} \qquad(6)
(6)就是理查森外推公式,通常做法是
h_2=h_1/2G= \frac{2^pg(h_1/2)-g(h_1)}{2^p-1} \qquad(7)
[算例1] 根据下表用理查森外推公式来求
f^{\prime}(0)h=0.1和h=0.2分别用二阶向前差分公式求
f^{\prime}(0)的近似值
g(0.1)和g(0.2)g(0.1)= \frac{−3f(0) + 4f(0.1) − f(0.2)}{2(0.1)}= 0.8918
g(0.2)= \frac{−3f(0) + 4f(0.2) − f(0.4)}{2(0.2)}= 0.9675
有限差分法的误差
E(h)=c_1h^2 +c_2h^4 +c_3h^6 + \cdots ,用理查森外推法消除产生误差的主项
c_1h^2f^{\prime}(0) \approx G=\frac{2^2g(0.1)-g(0.2)}{2^2-1} = 0.9927
结果的误差是
O(h^4)。
[算例2] 用理查森外推公式来求
e^{-x}在
x=1处的二阶导数。取不同的h值,用中心差分法计算如下
精度为
10^{-6}时,
g(0.64) = 0.380610 ,g(0.32) = 0.371035(g是近似值)。
取p = 2,h_1 = 0.64 可得到
G=\frac{2^2g(0.32)-g(0.64)}{2^2-1} = 0.367843
它与表中的精度为
10^{-8}时计算所获得的最佳结果一样。此处参见前文
数值微分|有限差分法的误差分析