出处

要解的微分方程:$ y'(t)=f(t,y(t)) $ ,而 $ y(0) $ 是已知的

Euler's method: $$ \begin{cases} y_0=y(0)\\ y_{k+1}=y_k+hf(t_k,y_k) \end{cases} $$ 其中 $ t_k=kh $

要满足的条件:

  1. 存在常数 $ L $ 满足: 对于所有的 $ t,y_1,y_2 $ , $ \mid f(t,y_1)-f(t,y_2) \mid \leq L \mid y_1-y_2 \mid $。
  2. 存在常数 $ M $ 满足: 对于所有的 $ t $ , $ \mid y''(t) \mid = \mid f_t(t,y(t))+f_x(t,y(t))f(t,y(t)) \mid \le M $。

令 $ e_k=y_k-y(t_k) $ 表示 $ t_k $ 时的累积误差

$ y(t_k+h)=y(t_k)+y'(t_k)h+\frac{h^2}{2}y''(c_k) $ , 其中 $ t_k<c_k<t_{k+1} $

那么 $$ \begin{aligned} \mid e_{k+1} \mid &= \mid e_k+h[f(t_k,y_k)-f(t_k,y(t_k))]-\frac{h^2}{2}y''(c_k) \mid\\ &\le \mid e_k \mid + hL \mid e_k \mid + \frac{h^2}{2} \mid y''(c_k) \mid\\ &= (1+Lh) \mid e_k \mid + \frac{h^2}{2} \mid y''(c_k) \mid \end{aligned} $$

所以 $$ \begin{aligned} \mid e_k \mid &\le\sum_{j=0}^{k-1}(1+Lh)^{k-j-1}\frac{h^2}{2}\mid y''(c_j) \mid\\ &\le \frac{Mh^2}{2}\sum_{j=0}^{k-1}(1+Lh)^{j}\\ &=\frac{Mh^2}{2}\frac{(1+Lh)^k-1}{1+Lh-1}\\ &=\frac{Mh}{2L}[(1+Lh)^k-1]\le\frac{Mh}{2L}[e^{Lt_k}-1] \end{aligned} $$

综上, 累积误差是 $\mathcal{O}(he^{LT})$ 的

不过在实际情况中,这个式子经常过高估计Euler's method的误差