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} ) $$


Part 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} $$


Part 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 ) $$


Part 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. ↩︎