「ルンゲ=クッタ法」の版間の差分
削除された内容 追加された内容
m →top |
Mrs-640237 (会話 | 投稿記録) →古典的な4次ルンゲ=クッタ法: 英訳修正 |
||
2行目:
'''ルンゲ=クッタ法'''({{lang-en-short|Runge–Kutta method}})とは、[[数値解析]]において[[微分方程式]]の近似解を求める一連の方法である。この技法は1900年頃に数学者[[カール・ルンゲ]]と{{日本語版にない記事リンク|マルティン・ヴィルヘルム・クッタ|en|Martin Wilhelm Kutta}}によって発展された。
== 古典的
一
次の[[初期値問題]]を
:<math> \dot y
但し、''y''(''t'') が近似的に求めたい未知関数であり、その ''t'' における勾配は ''f''(''t'', ''y'') によって ''t'' 及び ''y''(''t'') の関数として与えられている。時刻 ''t''<sub>0</sub> における初期値は ''y''<sub>0</sub> で与えられている。
今、時刻 ''t''<sub>''n''</sub> における値 ''y''<sub>''n''</sub> = ''y''(''t''<sub>''n''</sub>) が既知のとき、ステップ幅 ''h'' に対して ''y''<sub>''n''+1</sub>, ''t''<sub>''n''+1</sub> を以下の式で与えると、これは ''y''(''t''<sub>''n''+1</sub>) の 4次精度の近似になっている。
:<math> y_{n+1} = y_n + {h \over 6} (k_1 + 2k_2 + 2k_3 + k_4) </math>▼
:<math>\begin{align}
t_{n+1} &= t_n + h.
\end{align}</math>
ここで、
:<math>\begin{align} 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{align}</math>
である。
*''k''<sub>2</sub> は区間の中央における勾配であり、勾配 ''k''<sub>1</sub> を用いて ''t''<sub>''n''</sub> + ''h''/2 における ''y'' の値を[[オイラー法]]により決定したものである。▼
*''k''<sub>
*''k''<sub>
▲*''k''<sub>
*''k''<sub>4</sub> は区間の最後 ''t''<sub>''n''</sub> + ''h'' における勾配の近似値であり、''k''<sub>3</sub> の値から推定された最後の点の ''y'' の値を用いる。
:<math>\mbox{slope} = \frac{k_1 + 2k_2 + 2k_3 + k_4}{6}.</math>
RK4は4次の方法である。
== 陽的ルンゲ=クッタ法 ==
|