logo

멀티스텝 메소드 📂수치해석

멀티스텝 메소드

정의 1

$D \subset \mathbb{R}^2$ 에서 정의된 연속함수 $f$ 에 대해 초기값 문제 $\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \end{cases}$ 가 주어져 있다. 구간 $(a,b)$ 을 $a \le x_{0} < x_{1} < \cdots < x_{n} < \cdots x_{N} \le b$ 와 같은 노드 포인트들로 쪼갰다고 하자. 특히 충분히 작은 $h > 0$ 에 대해 $x_{j} = x_{0} + j h$ 이라고 하면 초기값과 $0 \le p \le m$ 에 대해 $a_{p} \ne 0$ 혹은 $b_{p} \ne 0$ 이면 다음을 $(p+1)$-스텝 메소드라고 한다. $$ y_{n+1} = \sum_{j=0}^{p} a_{j} y_{n-j} + h \sum_{j = -1}^{p} b_{j} f (x_{n-j} , y_{n-j} ) $$

설명

물론 필요한만큼 큰 $q \ge 1$ 과 $D \subset \mathbb{R}^2$ 에서 정의된 $f \in C^{q}(D)$ 로 생각해도 무방하다. 이러한 일반적인 폼에서 특히 $p=0$ 이고 $a_{0} = 1 , b_{0} = 1 , b_{-1} = 0$ 이라고 하면 오일러 메소드가 된다.

멀티스텝 메소드는 더 많은 데이터의 정보를 사용하는만큼 보통은 원스텝 메소드에 비해 정확도가 높다. 초기값 문제 $\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \end{cases}$ 에 대해 절삭 오차truncated error를 $$ T_{n} (Y) := Y_{n+1} - \sum_{j=0}^{p} a_{j} Y_{n-j} + h \sum_{j = -1}^{p} b_{j} Y’_{n-j} $$ 라고 하자. 이에 대해 $\displaystyle \tau_{n} (Y) := {{1} \over {h}} T_{n} (Y) $ 라고 쓰는데, $\displaystyle \lim_{h \to 0} \max_{x_{p} \le x_{n} \le b} | \tau_{n} (Y) | = 0$ 를 만족하면 메소드가 일관성consistency condition을 갖는다고 한다. 수식으로 적으니까 복잡해 보이지만, 쉽게 말하면 $h$ 가 작아지는 것보다 절삭 오차가 작아지는 속도가 빠른 것을 말한다. 여기서 $$ \tau (h) : = \max_{x_{p} \le x_{n} \le b} | \tau_{n} (Y) | = O (h^m) $$ 를 만족하는 $m$ 중 가장 큰 수를 메소드의 수렴차수order of Convergence라 한다.

특히 $b_{-1} = 0$ 이면 $y_{n+1}$ 은 좌변에서만 나타나므로 익스플리시트 메소드explicit method라 부른다. 만약 $b_{-1} \ne 0$ 이면 $y_{n+1}$ 이 양변 모두에 나타나므로 임플리시트 메소드implicit method라 부른다. 계산할 때 편리한 건 익스플릭시트 메소드고, 일반적으로 알려진 임플릭시트 메소드는 퍼포먼스가 좋지만 추가적인 계산이 필요하다.


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