logo

初期値が少し異なるときのオイラーメソッドの誤差 📂数値解析

初期値が少し異なるときのオイラーメソッドの誤差

定理

$[x_{0} , b] \times \mathbb{R}$ で定義された $f$ に対する初期値問題 $\begin{cases} y ' = f(x,y) \\ y( x_{0} ) = Y_{0} \end{cases}$ の解 $Y(x)$ が $Y \in C^{3} [ x_{0} , b ]$ であり、$\displaystyle f_{y} (x,y) = {{ \partial f (x,y) } \over { \partial y }}$ と $\displaystyle f_{yy} (x,y) = {{ \partial^{2} f (x,y) } \over { \partial y^{2} }}$ が連続でありながら有界であるとしよう。初期値 $y_{h} (x_{0} )$ が $Y_{0} - y_{h} (x_{0} ) = \delta_{0} h + O ( h^2 )$ を満たすとする。そうすると、オイラー法によって発生する誤差は線形初期値問題 $$ \begin{cases} \displaystyle D’ (x) = f_{y} (x, Y(x) ) D(x) + {{1} \over {2}} Y’’ (x) \\ D ( x_{0} ) = \delta_{0} \end{cases} $$ の解 $D(x)$ に対して次を満たす。 $$ Y(x_{n} ) - y_{h} (x_{n} ) = D(x_{n} ) h + O (h^2) $$

説明

初期値 $y_{h} (x_{0} )$ が $Y_{0} - y_{h} (x_{0} ) = \delta_{0} h + O ( h^2 )$ を満たすということは、初期値が真の値と少し異なってもいいという意味だ。そして、その差から生じる誤差自体も $D$ を計算できれば、さらに減少させることができる。

証明 1

戦略:強いリプシッツ条件を仮定して$\epsilon_{n} = O ( h^2)$、$g_{n}$、$k_{n}$ を導出する。式の操りが多いため、頑固ともいえる証明法だが、数値解析ではよく見られる。美しい証明ではないかもしれないが、この方法自体に慣れておくのが良い。

$x_{i} : = x_{0} + ih$、特に$x_{n+1} - x_{n} = h$である。便宜上 $$ Y(x_{n} ) := Y_{n} $$ $$ y(x_{n}) := y_{n} $$ と書き、$n$番目の誤差 $\epsilon_{n}$ を次のように表す。 $$ \epsilon_{n} : = Y(x_{n}) - y (x_{n} ) $$


パート 1.

$Y(x_{n+1} )$ を $ x_{n}$ に関して $3$ 次テイラー展開すると、ある $x_{n} \le \xi_{n} \le x_{n+1}$ に対して $$ Y_{n+1} = Y_{n} + h Y’_{n} + {{h^2} \over {2}} Y’’ ( x_{n} ) + {{h^3} \over {6}} Y’’’ ( \xi_{n} ) $$ ここからオイラー近似を用いて次の式を得る。 $$ \begin{align} \displaystyle \epsilon_{n+1} = \epsilon_{n} + h ( f( x_{n} , Y_{n} ) - f (x_{n} , y_{n}) ) + {{h^2} \over {2}} Y’’ ( x_{n} ) + {{h^3} \over {6}} Y’’’ ( \xi_{n} ) \end{align} $$ $(1)$ の $f(x_{n} , y_{n})$ を $y_{n}$ の関数と見てテイラー展開すると、ある $\zeta_{n} \in \mathscr{H} \left\{ y_{n} , Y_{n} \right\} $ に対して $$ f(x_{n} , y_{n} ) = f(x_{n} , Y_{n} ) + (y_{n } - Y_{n}) f_{y} (x_{n} , Y_{n} ) + {{1} \over {2}} ( y_{n} - Y_{n} )^2 f_{yy} (x_{n} , \zeta_{n} ) $$ よって $$ \epsilon_{n+1} = \epsilon_{n} + h \left( \epsilon_{ n } f_{y} (x_{n} , Y_{n} ) - {{1} \over {2}} \epsilon^2 f_{yy} (x_{n} , \zeta_{n} ) \right) + {{h^2} \over {2}} Y’’ ( x_{n} ) + {{h^3} \over {6}} Y’’’ ( \xi_{n} ) $$ 整理すると $$ \epsilon_{n+1} = [ 1+ f_{y} (x_{n} , Y_{n} ) ] \epsilon_{n} + {{h^2} \over {2}} Y’’ ( x_{n} ) + {{h^3} \over {6}} Y’’’ ( \xi_{n} ) - {{1} \over {2}} h f_{yy} (x_{n} , \zeta_{n} ) \epsilon_{n}^{2} $$


パート 2.

強いリプシッツ条件とオイラー法の誤差: $$\max_{ x_{0 } \le x_{n} \le b } | Y_{x_{n}} - y_{h} (x_{n}) | \le \epsilon^{( b - x_{0} ) K} | \epsilon_{0} | + \left[ {{ \epsilon^{(b- x_{0}) K } - 1 } \over {K}} \right] \tau (h)$$

$\epsilon = O (h)$ であるから $$ {{h^3} \over {6}} Y’’’ ( \xi_{n} ) - {{1} \over {2}} h f_{yy} (x_{n} , \zeta_{n} ) \epsilon_{n}^{2} = O (h^{3} ) $$ そして、$O ( h^3)$ が十分に小さいと仮定されるので、$O ( h^3)$ が除去された $g_{n+1}$ を次のように定義できる。 $$ g_{n+1} : = [ 1+ f_{y} (x_{n} , Y_{n} ) ] g_{n} + {{h^2} \over {2}} Y’’ ( x_{n} ) $$ 仮定から$g_{0} = h \delta_{0}$ であるとすると、$g_{n} = h \delta_{n}$ と置いて両辺から $h$ を除去して $$ \delta_{n+1} : = \delta_{n} + h \left[ f_{y} (x_{n} , Y_{n} ) \delta_{n} + {{1} \over {2}} Y’’ ( x_{n} ) \right] $$ 少し整理すると $$ {{\delta_{n+1} - \delta_{n} } \over {h}} = f_{y} (x_{n} , Y_{n} ) \delta_{n} + {{1} \over {2}} Y’’ ( x_{n} ) $$ この式の形をよく見ると、線形初期値問題 $\begin{cases} \displaystyle D’ (x) = f_{y} (x, Y(x) ) D(x) + {{1} \over {2}} Y’’ (x) \\ D ( x_{0} ) = \delta_{0} \end{cases}$ に似ている。結局 $\delta_{n}$ は $D(x_{n} )$ のオイラー近似解、つまり $D(x_{n} ) - \delta_{n} = O (h) $ であることがわかる。今 $g_{n}$ の定義により、両辺に $h$ を掛けると $$ g_{n} = D ( x_{n} ) h + O ( h^2 ) $$


パート 3.

$k_{n} : = e_{n} - g_{n}$ とすると $$ k_{n+1} = [ 1 + h f_{h} (x_{n} , y_{n} ) ] k_{n} + O(h^3) $$ そして $f_{y}$ が有界であるので、ある $K \ge 0$ に対して $$ | k_{n+1} | \le ( 1 + h K ) | k_{n} | + O(h^3) $$ 再帰的に解いてみると $$ |k_{n}| = O(h^2) + O (h^3 ) = O(h^2) $$ よって $$ \begin{align*} \epsilon_{n} =& g_{n} + k_{n} \\ =& [ h D (x_{n} ) + O(h^2) ] + O(h^2) \\ =& O(h^2) \end{align*} $$


  1. Atkinson. (1989). An Introduction to Numerical Analysis(2nd Edition): p352~354. ↩︎