logo

아담스 메소드 📂수치해석

아담스 메소드

정의 1

멀티스텝 메소드: DR2D \subset \mathbb{R}^2 에서 정의된 연속함수 ff 에 대해 초기값 문제 {y=f(x,y)(y(x0),,y(xp))=(Y0,,Yp)\begin{cases} y ' = f(x,y) \\ ( y( x_{0} ) , \cdots , y(x_{p}) ) = (Y_{0}, \cdots , Y_{p} ) \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 이라고 하면 초기값과 0pm0 \le p \le m 에 대해 ap0a_{p} \ne 0 혹은 bp0b_{p} \ne 0 이면 다음을 (p+1)(p+1)-스텝 메소드라고 한다. yn+1=j=0pajynj+hj=1pbjf(xnj,ynj) 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} )

아담스-배쉬포스 메소드

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

  1. p=0p=0 : yn+1=yn+hyny_{n+1} = y_{n} + h y_{n} '
  2. p=1p=1 : yn+1=yn+h2(3ynyn1)y_{n+1} = y_{n} + {{h} \over {2}} ( 3 y_{n}' - y_{n-1}' )
  3. p=2p=2 : yn+1=yn+h12(23yn16yn1+5yn2)y_{n+1} = y_{n} + {{h} \over {12}} ( 23 y_{n}' - 16 y_{n-1}' + 5 y_{n-2}' )
  4. p=3p=3 : yn+1=yn+h24(55yn59yn1+37yn29yn3)y_{n+1} = y_{n} + {{h} \over {24}} ( 55 y_{n}' - 59 y_{n-1}' + 37 y_{n-2}' - 9 y_{n-3}' )

아담스-몰튼 메소드

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

  1. p=0p=0 : yn+1=yn+hyny_{n+1} = y_{n} + h y_{n} '
  2. p=1p=1 : yn+1=yn+h2(yn+1+yn)y_{n+1} = y_{n} + {{h} \over {2}} ( y_{n+1}' + y_{n}' )
  3. p=2p=2 : yn+1=yn+h12(5yn+1+8ynyn1)y_{n+1} = y_{n} + {{h} \over {12}} ( 5 y_{n+1}' + 8 y_{n}' - y_{n-1}' )
  4. p=3p=3 : yn+1=yn+h24(9yn+1+19yn5yn1+yn2)y_{n+1} = y_{n} + {{h} \over {24}} ( 9 y_{n+1}' + 19 y_{n}' -5 y_{n-1}' + y_{n-2}' )

설명

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

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


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