暗示的ルンゲ=クッタ法
📂数値解析暗示的ルンゲ=クッタ法
概要
常微分方程式ソルバーのルンゲ=クッタ法を紹介する。よく使われる4次ルンゲ=クッタ法 RK4は、明示的ルンゲ=クッタ法の一種だ。この文書では、暗示的ルンゲ=クッタ法について説明する。
ビルドアップ
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]をルンゲ=クッタ行列と呼ぶ。また、下のbとcをそれぞれRKウェイト、RKノードと呼ぶ。
b=b1b2⋮bνandc=c1c2⋮cν
このとき、
cj=i=1∑νaj,i,j=1,2,…,ν
さらに、式(1)が**νステージ**を持つと言い、このような方法をνステージ(またはν階)ルンゲ=クッタ法と呼ぶ。
説明
明示的メソッドでは行列A=[aj,i]が下三角行列だったのに対し、暗示的メソッドではAは任意の行列である。
RKメソッドでは、係数aj,i、bj、cjは見つけるのではなく、選んで使うものだ。係数はcAbtのように記され、これをRKテーブルと呼ぶ。
明示的メソッドと比べて、解くのにはるかに多くの時間がかかるのは当然だ。しかし、暗示的メソッドの長所は速さではなく、解の安定性にある。明示的メソッドの短所は解の不安定性であり、それに対する代替として暗示的メソッドが使われる。
参照