암시적 룽게-쿠타 메소드
📂수치해석암시적 룽게-쿠타 메소드
개요
상미분 방정식 솔버ODE solver인 룽게-쿠타 메소드를 소개한다. 흔히 사용되는 4차 룽게-쿠타 메소드 RK4는 명시적 룽게-쿠타 메소드의 한 종류이다. 본 문서에서는 암시적 룽게-쿠타 메소드implicit Runge-Kutta method에 대해서 설명한다.
빌드업
y′=f(t,y),t≥t0,y(t0)=y0
위와 같이 주어진 상미분 방정식을 생각하자. y는 t에 대한 함수이며, ′은 t에 대한 미분을 의미한다. yn=y(tn)과 같이 표기할 때, 명시적 룽게-쿠타 메소드란 주어진 yn에 대해서 yn+1을 다음과 같이 근사하는 방법이다.
yn+1=yn+hj=1∑νbjf(tn+cjh,y(tn+cjh)),n=0,1,2,⋯
이때
ξ1ξ2ξ3⋮ξν=yn=yn+ha2,1f(tn,ξ1)=yn+ha3,1f(tn,ξ1)+ha3,2f(tn+c2h,ξ2)=yn+hi=1∑ν−1aν,if(tn+cih,ξi)
위의 수식대로라면 각각의 ξj는 ξj−1을 알면 계산할 수 있고, 명시적 메소드에서는 ξ1=yn이 되도록 세팅하기 때문에 ξ1은 알고 있는 값이다. 다시말해 ξ2부터 ξν까지 순차적으로 계산 가능하도록 세팅해둔 것이 명시적 메소드이다.
암시적 메소드에서는 각각의 ξj를 계산하기 위해서 모든 ξi가 필요하도록 세팅한다. 즉, ξj들에 대한 연립 방정식을 풀어야 yn+1을 계산할 수 있다.
정의
암시적 룽게-쿠타 메소드란, 주어진 yn에 대해서 yn+1을 다음과 같이 근사하는 방법이다.
yn+1=yn+hj=1∑νbjf(tn+cjh,ξj),n=0,1,2,…
이때,
ξj=yn+hi=1∑νaj,if(tn+cih,ξi),j=1,…,ν
이때 ν×ν 행렬 A=[aj,i]를 룽게-쿠타 행렬RK matrix이라 한다. 또한 아래의 b와 c를 각각 RK 웨이트RK weights, Rk 노드RK nodes라 한다.
b=b1b2⋮bνandc=c1c2⋮cν
이때
cj=i=1∑νaj,i,j=1,2,…,ν
또한 식 (1)이 ν 스테이지ν stages를 가진다고 말하며, 이러한 방법을 ν 스테이지(혹은 ν 차) 룽게-쿠타 메소드라 한다.
설명
명시적 메소드에서 행렬 A=[aj,i]가 하삼각행렬이었던 것에 반해 암시적 메소드에서 A는 임의의 행렬이다.
RK 메소드에서 계수들 aj,i, bj, cj들은 구하는 것이 아니라 선택하여 사용하는 것이다. 계수는 cAbt와 같은 꼴로 표기하는데 이를 RK 테이블RK tableaux라 한다.
명시적 메소드와 비교하면 당연하게도 푸는데 훨씬 더 많은 시간이 소요된다. 하지만 암시적 메소드의 장점은 빠른 속도가 아니라 해의 안정성에 있다. 명시적 메소드의 단점은 해의 불안정성인데, 이를 위한 대안으로 암시적 메소드가 사용된다고 한다.
같이보기