古典的ルンゲ=クッタ法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/18 03:25 UTC 版)
「ルンゲ=クッタ法」の記事における「古典的ルンゲ=クッタ法」の解説
一連のルンゲ=クッタ公式の中で最も広く知られているのが、古典的ルンゲ=クッタ法 (RK4、もしくは単に狭義の ルンゲ=クッタ法、英: the (classical) Runge–Kutta method) などと呼ばれる4次の公式である。 次の初期値問題を考える。 y ′ = f ( t , y ) , y ( t 0 ) = y 0 . {\displaystyle y'=f(t,y),\quad y(t_{0})=y_{0}.} 但し、y(t) が近似的に求めたい未知関数であり、その t における勾配は f(t, y) によって t 及び y(t) の関数として与えられている。時刻 t0 における初期値は y0 で与えられている。 今、時刻 tn における値 yn = y(tn) が既知のとき、十分に小さなステップ幅 h に対して yn+1, tn+1 を以下の式で与えると、yn+1 は y(tn+1) の 4次精度の近似になっている。このステップを逐次的に繰り返すことによって、初期値 y0 から任意の時刻 tn における近似値 yn が求められる。 y n + 1 = y n + h 6 ( k 1 + 2 k 2 + 2 k 3 + k 4 ) , t n + 1 = t n + h . {\displaystyle {\begin{aligned}y_{n+1}&=y_{n}+{h \over 6}(k_{1}+2k_{2}+2k_{3}+k_{4}),\\t_{n+1}&=t_{n}+h.\end{aligned}}} ここで、 k 1 = f ( t n , y n ) , k 2 = f ( t n + h 2 , y n + h 2 k 1 ) , k 3 = f ( t n + h 2 , y n + h 2 k 2 ) , k 4 = f ( t n + h , y n + h k 3 ) {\displaystyle {\begin{aligned}k_{1}&=f\left(t_{n},y_{n}\right),\\k_{2}&=f\left(t_{n}+{h \over 2},y_{n}+{h \over 2}k_{1}\right),\\k_{3}&=f\left(t_{n}+{h \over 2},y_{n}+{h \over 2}k_{2}\right),\\k_{4}&=f\left(t_{n}+h,y_{n}+hk_{3}\right)\end{aligned}}} である。次の値 (yn+1) は、現在の値 (yn) に増分を加えたものであり、増分は勾配の推定値に間隔 h を乗じたものになっている。勾配の推定値は、k1, ..., k4 の4つの勾配の重み付け平均で求める。k1, ..., k4 のそれぞれの勾配は、特定の (t, y) に対する f によって与えられ、以下のように解釈できる。 k1 は区間の最初 tn における勾配である (オイラー法で用いる勾配に一致する)。 k2 は区間の中央 tn + h/2 における勾配の近似値である (中点法で用いる勾配)。計算に用いる中央の y の値は、初期位置の勾配 y1 を用いてオイラー法で推定する。 k3 は区間の中央における勾配のもう一つの近似値である。中央の y を k2 の値から推定して用いる。 k4 は区間の最後 tn + h における勾配の近似値であり、k3 の値から推定された最後の点の y の値を用いる。 重み付き平均では、中央の勾配に対して大きな重みを用いる。シンプソン則を用いた平均と同等の形になる。 slope = k 1 + 2 k 2 + 2 k 3 + k 4 6 . {\displaystyle {\mbox{slope}}={\frac {k_{1}+2k_{2}+2k_{3}+k_{4}}{6}}.} RK4は4次の方法である。厳密解とRK4のテイラー展開が4次の項まで一致し、1ステップの推定誤差は O ( h 5 ) {\displaystyle O(h^{5})} のオーダーになる。目的の時刻の y を求めるのに必要なステップ数は O ( h − 1 ) {\displaystyle O(h^{-1})} になるので、全体の推定誤差は O ( h 4 ) {\displaystyle O(h^{4})} になる。
※この「古典的ルンゲ=クッタ法」の解説は、「ルンゲ=クッタ法」の解説の一部です。
「古典的ルンゲ=クッタ法」を含む「ルンゲ=クッタ法」の記事については、「ルンゲ=クッタ法」の概要を参照ください。
- 古典的ルンゲ=クッタ法のページへのリンク