logo

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

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

定理

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

説明

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

証明 1

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

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


パート 1.

Y(xn+1)Y(x_{n+1} )xn x_{n} に関して 33テイラー展開すると、ある xnξnxn+1x_{n} \le \xi_{n} \le x_{n+1} に対して Yn+1=Yn+hYn+h22Y’’(xn)+h36Y’’’(ξn) Y_{n+1} = Y_{n} + h Y’_{n} + {{h^2} \over {2}} Y’’ ( x_{n} ) + {{h^3} \over {6}} Y’’’ ( \xi_{n} ) ここからオイラー近似を用いて次の式を得る。 ϵn+1=ϵn+h(f(xn,Yn)f(xn,yn))+h22Y’’(xn)+h36Y’’’(ξ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)(1)f(xn,yn)f(x_{n} , y_{n})yny_{n} の関数と見てテイラー展開すると、ある ζnH{yn,Yn}\zeta_{n} \in \mathscr{H} \left\{ y_{n} , Y_{n} \right\} に対して f(xn,yn)=f(xn,Yn)+(ynYn)fy(xn,Yn)+12(ynYn)2fyy(xn,ζn) 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} ) よって ϵn+1=ϵn+h(ϵnfy(xn,Yn)12ϵ2fyy(xn,ζn))+h22Y’’(xn)+h36Y’’’(ξ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} ) 整理すると ϵn+1=[1+fy(xn,Yn)]ϵn+h22Y’’(xn)+h36Y’’’(ξn)12hfyy(xn,ζn)ϵn2 \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.

強いリプシッツ条件とオイラー法の誤差: maxx0xnbYxnyh(xn)ϵ(bx0)Kϵ0+[ϵ(bx0)K1K]τ(h)\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)

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


パート 3.

kn:=engnk_{n} : = e_{n} - g_{n} とすると kn+1=[1+hfh(xn,yn)]kn+O(h3) k_{n+1} = [ 1 + h f_{h} (x_{n} , y_{n} ) ] k_{n} + O(h^3) そして fyf_{y} が有界であるので、ある K0K \ge 0 に対して kn+1(1+hK)kn+O(h3) | k_{n+1} | \le ( 1 + h K ) | k_{n} | + O(h^3) 再帰的に解いてみると kn=O(h2)+O(h3)=O(h2) |k_{n}| = O(h^2) + O (h^3 ) = O(h^2) よって ϵn=gn+kn=[hD(xn)+O(h2)]+O(h2)=O(h2) \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. ↩︎