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

아담스-배쉬포스 메소드

계수 $\displaystyle \gamma_{j} := {{1} \over {j!} } \int_{0}^{1} s (s +1) \cdots (s+ j - 1) dx$ 에 대해서 $$ y_{n+1} = y_{n} + h \sum_{j=0}^{p} \gamma_{j} \Delta^{j} y_{n}' $$ 을 ($p$차) 아담스-배쉬포스 메소드adams-Bashforth method라 한다.

  1. $p=0$ : $$y_{n+1} = y_{n} + h y_{n} ' $$
  2. $p=1$ : $$y_{n+1} = y_{n} + {{h} \over {2}} ( 3 y_{n}' - y_{n-1}' )$$
  3. $p=2$ : $$y_{n+1} = y_{n} + {{h} \over {12}} ( 23 y_{n}' - 16 y_{n-1}' + 5 y_{n-2}' )$$
  4. $p=3$ : $$y_{n+1} = y_{n} + {{h} \over {24}} ( 55 y_{n}' - 59 y_{n-1}' + 37 y_{n-2}' - 9 y_{n-3}' )$$

아담스-몰튼 메소드

계수 $\displaystyle \delta_{j} := {{1} \over {j!} } \int_{0}^{1} (s - 1 ) s (s +1) \cdots (s+ j - 2) dx$ 에 대해서 $$ y_{n+1} = y_{n} + h \sum_{j=0}^{p} \delta_{j} \nabla^{j} y_{n+1}' $$ 을 ($p$차) 아담스-몰튼 메소드adams-Moulton method라 한다.

  1. $p=0$ : $$y_{n+1} = y_{n} + h y_{n} ' $$
  2. $p=1$ : $$y_{n+1} = y_{n} + {{h} \over {2}} ( y_{n+1}' + y_{n}' )$$
  3. $p=2$ : $$y_{n+1} = y_{n} + {{h} \over {12}} ( 5 y_{n+1}' + 8 y_{n}' - y_{n-1}' )$$
  4. $p=3$ : $$y_{n+1} = y_{n} + {{h} \over {24}} ( 9 y_{n+1}' + 19 y_{n}' -5 y_{n-1}' + y_{n-2}' )$$

설명

아담스 메소드는 멀티스텝 메소드로써, 스텝사이즈 $h$ 와 메소드의 차수를 바꿔가며 쓰는 프레딕터-커렉터 알고리즘에서 즐겨쓰인다. 예로써 $1$차 아담스-배쉬포스 메소드를 프레딕터로, $2$차 아담스-몰튼 메소드를 커렉터로 쓰는 알고리즘은 오일러 메소드를 프레딕터로, 사다리꼴 메소드를 커렉터로 쓰는 알고리즘 그 자체다.

일반적으로 아담스-몰튼 메소드는 아담스-배쉬포스 메소드에 비해 에러가 작을 뿐만 아니라 안정성도 좋은데, 메소드의 모양을 살펴보면 어렵지 않게 그 이유를 알 수 있다. 일단 아담스-배쉬포스 메소드는 익스플리시트 메소드고, 아담스-몰튼 메소드는 임플리시트 메소드기 때문이다. ODE를 풀어주는 프레딕터-커렉터 알고리즘은 이런 아담스 메소드들을 적절하게 섞어서 사용한다.


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