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


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


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


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