logo

암시적 룽게-쿠타 메소드 📂수치해석

암시적 룽게-쿠타 메소드

개요

상미분 방정식 솔버ODE solver인 룽게-쿠타 메소드를 소개한다. 흔히 사용되는 4차 룽게-쿠타 메소드 RK4는 명시적 룽게-쿠타 메소드의 한 종류이다. 본 문서에서는 암시적 룽게-쿠타 메소드implicit Runge-Kutta method에 대해서 설명한다.

빌드업1

y=f(t,y),tt0,y(t0)=y0 y^{\prime} = f(t,y),\quad t \ge t_{0},\quad y(t_{0}) = y_{0}

위와 같이 주어진 상미분 방정식을 생각하자. yytt에 대한 함수이며, ^{\prime}tt에 대한 미분을 의미한다. yn=y(tn)y_{n} = y(t_{n})과 같이 표기할 때, 명시적 룽게-쿠타 메소드란 주어진 yny_{n}에 대해서 yn+1y_{n+1}을 다음과 같이 근사하는 방법이다.

yn+1=yn+hj=1νbjf(tn+cjh,y(tn+cjh)),n=0,1,2, \begin{equation} y_{n+1} = y_{n} + h\sum_{j=1}^{\nu} b_{j} f(t_{n} + c_{j}h,y(t_{n} + c_{j}h)),\quad n=0,1,2,\cdots \end{equation}

이때

ξ1=ynξ2=yn+ha2,1f(tn,ξ1)ξ3=yn+ha3,1f(tn,ξ1)+ha3,2f(tn+c2h,ξ2)ξν=yn+hi=1ν1aν,if(tn+cih,ξi) \begin{align*} \xi_{1} &= y_{n} \\ \xi_{2} &= y_{n} + ha_{2,1}f(t_{n}, \xi_{1}) \\ \xi_{3} &= y_{n} + ha_{3,1}f(t_{n}, \xi_{1}) + ha_{3,2}f(t_{n} + c_{2}h, \xi_{2}) \\ \vdots & \\ \xi_{\nu} &= y_{n} + h\sum_{i=1}^{\nu-1}a_{\nu, i}f(t_{n} + c_{i}h, \xi_{i}) \end{align*}

위의 수식대로라면 각각의 ξj\xi_{j}ξj1\xi_{j-1}을 알면 계산할 수 있고, 명시적 메소드에서는 ξ1=yn\xi_{1} = y_{n}이 되도록 세팅하기 때문에 ξ1\xi_{1}은 알고 있는 값이다. 다시말해 ξ2\xi_{2}부터 ξν\xi_{\nu}까지 순차적으로 계산 가능하도록 세팅해둔 것이 명시적 메소드이다.

암시적 메소드에서는 각각의 ξj\xi_{j}를 계산하기 위해서 모든 ξi\xi_{i}가 필요하도록 세팅한다. 즉, ξj\xi_{j}들에 대한 연립 방정식을 풀어야 yn+1y_{n+1}을 계산할 수 있다.

정의

암시적 룽게-쿠타 메소드란, 주어진 yny_{n}에 대해서 yn+1y_{n+1}을 다음과 같이 근사하는 방법이다.

yn+1=yn+hj=1νbjf(tn+cjh,ξj),n=0,1,2, y_{n+1} = y_{n} + h\sum_{j=1}^{\nu} b_{j} f(t_{n} + c_{j}h, \xi_{j}),\quad n=0,1,2,\dots

이때,

ξj=yn+hi=1νaj,if(tn+cih,ξi),j=1,,ν \xi_{j} = y_{n} + h\sum_{i=1}^{\nu}a_{j,i}f(t_{n} + c_{i}h, \xi_{i}),\quad j=1,\dots,\nu

이때 ν×ν\nu \times \nu 행렬 A=[aj,i]A = [a_{j,i}]룽게-쿠타 행렬RK matrix이라 한다. 또한 아래의 b\mathbf{b}c\mathbf{c}를 각각 RK 웨이트RK weights, Rk 노드RK nodes라 한다.

b=[b1b2bν]andc=[c1c2cν] \mathbf{b} = \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{\nu} \end{bmatrix} \quad \text{and} \quad \mathbf{c} = \begin{bmatrix} c_{1} \\ c_{2} \\ \vdots \\ c_{\nu} \end{bmatrix}

이때

cj=i=1νaj,i,j=1,2,,ν c_{j} = \sum\limits_{i=1}^{\nu} a_{j, i},\quad j=1,2,\dots,\nu

또한 식 (1)(1)ν\nu 스테이지ν\nu stages를 가진다고 말하며, 이러한 방법을 ν\nu 스테이지(혹은 ν\nu 차) 룽게-쿠타 메소드라 한다.

설명

명시적 메소드에서 행렬 A=[aj,i]A = [a_{j,i}]하삼각행렬이었던 것에 반해 암시적 메소드에서 AA는 임의의 행렬이다.

RK 메소드에서 계수들 aj,ia_{j,i}, bjb_{j}, cjc_{j}들은 구하는 것이 아니라 선택하여 사용하는 것이다. 계수는 cAbt\begin{array}{c|c} \mathbf{c} & A \\ \hline & \mathbf{b}^{t} \end{array}와 같은 꼴로 표기하는데 이를 RK 테이블RK tableaux라 한다.

명시적 메소드와 비교하면 당연하게도 푸는데 훨씬 더 많은 시간이 소요된다. 하지만 암시적 메소드의 장점은 빠른 속도가 아니라 해의 안정성에 있다. 명시적 메소드의 단점은 해의 불안정성인데, 이를 위한 대안으로 암시적 메소드가 사용된다고 한다.

같이보기


  1. Arieh Iserles, A First Course in the Numerical Analysis of Differential Equations (2nd Edition, 2009), p41-42 ↩︎