룽게-쿠타 메소드에서 계수 결정하는 방법
📂수치해석룽게-쿠타 메소드에서 계수 결정하는 방법
개요
다음과 같이 주어진 상미분 방정식을 생각하자. y는 t에 대한 함수이며, 프라임(′)은 t에 대한 미분을 의미한다.
y′=f(t,y),t≥t0,y(t0)=y0,tn+1=tn+h
명시적 룽게-쿠타 메소드란, 주어진 yn=y(tn)에 대해서 yn+1=y(tn+1)을 다음과 같이 근사하는 방법이다.
yn+1=yn+hj=1∑νbjf(tn+cjh,ξj),n=0,1,2,⋯
여기서 각각의 ξj는,
ξ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)
RK-메소드에서 아래의 계수들은 선택하여 사용하는 것이다. 적절한 계수를 선택하는 방법에 대해서 알아본다.
A=[aj,i]=a2,1a3,1⋮aν,1a3,2aν,2⋯aν,ν−1andb=b1b2⋮bνandc=c1c2⋮cν
ν=2인 경우
우선 가장 간단한 ν=2인 경우에 대해서 살펴보자. 그러면 ξ1=yn이고 ξ2=yn+ha2,1f(tn,yn)이다. 따라서 yn+1은 다음과 같다.
yn+1=yn+h[b1f(tn+c1h,ξ1)+b2f(tn+c2h,ξ2)]=yn+h[b1f(tn,yn)+b2f(tn+c2h,yn+ha2,1f(tn,yn))]
여기서 c1=0이다. 벡터값 함수 f가 충분히 스무스하다고 가정하자. 그러면 f(tn+c2h,yn+ha2,1f(tn,yn))의 점 (tn,yn)에서 테일러 전개는 다음과 같다.
f(tn+c2h,yn+ha2,1f(tn,yn))=f(tn,yn)+(c2h,ha2,1f(tn,yn))T∇f(tn,yn)+O(h2)=f(tn,yn)+h[c2∂t∂f(tn,yn)+a2,1∂y∂f(tn,yn)f(tn,yn)]+O(h2)
∇f는 f의 그래디언트를 의미한다. 이를 (1)에 대입하면,
yn+1=yn+h[b1f(tn,yn)+b2f(tn,yn)+hb2c2∂t∂f(tn,yn)+hb2a2,1∂y∂f(tn,yn)f(tn,yn)+O(h2)]=yn+h(b1+b2)f(tn,yn)+h2b2[c2∂t∂f(tn,yn)+a2,1∂y∂f(tn,yn)f(tn,yn)]+O(h3)(2)
그런데 y′=f(t,y)의 전미분은 d(y′)=∂t∂f(t,y)dt+∂y∂f(t,y)dy이고, ′=dtd이므로, y′′는 다음과 같다.
y′′=∂t∂f(t,y)+∂y∂f(t,y)dtdy=∂t∂f(t,y)+∂y∂f(t,y)f(t,y)
테일러 정리에 의해 다음을 얻는다.
yn+1=yn+hy′+2h2y′′+O(h3)=yn+hf(tn,yn)+2h2(∂t∂f(t,y)+∂y∂f(t,y)f(t,y))+O(h3)(3)
(2)와 (3)을 비교하면 다음의 관계식을 얻는다.
b1+b2=1,b2c2=21,a2,1=c2
이를 만족하는 RK 테이블로는 아래의 것들이 있다.
cAbt0212101,03221324143,012112121,
ν=3인 경우
우선 테일러 정리에 의해 다음을 얻는다.
yn+1=yn+hy′+2h2y′′+6h3y′′′+O(h4)=yn+hfn+2h2(∂t∂f+∂y∂ff)+6h3(∂t2∂2f+∂y2∂2ff2+∂t∂f∂y∂f)+O(h4)(4)
그리고 i=1∑j−1aj,i=cj라고 가정하자. 그러면 ν=3인 경우에는,
c1=0,c2=a2,1,c3=a3,1+a3,2
fn=f(tn,yn)이라 표기하면,
ξ1=yn,ξ2=yn+hc2fn,ξ3=yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn)
따라서 yn+1은 다음과 같다.
yn+1=yn+hb1fn+hb2f(tn+c2h,ξ2)+hb3f(tn+c3h,ξ3)=yn+hb1fn+hb2f(tn+c2h,yn+hc2fn)+hb3f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))(5)
b2가 포함된 항은 다음과 같다.
f(tn+c2h,yn+hc2f(tn,yn))=fn+(hc2)∂t∂f+(hc2fn)∂y∂f+2(c2h)2∂t2∂2f+2(c2hfn)2∂y2∂2f+O(h3)
이를 (5)에 대입하면,
yn+1=yn+h(b1+b2)fn+h2b2c2∂t∂f+h2b2c2∂y∂ffn+2h3c22b2∂t2∂2f+2h3c22b2∂y2∂2ffn2+hb3f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))+O(h4)(6)
이제 b3가 포함된 항을 마저 계산해보면, (계수 비교에 필요하지 않은 항은 생략한다)
f(tn+c3h,yn+ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))=fn+c3h∂t∂f+(ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))∂y∂f+2h2c32∂t2∂2f+2(ha3,1fn+ha3,2f(tn+c2h,yn+hc2fn))2∂y2∂2f+O(h3)=fn+c3h∂t∂f+ha3,1fn∂y∂f+ha3,2[fn+hc2∂t∂f+O(h2)]∂y∂f+2h2c32∂t2∂2f+2(ha3,1fn+ha3,2fn)2∂y2∂2f+O(h3)=fn+c3h∂t∂f+hc3fn∂y∂f+h2c2a3,2∂t∂f∂y∂f+2h2c32∂t2∂2f+2(hc3fn)2∂y2∂2f+O(h3)
이를 (6)에 대입하고 정리하면 다음과 같다.
yn+1=yn+h(b1+b2)fn+h2b2c2∂t∂f+h2b2c2∂y∂ffn+2h3c22b2∂t2∂2f+2h3c22b2∂y2∂2ffn2+hb3[fn+c3h∂t∂f+hc3fn∂y∂f+h2c2a3,2∂t∂f∂y∂f+2h2c32∂t2∂2f+2(hc3fn)2∂y2∂2f]+O(h4)=yn+h(b1+b2+b3)fn+h2(b2c2+b3c3)∂t∂f+h2(b2c2+b3c3)∂y∂ffn+2h3(b2c22+b3c32)∂t2∂2f+h3b3c2a3,2∂t∂f∂y∂f+2h3(b2c22+b3c32)fn2∂y2∂2f+O(h4)
위 식과 (4)의 계수를 비교하면, 다음의 관계식을 얻는다.
b1+b2+b3=1,b2c2+b3c3=21,b2c22+b3c32=31,b3c2a3,2=61
이를 만족하는 RK 테이블로는 아래의 것들이 있다.
02112121−16123261(classical RK method)
032322132041328383(Nystrom scheme)
ν=4인 경우
마찬가지의 방법으로 계수에 대한 조건을 구할 수 있으며, 위에서 본 규칙대로라면 다음과 같음을 짐작할 수 있다.
b1+b2+b3+b4=1,b2c2+b3c3+b4c4=21,b2c22+b3c32+b4c42=31,b2c23+b3c33+b4c43=41
RK4에서 가장 유명한 계수는 다음과 같다. 아래의 테이블은 실제로 위의 조건을 만족한다.
021211002100612103113161
같이보기