陽的ルンゲ゠クッタ法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/18 03:25 UTC 版)
「ルンゲ=クッタ法」の記事における「陽的ルンゲ゠クッタ法」の解説
陽的ルンゲ゠クッタ法では a i j = 0 {\displaystyle a_{ij}=0} ( i ≤ j {\displaystyle i\leq j} ) が満たされるので、ブッチャー配列は以下の形になる。 0 c 2 {\displaystyle c_{2}} a 21 {\displaystyle a_{21}} c 3 {\displaystyle c_{3}} a 31 {\displaystyle a_{31}} a 32 {\displaystyle a_{32}} ⋮ {\displaystyle \vdots } ⋮ {\displaystyle \vdots } ⋱ {\displaystyle \ddots } c s {\displaystyle c_{s}} a s 1 {\displaystyle a_{s1}} a s 2 {\displaystyle a_{s2}} ⋯ {\displaystyle \cdots } a s , s − 1 {\displaystyle a_{s,s-1}} b 1 {\displaystyle b_{1}} b 2 {\displaystyle b_{2}} ⋯ {\displaystyle \cdots } b s − 1 {\displaystyle b_{s-1}} b s {\displaystyle b_{s}} この時、各勾配 k1, ..., ks を以下のように逐次的に求めることができる。 k 1 = f ( t n , y n ) , k 2 = f ( t n + c 2 h , y n + a 21 h k 1 ) , k 3 = f ( t n + c 3 h , y n + a 31 h k 1 + a 32 h k 2 ) , ⋮ k s = f ( t n + c s h , y n + a s 1 h k 1 + a s 2 h k 2 + ⋯ + a s , s − 1 h k s − 1 ) . {\displaystyle {\begin{aligned}k_{1}&=f(t_{n},y_{n}),\\k_{2}&=f(t_{n}+c_{2}h,y_{n}+a_{21}hk_{1}),\\k_{3}&=f(t_{n}+c_{3}h,y_{n}+a_{31}hk_{1}+a_{32}hk_{2}),\\&\vdots \\k_{s}&=f(t_{n}+c_{s}h,y_{n}+a_{s1}hk_{1}+a_{s2}hk_{2}+\cdots +a_{s,s-1}hk_{s-1}).\end{aligned}}} (文献によって、等価であるが上と異なる定義の仕方をしているものがあることに注意する)。 陽的ルンゲ゠クッタ法が目的の精度 p になる係数を持つためには、十分に大きな段数 s が必要になる。少なくとも次数以上の段数が必要 ( s ≥ p {\displaystyle s\geq p} ) であり、更に5次以上の場合には段数は次数よりも大きく取らなければならない ( s > p {\displaystyle s>p} ) ことが知られている。各次数 p に対する最低段数 s の一般式は未解決問題である。具体的な値が幾つか知られている: p 1 2 3 4 5 6 7 8 min s 1 2 3 4 6 7 9 11 {\displaystyle {\begin{array}{c|cccccccc}p&1&2&3&4&5&6&7&8\\\hline \min s&1&2&3&4&6&7&9&11\end{array}}} オイラー法、ホイン法、古典的ルンゲ=クッタ法 (RK4) の相対誤差の比較。初期値 y ( 0 ) = 0 {\displaystyle y(0)=0} のもとでの常微分方程式 d y d t = cos ( y ) {\displaystyle {\frac {dy}{dt}}=\cos(y)} の数値解の t = 1 {\displaystyle t=1} での値をステップサイズの関数として対数プロットした。各手法がそれぞれ1次精度、2次精度、4次精度であることに対応して、傾き 1, 2, 4 で誤差が減少している。
※この「陽的ルンゲ゠クッタ法」の解説は、「ルンゲ=クッタ法」の解説の一部です。
「陽的ルンゲ゠クッタ法」を含む「ルンゲ=クッタ法」の記事については、「ルンゲ=クッタ法」の概要を参照ください。
- 陽的ルンゲ゠クッタ法のページへのリンク