logo

패러사이틱 솔루션 📂수치해석

패러사이틱 솔루션

정의 1

패러사이틱 솔루션parasitic solution 이란 직역했을 때 ‘기생하는 해’라는 뜻으로 메소드가 진행될수록 크기가 커지며 부호가 바뀌는 등의 항을 말한다. an=2n+(2)na_{n} = 2^{-n} + (-2)^{n} 이라는 수열이 (2)n (-2)^{n} 때문에 수렴하지 않는 걸 상상하면 좋다. 이런 항에다 ‘패러사이틱’이라는 표현을 쓰는것은 수렴을 방해한다는 점에서 꽤 직관적이고 좋은 명명이라 할 수 있겠다.

예시: 달키스트 문제

예로써 {y=λyy(0)=1\begin{cases} y ' = \lambda y \\ y(0) = 1 \end{cases} 를 생각해보면 그 해는 Y=eλxY = e^{ \lambda x} 로 정확하게 구해진다. 그러나 우리가 필요로 하는 게 구체적인 값이라면 수치해석적인 방법을 고려할 수밖에 없다. 계산을 위해 미드포인트 메소드를 사용해보도록 하자.

미드포인트 메소드: DR2D \subset \mathbb{R}^2 에서 정의된 연속함수 ff 에 대해 초기값 문제 {y=f(x,y)(y(x0),y(x1))=(Y0,Y1)\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , y (x_{1} )) = (Y_{0} ,Y_{1} ) \end{cases} 가 주어져 있다. 구간 (a,b)(a,b)ax0<x1<<xn<xNba \le x_{0} < x_{1} < \cdots < x_{n} < \cdots x_{N} \le b 와 같은 노드 포인트들로 쪼갰다고 하자. 특히 충분히 작은 h>0h > 0 에 대해 xj=x0+jhx_{j} = x_{0} + j h 이라고 하면 초기값 y0=Y0y_{0} = Y_{0} 에 대해 yn+1=yn1+2hf(xn,yn) y_{n+1} = y_{n-1} + 2 h f ( x_{n} , y_{n} )

미드포인트 메소드를 문제에 적용시키면 다음과 같다. yn+1=yn1+2hλyn y_{n+1} = y_{n-1} + 2h \lambda y_{n} 특정 방정식을 통해 해를 구하는 2계 선형 동차 미분방정식의 풀이법으로 접근해보자. yn=rny_{n} = r^{n} 이라고 가정해보면 rn+1=rn1+2hλrn r^{n+1} = r^{n-1} + 2 h \lambda r^{n} 양변에서 rn1r^{n-1} 을 소거하고 2차 방정식으로 정리하면 r22hλr1=0 r^2 - 2h \lambda r - 1 = 0 근의 공식을 통해 풀면 r0=hλ+1+h2λ2 r_{0} = h \lambda + \sqrt{ 1 + h^2 \lambda^2 }

r1=hλ1+h2λ2 r_{1} = h \lambda - \sqrt{ 1 + h^2 \lambda^2 } 일반해는 어떤 β0,β1\beta_{0} , \beta_{1} 에 대해 yn=β0r0n+β1r1n y_{n} = \beta_{0} r_{0}^{n} + \beta_{1} r_{1}^{n} n=0,1n=0,1 을 대입하면 {y0=β0+β1y1=β0r0+β1r1 \begin{cases} y_{0} = \beta_{0} + \beta_{1} \\ y_{1} = \beta_{0} r_{0} + \beta_{1} r_{1} \end{cases} 한편 우리는 이미 정확한 해로써 Y=eλxY = e^{ \lambda x} 을 알고 있기 때문에 {y0=1=β0+β1y1=eλh=β0r0+β1r1 \begin{cases} y_{0} = 1 = \beta_{0} + \beta_{1} \\ y_{1} = e^{ \lambda h } = \beta_{0} r_{0} + \beta_{1} r_{1} \end{cases} 을 구해낼 수 있다. 이를 β0\beta_{0}β1\beta_{1} 에 대해 풀면 {β0=eλhr121+h2λ2β1=r0eλh21+h2λ2 \begin{cases} \displaystyle \beta_{0} = {{e^{ \lambda h} - r_{1} } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ \displaystyle \beta_{1} = {{r_{0} - e^{ \lambda h} } \over {2 \sqrt{ 1+ h^2 \lambda^2 } } } \end{cases} eλhe^{\lambda h}매클로린 전개하면 eλh=1+λh+λ2h22+O(h3λ3)\displaystyle e^{\lambda h} = 1 + \lambda h + {{\lambda^2 h^2} \over {2}} + O (h^3 \lambda^3) 이므로 β0=eλhr121+h2λ2=1+λh+λ2h22+O(h3λ3)hλ+1+h2λ221+h2λ2=1+λ2h221+h2λ2+21+h2λ2+O(h3λ3)21+h2λ2=1+1+λ2h221+h2λ2+O(h3λ3)21+h2λ2 \begin{align*} \displaystyle \beta_{0} =& {{e^{ \lambda h} - r_{1} } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& {{1 + \lambda h + {{\lambda^2 h^2} \over {2}} + O (h^3 \lambda^3 ) - h \lambda + \sqrt{ 1 + h^2 \lambda^2 } } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& {{1 + {{\lambda^2 h^2} \over {2}} - \sqrt{ 1 + h^2 \lambda^2 } + 2 \sqrt{ 1 + h^2 \lambda^2 } + O (h^3 \lambda^3 ) } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& 1 + {{1 + {{\lambda^2 h^2} \over {2}} - \sqrt{ 1 + h^2 \lambda^2 } + O (h^3 \lambda^3 ) } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \end{align*} 1+h2λ2\sqrt{ 1+ h^2 \lambda^2 } 를 매클로린 전개하면 1+h2λ2=1+λ2h22+O(h4λ4)\displaystyle \sqrt{ 1+ h^2 \lambda^2 } = 1 + {{\lambda^2 h^2} \over {2}} + O (h^4 \lambda^4) 이므로 β0=1+1+λ2h221+h2λ2+O(h3λ3)21+h2λ2=1+1+λ2h22+O(h3λ3)1λ2h22+O(h4λ4)21+h2λ2 \begin{align*} \displaystyle \beta_{0} =& 1 + {{1 + {{\lambda^2 h^2} \over {2}} - \sqrt{ 1 + h^2 \lambda^2 } +O (h^3 \lambda^3 ) } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& 1 + {{1 + {{\lambda^2 h^2} \over {2}} + O (h^3 \lambda^3 ) - 1 - {{\lambda^2 h^2} \over {2}} + O (h^4 \lambda^4) } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \end{align*} β1\beta_{1} 에 대해서도 마찬가지로 β1=r0eλh21+h2λ2=hλ+1+h2λ2ehλ21+h2λ2=hλ+1+λ2h22+O(h4λ4)1hλλ2h22O(h3λ3)21+h2λ2 \begin{align*} \beta_{1} =& {{ r_{0} - e^{ \lambda h} } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& { { h \lambda + \sqrt{ 1+ h^2 \lambda^2 } - e^{h \lambda } } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \\ =& {{ h \lambda + 1 + {{\lambda^2 h^2} \over {2}} + O (h^4 \lambda^4 ) - 1 - h \lambda - {{\lambda^2 h^2} \over {2}} - O (h^3 \lambda^3) } \over {2 \sqrt{ 1+ h^2 \lambda^2 } }} \end{align*}

빅오 노테이션이 분모에 있을 때 분자로 올리는 법: a0a \ne 0p>0p>0, nNn \in \mathbb{N} 에 대해 1a+O(hn)p=1ap+O(hn)\displaystyle {{1} \over { \sqrt[p]{a + O ( h^n ) } }} = {{1} \over { \sqrt[p]{a } }}+ O(h^n)

정리하면 β0=1+O(h3λ3)β1=O(h3λ3) \begin{align*} \beta_{0} =& 1+ O (h^{3} \lambda^{3} ) \\ \beta_{1} =& O (h^{3} \lambda^{3} ) \end{align*} 를 얻는다. 즉 h0h \to 0 일 때 β01\beta_{0} \to 1 이고 β10\beta_{1} \to 0 이므로 yn=β0r0n+β1r1nr0n y_{n} = \beta_{0} r_{0}^{n} + \beta_{1} r_{1}^{n} \to r_{0}^{n} 이제 문제는 h>0h>0 가 정해져 있을 때 nn 이 커질 때 이 일반해가 어떻게 되느냐다. 만약 λ>0\lambda > 0 라면 고민할 것도 없이 r0>r1>0r_{0} > | r_{1} | > 0 이므로 β0r0b\beta_{0} r_{0}^{b}β1r1n\beta_{1} r_{1}^{n} 보다 훨씬 빨리 커진다. 하지만 λ<0\lambda <0 이면 이야기가 다른데, 만약 0<r0<10 < r_{0} < 1 이고 r1<1r_{1} < -1 이라면 β1r1n\beta_{1} r_{1}^{n}nn 이 증가할 때마다 부호를 바꾸면서 그 절댓값은 β0r0n\beta_{0} r_{0}^{n} 를 압도하게 된다.

이 때 우리는 바로 β1r1n\beta_{1} r_{1}^{n}패러사이틱 솔루션이라고 부르며, 이러한 위험 때문에 미드포인트 메소드가 약한 안정성weak Stability을 가진다고 말한다. 따라서 적어도 f(x,Y(x))y\displaystyle { {\partial f(x, Y(x)) } \over {\partial y}} 의 부호가 음수일 땐 이런 문제가 있지 않은지 수식적인 확인이 반드시 필요하다.

20181009\_124502.png

예로써 {y=xy2y(0)=0\begin{cases} y ' = x - y^2 \\ y(0) = 0 \end{cases} 와 같은 초기값 문제를 미드포인트 메소드로 푼 결과를 보면 처음에는 잘 가는 듯하다가, 셋째줄부터는 솔루션이 갑자기 요동치기 시작하는 것을 확인할 수 있다.

이것과 거의 같은 방법으로 밀른 메소드milne's method

yn+1=yn1+h3[f(xn1,yn1)+f(xn,yn)]+f(xn+1,yn+1) y_{n+1} = y_{n-1} + {{h} \over {3}} [ f(x_{n-1} , y_{n-1}) + f(x_{n} , y_{n})] + f(x_{n+1} , y_{n+1}) 역시 약한 안정성을 가짐을 보일 수 있다. 이 때 즐겨 쓰는 {y=λyy(0)=1\begin{cases} y ' = \lambda y \\ y(0) = 1 \end{cases} 와 같은 문제를 달키스트 문제dahlquist Problem라 한다.


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