埋め込み型ルンゲ=クッタ法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/11 04:08 UTC 版)
「ルンゲ=クッタ法のリスト」の記事における「埋め込み型ルンゲ=クッタ法」の解説
詳細は「ルンゲ=クッタ法#埋め込み型ルンゲ=クッタ法」を参照 埋め込み型の方法はルンゲ=クッタ法の局所誤差を推定するために開発された方法である。それらの方法は誤差を制御するために刻み幅を調整する。 埋め込み型方法に対応するブッチャー配列は以下のように与えられる。 c 1 a 11 a 12 … a 1 s c 2 a 21 a 22 … a 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s a s 1 a s 2 … a s s b 1 b 2 … b s b 1 ∗ b 2 ∗ … b s ∗ {\displaystyle {\begin{array}{c|cccc}c_{1}&a_{11}&a_{12}&\dots &a_{1s}\\c_{2}&a_{21}&a_{22}&\dots &a_{2s}\\\vdots &\vdots &\vdots &\ddots &\vdots \\c_{s}&a_{s1}&a_{s2}&\dots &a_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b_{1}^{*}&b_{2}^{*}&\dots &b_{s}^{*}\\\end{array}}} ここで、上側の段の係数 bi は p 次陽的方法に対応するものであり、下側の段の係数 b *i は p-1 次陽的方法に対応するものである。
※この「埋め込み型ルンゲ=クッタ法」の解説は、「ルンゲ=クッタ法のリスト」の解説の一部です。
「埋め込み型ルンゲ=クッタ法」を含む「ルンゲ=クッタ法のリスト」の記事については、「ルンゲ=クッタ法のリスト」の概要を参照ください。
埋め込み型ルンゲ=クッタ法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/18 03:25 UTC 版)
「ルンゲ=クッタ法」の記事における「埋め込み型ルンゲ=クッタ法」の解説
ルンゲ=クッタ法の局所誤差を精確に計算することが難しいので、実践では誤差を一定の範囲にコントロールするのが望ましいである。そのために開発されたのが 埋め込み型ルンゲ=クッタ法(Embedded Runge-Kutta method)である。適応型ルンゲ=クッタ法 (adaptive Runge–Kutta method) とも呼ばれる。線型多段法にもミルンデバイスと呼ばれる相似の方法が存在する。 埋め込み方法は陽的ルンゲ=クッタ法二つを利用する(下の方法を上の方法に埋め込むように見えるので埋め込み型と呼ばれる)。ブッチャー配列の以下のように拡張する。 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}} b 1 ∗ {\displaystyle b_{1}^{*}} b 2 ∗ {\displaystyle b_{2}^{*}} ⋯ {\displaystyle \cdots } b s − 1 ∗ {\displaystyle b_{s-1}^{*}} b s ∗ {\displaystyle b_{s}^{*}} ここで、bi は p 次陽的方法に対応し、b *i は p-1 次陽的方法に対応する。二つの方法は係数 aij と ci を共用する。正しく係数を選ぶと、二つの方法をともに収束させることができる。そのとき、埋め込み方法の時刻 tn での相対(局所)誤差 en は次の公式で与えられる。 e n = y n − y n ∗ = h ∑ i = 1 s ( b i − b i ∗ ) k i = O ( h p ) {\displaystyle e_{n}=y_{n}-y_{n}^{*}=h\sum _{i=1}^{s}(b_{i}-b_{i}^{*})k_{i}=O(h^{p})} ルンゲ=クッタ法の収束性から、相対誤差も0に収束することがわかる。埋め込みルンゲ=クッタ法は、アルゴリズムを用いて一時刻ごと(自動的)に刻み幅 h を調整し、誤差をコントロールすることができる(故に適応型と呼ばれる)。よって絶対誤差を計算せずに刻み幅を正しく設定することができる。そのアルゴリズムは、大体以下の通りである。 誤差の許容値を δ とする。刻み幅 h の近似値 yn+1 と y *n+1 をルンゲ=クッタ法で計算する。二つの値に対し、 ‖ e n + 1 ‖ ≥ h δ {\displaystyle \|e_{n+1}\|\geq h\delta } が成立するとき、h が大きすぎて小さくする必要がある。よって新しい刻み幅 h ′ = 1 2 h {\displaystyle h'={\frac {1}{2}}h} と設定し再び近似値を計算する。代わりに ‖ e n + 1 ‖ ≤ 1 10 h δ {\displaystyle \|e_{n+1}\|\leq {\frac {1}{10}}h\delta } が成立するとき、h が小さすぎて大きくするほうが効率が良い。よって新しい刻み幅 h ′ = 2 h {\displaystyle h'=2h} と設定し、次の時刻での近似値を計算する(この場合、誤差が許容値より小さいので今の近似値を二度と計算する必要はない)。二つの不等式ともが成立しないとき、そのままの刻み幅で次の時刻での近似値を計算してよい。 ただし、使用したスカラー(1/2他)は方程や方法によって変更することも可能である。また、実践では h を小さくしすぎないようにするため、下界 hmin を先に設定することもある。 h < h m i n {\displaystyle h<h_{\mathrm {min} }} のときにアルゴリズムを停止し、代わりにもっと高い次数を持つ方法を使う。
※この「埋め込み型ルンゲ=クッタ法」の解説は、「ルンゲ=クッタ法」の解説の一部です。
「埋め込み型ルンゲ=クッタ法」を含む「ルンゲ=クッタ法」の記事については、「ルンゲ=クッタ法」の概要を参照ください。
- 埋め込み型ルンゲ=クッタ法のページへのリンク