Runge-Kutta-Gill法について
Runge-Kutta-Gill法の各ステップの係数のチートシートを探していて次の論文に行き当たったのでメモ。
CiNii 論文 - Runge-Kutta-Gill法について
伊理 正夫, 松谷 泰行, 情報処理, 8(2), pp.103-107 (1967).
ソースコードを見ると
k=h*f(i) qi=q(i) r=0.5*K-qi q(i)=qi+3.0*r-0.5*k y(i)=y(i)+r
の部分が次のように書き換わっている。
k=h*f(i) qi=q(i) r=0.5*K-qi s=y(i) ! ここで y をバッファして y(i)=s+r ! 一旦、y の中間積分値を作って r=y(i)-s ! 増分を再計算して、yで丸めた部分を引き出して q(i)=qi+3.0*r-0.5*k ! 次のステップの引数に渡す
これが古典的RKにはないRKGの「丸め誤差の自動修正」機能であると書いてある。へぇ。
蛇足 2010.2.15
(3.n.4.2) より (3.n.4.4) である。え?温存しておくものがないの?