ルンゲ・クッタ法古典的なルンゲ・クッタ法(RK4)で使用される傾斜 ルンゲ・クッタ法の中で最も広く知られているものは、一般的に「RK4」、「古典的なルンゲ・クッタ法」、あるいは単に「ルンゲ・クッタ法」と呼ばれています。
初期値問題を 以下のように定義する。
d y d t = f ( t 、 y ) 、 y ( t 0 ) = y 0 。 {\displaystyle {\frac {dy}{dt}}=f(t,y),\quad y(t_{0})=y_{0}.} ここy {\displaystyle y} は時間の未知の関数(スカラーまたはベクトル)ですt {\displaystyle t} 我々はそれを近似したいと考えている。d y d t {\displaystyle {\frac {dy}{dt}}} 速度y {\displaystyle y} 変化は、t {\displaystyle t} そしてy {\displaystyle y} それ自体。最初の時点でt 0 t0 対応するy {\displaystyle y} 値はy 0 \displaystyle y_0}} . 機能f {\displaystyle f} そして初期条件 t 0 t0 、 y 0 \displaystyle y_0}} 与えられます。
ここで、ステップサイズh > 0 を選択し、以下のように定義します。
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}+{\frac {h}{6}}\left(k_{1}+2k_{2}+2k_{3}+k_{4}\right),\\t_{n+1}&=t_{n}+h\\\end{aligned}}} n = 0, 1, 2, 3, ...の場合、 [ 3 ]を使用します。
k 1 = f ( t n 、 y n ) 、 k 2 = f ( t n + h 2 、 y n + k 1 h 2 ) 、 k 3 = f ( t n + h 2 、 y n + k 2 h 2 ) 、 k 4 = f ( t n + h 、 y n + h k 3 ) 。 {\displaystyle {\begin{aligned}k_{1}&=\ f(t_{n},y_{n}),\\k_{2}&=\ f\!\left(t_{n}+{\frac {h}{2}},y_{n}+k_{1}{\frac {h}{2}}\right),\\k_{3}&=\ f\!\left(t_{n}+{\frac {h}{2}},y_{n}+k_{2}{\frac {h}{2}}\right),\\k_{4}&=\ f\!\left(t_{n}+h,y_{n}+hk_{3}\right).\end{aligned}}} (注:上記の数式は、文献によって定義は異なるが、同等の意味を持つ。 [ 4 ] )
ここy n + 1 \displaystyle y_{n+1}} RK4近似はy ( t n + 1 ) {\displaystyle y(t_{n+1})} 、次の値(y n + 1 \displaystyle y_{n+1}} )は現在の価値によって決定されます(y n \displaystyle y_n}} ) に加えて、4 つの増分の加重平均 を加えます。ここで、各増分は、区間の大きさh と、微分方程式の右辺の関数f によって指定される推定勾配の積です。
k 1 {\displaystyle k_{1}} 区間開始時の傾きは、y {\displaystyle y} (オイラー法 )k 2 {\displaystyle k_{2}} 区間の中点における傾きは、y {\displaystyle y} そしてk 1 {\displaystyle k_{1}} ;k 3 {\displaystyle k_{3}} 再び中点での傾きですが、今度はy {\displaystyle y} そしてk 2 {\displaystyle k_{2}} ;k 4 {\displaystyle k_{4}} 区間の終わりでの傾きは、y {\displaystyle y} そしてk 3 {\displaystyle k_{3}} 。4つの傾斜を平均化する場合、中間点の傾斜に重みが大きくなります。f {\displaystyle f} 独立しているy {\displaystyle y} 微分方程式が単純な積分と等価である場合、RK4 はシンプソンの公式 である。[ 5 ]
RK4法は4次法であり、局所的な打ち切り誤差 はオーダーである。 O ( h 5 ) {\displaystyle O(h^{5})} 累積誤差 の合計は、 O ( h 4 ) {\displaystyle O(h^{4})} 。
多くの実用的なアプリケーションでは、f {\displaystyle f} 独立しているt {\displaystyle t} (いわゆる自律系 、または時間不変系、特に物理学において)であり、その増分は全く計算されず、関数に渡されない。f {\displaystyle f} 最終的な式はt n + 1 t_n+1 使用済み。
明示的ルンゲ・クッタ法明示的 ルンゲ・クッタ法のファミリーは、上述のRK4法の一般化である。それは次のように表される。
y n + 1 = y n + h ∑ 私 = 1 s b 私 k 私 、 {\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},} [ 6 ]
k 1 = f ( t n 、 y n ) 、 k 2 = f ( t n + c 2 h 、 y n + ( 1 21 k 1 ) h ) 、 k 3 = f ( t n + c 3 h 、 y n + ( 1 31 k 1 + 1 32 k 2 ) h ) 、 ⋮ k s = f ( t n + c s h 、 y n + ( 1 s 1 k 1 + 1 s 2 k 2 + ⋯ + 1 s 、 s − 1 k s − 1 ) h ) 。 {\displaystyle {\begin{aligned}k_{1}&=f(t_{n},y_{n}),\\k_{2}&=f(t_{n}+c_{2}h,y_{n}+(a_{21}k_{1})h),\\k_{3}&=f(t_{n}+c_{3}h,y_{n}+(a_{31}k_{1}+a_{32}k_{2})h),\\&\ \ \vdots \\k_{s}&=f(t_{n}+c_{s}h,y_{n}+(a_{s1}k_{1}+a_{s2}k_{2}+\cdots +a_{s,s-1}k_{s-1})h).\end{aligned}}} (注:上記の式は、文献によっては異なるが同等の定義を持つ場合があります。 [ 4 ] ) 特定の方法を指定するには、整数s (ステージ数) と係数a ij (1 ≤ j < i ≤ s の場合)、b i ( i = 1, 2, ..., s の場合)、c i ( i = 2, 3, ..., s の場合) を指定する必要があります。行列 [ a ij ] はルンゲ・クッタ行列 と呼ばれ、b i とc i は 重み とノード として知られています。[ 7 ] これらのデータは通常、ブッチャー表 ( John C. Butcher にちなんで)として知られる記憶術で整理されます。
テイラー級数 展開により、ルンゲ・クッタ法が一致性を持つのは、
∑ 私 = 1 s b 私 = 1. {\displaystyle \sum _{i=1}^{s}b_{i}=1.} また、メソッドに特定の次数p を要求する場合、つまり局所的な打ち切り誤差が O( h p +1 ) である場合には、付随する要件もあります。これらは、打ち切り誤差自体の定義から導き出すことができます。たとえば、2 段階メソッドの次数が 2 であるのは、b 1 + b 2 = 1、b 2 c 2 = 1/2、およびb 2 a 21 = 1/2 の場合です。[ 8 ] 係数を決定するための一般的な条件は次のとおりです。[ 8 ]
∑ j = 1 私 − 1 1 私 j = c 私 のために 私 = 2 、 … 、 s 。 \displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{ for }}i=2,\ldots ,s.} しかし、この条件だけでは、一貫性の十分条件でも必要条件でもない。 [ 9 ]
一般的に、明示的なs {\displaystyle s} -段階ルンゲ・クッタ法は次数を持つp {\displaystyle p} すると、ステージ数は次の条件を満たす必要があることが証明できる。s ≥ p {\displaystyle s\geq p} そしてもしp ≥ 5 {\displaystyle p\geq 5} 、 それからs ≥ p + 1 {\displaystyle s\geq p+1} [ 10 ] しかし、これらの境界がすべての場合に厳密 であるかどうかは不明である。場合によっては、境界が達成できないことが証明されている。例えば、Butcher は、の場合に次のことを証明した。p > 6 {\displaystyle p>6} 明示的なメソッドはありませんs = p + 1 {\displaystyle s=p+1} 段階。[ 11 ] ブッチャーはまた、p > 7 {\displaystyle p>7} 明示的なルンゲ・クッタ法はありませんp + 2 {\displaystyle p+2} 段階。[ 12 ] しかし一般的には、正確な最小段階数がいくつであるかは未解決の問題である。 s {\displaystyle s} 明示的なルンゲ・クッタ法の次数がp {\displaystyle p} 既知の値には以下のようなものがあります: [ 13 ]
p 1 2 3 4 5 6 7 8 ミニ 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}}} 上記の証明可能な境界は、次数の方法を見つけることができないことを意味する。p = 1 、 2 、 … 、 6 {\displaystyle p=1,2,\ldots ,6} これらの次数に対して既に知られている方法よりも少ない段階数で済む方法も存在します。Butcher の研究は、7 次および 8 次の方法にはそれぞれ最低 9 段階および 11 段階が必要であることも証明しています。[ 11 ] [ 12 ] 7 段階の 6 次の明示的方法の例は、文献[ 14 ] に記載されています。9段階の 7 次の明示的方法[ 11 ] および 11 段階の 8 次の明示的方法[ 15 ] も知られています。概要については文献[ 16 ] [ 17 ]を参照してください。
例 RK4法はこの枠組みに該当します。その表は[ 18 ]です。
ルンゲ・クッタ法のわずかな変形も、1901年にクッタによって考案され、3/8ルールと呼ばれています。[ 19 ] この方法の主な利点は、誤差係数のほとんどすべてが一般的な方法よりも小さいことですが、時間ステップごとにわずかに多くの浮動小数点演算が必要になります。そのブッチャー表は
しかし、最も単純なルンゲ・クッタ法は、次の式で表される(前進)オイラー法である。 y n + 1 = y n + h f ( t n 、 y n ) {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n})} これは、1段階の唯一の一貫した明示的ルンゲ・クッタ法です。対応する表は
2段階の二次法 2段階の2次法の例として、明示的中点法 が挙げられる。
y n + 1 = y n + h f ( t n + 1 2 h 、 y n + 1 2 h f ( t n 、 y n ) ) 。 {\displaystyle y_{n+1}=y_{n}+hf\left(t_{n}+{\frac {1}{2}}h,y_{n}+{\frac {1}{2}}hf(t_{n},\ y_{n})\right).} 対応するタブローは
中間点法は、2段階の2次ルンゲ・クッタ法の唯一のものではありません。αでパラメータ化され、式[ 20 ]で与えられるそのような方法のファミリーがあります。
y n + 1 = y n + h ( ( 1 − 1 2 α ) f ( t n 、 y n ) + 1 2 α f ( t n + α h 、 y n + α h f ( t n 、 y n ) ) ) 。 {\displaystyle y_{n+1}=y_{n}+h{\bigl (}(1-{\tfrac {1}{2\alpha }})f(t_{n},y_{n})+{\tfrac {1}{2\alpha }}f(t_{n}+\alpha h,y_{n}+\alpha hf(t_{n},y_{n})){\bigr )}.} その肉屋の場面は
この家族では、α = 1 2 {\displaystyle \alpha ={\tfrac {1}{2}}} 中点法 を与える、α = 1 {\displaystyle \alpha =1} Heun の 方法[ 5 ] とα = 2 3 {\displaystyle \alpha ={\tfrac {2}{3}}} これはラルストンの方法である。
使用 例として、α = 2/3 の 2 段階 2 次ルンゲ・クッタ法(ラルストン法 とも呼ばれる)を考えてみましょう。これは次の表で表されます。
対応する方程式とともに
k 1 = f ( t n 、 y n ) 、 k 2 = f ( t n + 2 3 h 、 y n + 2 3 h k 1 ) 、 y n + 1 = y n + h ( 1 4 k 1 + 3 4 k 2 ) 。 {\displaystyle {\begin{aligned}k_{1}&=f(t_{n},\ y_{n}),\\k_{2}&=f(t_{n}+{\tfrac {2}{3}}h,\ y_{n}+{\tfrac {2}{3}}hk_{1}),\\y_{n+1}&=y_{n}+h\left({\tfrac {1}{4}}k_{1}+{\tfrac {3}{4}}k_{2}\right).\end{aligned}}} この方法は初期値問題を解くために用いられる。
d y d t = タン ( y ) + 1 、 y 0 = 1 、 t ∈ [ 1 、 1.1 ] {\displaystyle {\frac {dy}{dt}}=\tan(y)+1,\quad y_{0}=1,\ t\in [1,1.1]} ステップサイズh = 0.025の場合、この方法は4つのステップを実行する必要があります。
この方法は以下の手順で進められます。
数値解は下線部の値に対応する。
陰的ルンゲ・クッタ法明示的ルンゲ・クッタ法は、絶対安定領域が小さいため、一般的に硬い方程式 の解法には適していません。特に、その領域は有界です。[ 21 ] この問題は、偏微分方程式 の解法において特に重要です。
明示的ルンゲ・クッタ法の不安定性は、暗黙的方法の開発を促す。暗黙的ルンゲ・クッタ法は次の形式をとる。
y n + 1 = y n + h ∑ 私 = 1 s b 私 k 私 、 {\displaystyle y_{n+1}=y_{n}+h\sum _{i=1}^{s}b_{i}k_{i},} どこ
k 私 = f ( t n + c 私 h 、 y n + h ∑ j = 1 s 1 私 j k j ) 、 私 = 1 、 … 、 s 。 {\displaystyle k_{i}=f\left(t_{n}+c_{i}h,\ y_{n}+h\sum _{j=1}^{s}a_{ij}k_{j}\right),\quad i=1,\ldots ,s.} [ 22 ] 明示的な方法との違いは、明示的な方法では、jに関する和は i − 1までしか取られないという点である。 [ 23 ] これはブッチャー表にも表れる。係数行列1 私 j {\displaystyle a_{ij}} 明示的方法の場合、係数行列は下三角行列になります。暗黙的方法では、jに関する和は s までになり、係数行列は厳密には三角行列ではないため、 [ 18 ] の形式のブッチャー表が得られます。
c 1 1 11 1 12 … 1 1 s c 2 1 21 1 22 … 1 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s 1 s 1 1 s 2 … 1 s s b 1 b 2 … b s = c A b T {\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}\\\end{array}}={\begin{array}{c|c}\mathbf {c} &A\\\hline &\mathbf {b^{T}} \\\end{array}}} この違いの結果、各ステップで代数方程式系を解く必要が生じます。これにより計算コストが大幅に増加します。m個の成分を持つ微分方程式を解くためにs段階の方法を使用する場合、 代数 方程式系はms個の成分を持ちます。これは、暗黙的 線形多段階法 (常微分方程式のもう1つの大きな方法群)とは対照的です。暗黙的s段階線形多段階法では、 m 個の成分のみを持つ代数方程式系を解く必要があるため、ステップ数が増加してもシステムのサイズは増加しません。[ 24 ]
例 暗黙的ルンゲ・クッタ法の最も単純な例は、後退オイラー法 である。
y n + 1 = y n + h f ( t n + h 、 y n + 1 ) 。 {\displaystyle y_{n+1}=y_{n}+hf(t_{n}+h,\ y_{n+1}).\,} これに関する肉屋の場面描写は単純に次のとおりです。
1 1 1 {\displaystyle {\begin{array}{c|c}1&1\\\hline &1\\\end{array}}} このブッチャーの図表は、以下の公式に対応しています。
k 1 = f ( t n + h 、 y n + h k 1 ) そして y n + 1 = y n + h k 1 、 {\displaystyle k_{1}=f(t_{n}+h,\ y_{n}+hk_{1})\quad {\text{and}}\quad y_{n+1}=y_{n}+hk_{1},} これを変形すると、上記に示した後退オイラー法の公式が得られます。
暗黙的ルンゲ・クッタ法のもう一つの例は台形公式 です。そのブッチャー表は次のようになります。
0 0 0 1 1 2 1 2 1 2 1 2 1 0 {\displaystyle {\begin{array}{c|cc}0&0&0\\1&{\frac {1}{2}}&{\frac {1}{2}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&1&0\\\end{array}}} 台形公式はコロケーション法 である(その記事で説明されているように)。すべてのコロケーション法は陰的ルンゲ・クッタ法であるが、すべての陰的ルンゲ・クッタ法がコロケーション法であるとは限らない。[ 25 ]
ガウス・ルジャンドル法は、 ガウス求積法 に基づくコロケーション法のファミリーを形成する。s段階 のガウス・ルジャンドル法は2 s の オーダーを持つ(したがって、任意の高オーダーの方法を構築できる)。[ 26 ] 2 段階(したがってオーダー 4)の方法のブッチャー表は次のようになる。
1 2 − 1 6 3 1 4 1 4 − 1 6 3 1 2 + 1 6 3 1 4 + 1 6 3 1 4 1 2 1 2 1 2 + 1 2 3 1 2 − 1 2 3 {\displaystyle {\begin{array}{c|cc}{\frac {1}{2}}-{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}&{\frac {1}{4}}-{\frac {1}{6}}{\sqrt {3}}\\{\frac {1}{2}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}+{\frac {1}{6}}{\sqrt {3}}&{\frac {1}{4}}\\\hline &{\frac {1}{2}}&{\frac {1}{2}}\\&{\frac {1}{2}}+{\frac {1}{2}}{\sqrt {3}}&{\frac {1}{2}}-{\frac {1}{2}}{\sqrt {3}}\end{array}}} [ 24 ]
安定性 陰解法ルンゲ・クッタ法が陽解法よりも優れている点は、特に硬い方程式 に適用した場合の安定性が高いことである。線形テスト方程式を考えてみよう。y ′ = λ y {\displaystyle y'=\lambda y} この方程式にルンゲ・クッタ法を適用すると、反復回数は次のように簡略化されます。y n + 1 = r ( h λ ) y n {\displaystyle y_{n+1}=r(h\lambda )\,y_{n}} r は次のように与えられる。
r ( z ) = 1 + z b T ( 私 − z A ) − 1 e = 検出 ( 私 − z A + z e b T ) 検出 ( 私 − z A ) 、 {\displaystyle r(z)=1+zb^{T}(I-zA)^{-1}e={\frac {\det(I-zA+zeb^{T})}{\det(I-zA)}},} [ 27 ] ここで、e は 1 のベクトルを表します。関数rは 安定性関数 と呼ばれます。[ 28 ] この式から、メソッドがs段階を持つ場合、 rは s 次多項式の 2 つの商であることがわかります。明示的なメソッドは厳密に下三角行列A を持ち、これは det( I − zA ) = 1 であり、安定性関数が多項式であることを意味します。[ 29 ]
線形テスト方程式の数値解は、z = hλで | r ( z )| < 1 の場合にゼロに減衰します。このようなz の集合は、絶対安定領域 と呼ばれます。特に、Re( z ) < 0 のすべての z が絶対安定領域にある場合、その方法は絶対安定 であると言われます。明示的ルンゲ・クッタ法の安定性関数は多項式であるため、明示的ルンゲ・クッタ法は決して A-安定になりません。[ 29 ]
メソッドの次数がp の場合、安定性関数は以下を満たす。r ( z ) = e z + O ( z p + 1 ) {\displaystyle r(z)={\textrm {e}}^{z}+O(z^{p+1})} としてz → 0 {\displaystyle z\to 0} したがって、指数関数を最もよく近似する、与えられた次数の多項式の商を研究することは興味深い。これらはパデ近似として知られている。分子の次数が m 、分母の次数がn のパデ近似は、m ≤ n ≤ m + 2 の場合に限り A-安定である。[ 30 ]
s 段階の Gauss–Legendre 法は次数が 2s であるため、その安定性関数は m = n = s の Padé 近似値になります。したがって、この方法は A 安定です。[ 31 ] これは、A 安定な Runge–Kutta 法は任意の高い次数を持つことができることを示しています。対照的に、A 安定な線形多段階法 の次数は2 を超えることはできません。[ 32 ]
適応型ルンゲ・クッタ法適応法は、単一のルンゲ・クッタステップの局所打ち切り誤差の推定値を生成するように設計されています。これは、次数を持つ2つの方法によって行われます。p {\displaystyle p} そして秩序のある一つp − 1 {\displaystyle p-1} これらの手法は相互に関連しており、共通の中間ステップが存在する。そのため、誤差推定にかかる計算コストは、高次の手法を用いた場合と比べてほとんど、あるいは全くかからない。
積分処理中、推定誤差がユーザー定義の閾値を下回るようにステップサイズが調整されます。誤差が大きすぎる場合は、より小さなステップサイズでステップが繰り返されます。誤差が小さすぎる場合は、時間を節約するためにステップサイズが大きくなります。これにより、(ほぼ)最適なステップサイズが得られ、計算時間を節約できます。さらに、ユーザーは適切なステップサイズを見つけるために時間を費やす必要がありません。
下位ステップは次のように与えられる。
y n + 1 * = y n + h ∑ 私 = 1 s b 私 * k 私 、 {\displaystyle y_{n+1}^{*}=y_{n}+h\sum _{i=1}^{s}b_{i}^{*}k_{i},} どこk 私 {\displaystyle k_{i}} 高階メソッドの場合と同じです。するとエラーは
e n + 1 = y n + 1 − y n + 1 * = h ∑ 私 = 1 s ( b 私 − b 私 * ) k 私 、 {\displaystyle e_{n+1}=y_{n+1}-y_{n+1}^{*}=h\sum _{i=1}^{s}(b_{i}-b_{i}^{*})k_{i},} それはO ( h p ) {\displaystyle O(h^{p})} この種の方法のブッチャー表は、次の値を与えるように拡張されます。b 私 * {\displaystyle b_{i}^{*}} :
c 1 1 11 1 12 … 1 1 s c 2 1 21 1 22 … 1 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s 1 s 1 1 s 2 … 1 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}}}
ルンゲ・クッタ・フェールベルグ法には、 5次と4次の2つの方法がある。その拡張ブッチャー表は次のとおりである。
しかし、最も単純な適応型ルンゲ・クッタ法は、2次のヒューン法 と1次のオイラー法を組み合わせたものである。その拡張ブッチャー表は次のようになる。
その他の適応型ルンゲ・クッタ法としては、ボガッキ・シャンパイン法 (次数3および2)、キャッシュ・カープ法 、ドーマンド・プリンス法 (いずれも次数5および4)などがある。
非合流型ルンゲ・クッタ法ルンゲ・ クッタ法は、 すべて の c 私 、 私 = 1 、 2 、 … 、 s {\displaystyle c_{i},\,i=1,2,\ldots ,s} それらは異なる。
ルンゲ・クッタ・ニストローム法ルンゲ・クッタ・ニューストロム(RKN)法は、ルンゲ・クッタ法と同じ原理に基づく手法群ですが、2階の初期値問題[ 34 ] [ 35 ] を対象としており、したがって、次の形式の問題に対応します 。
d 2 y d t 2 = f ( t 、 d y d t 、 y ) 、 y ( t 0 ) = y 0 、 d y d t ( t 0 ) = y 0 ′ 。 {\displaystyle {\frac {d^{2}y}{dt^{2}}}=f(t,{\frac {dy}{dt}},y),\quad y(t_{0})=y_{0},\quad {\frac {dy}{dt}}(t_{0})=y'_{0}.} 導関数は2つあり、近似値も2つあるため、ルンゲ・クッタ・ニューストロム法では2つのルンゲ・クッタ行列を使用します。1 私 j 、 1 私 j ′ {\displaystyle a_{ij},a'_{ij}} 、そして2組の重りb 私 、 b 私 ′ {\displaystyle b_{i},b'_{i}} しかし、それでも必要なノードのセットは1つだけですc 私 {\displaystyle c_{i}} これにより、次の形式のブッチャーテーブルが生成されます 。
c 1 1 11 1 12 … 1 1 s c 2 1 21 1 22 … 1 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s 1 s 1 1 s 2 … 1 s s 1 11 ′ 1 12 ′ … 1 1 s ′ 1 21 ′ 1 22 ′ … 1 2 s ′ ⋮ ⋮ ⋱ ⋮ 1 s 1 ′ 1 s 2 ′ … 1 s s ′ b 1 b 2 … b s b 1 ′ b 2 ′ … b s ′ = c A A ′ b ⊤ b ′ ⊤ {\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 &a'_{11}&a'_{12}&\dots &a'_{1s}\\&a'_{21}&a'_{22}&\dots &a'_{2s}\\&\vdots &\vdots &\ddots &\vdots \\&a'_{s1}&a'_{s2}&\dots &a'_{ss}\\\hline &b_{1}&b_{2}&\dots &b_{s}\\&b'_{1}&b'_{2}&\dots &b'_{s}\\\end{array}}={\begin{array}{c|c}\mathbf {c} &\mathbf {A} \\\hline &\mathbf {A'} \\\hline &\mathbf {b} ^{\top }\\&\mathbf {b'} ^{\top }\end{array}}}
近似は、t n {\displaystyle t_{n}} 、 とy n {\displaystyle y_{n}} 近似値y ( t n ) {\displaystyle y(t_{n})} そしてy n ′ {\displaystyle y'_{n}} 近似値d y d t ( t n ) {\displaystyle {\frac {dy}{dt}}(t_{n})} 近似値y n + 1 、 y n + 1 ′ {\displaystyle y_{n+1},y'_{n+1}} でt n + 1 = t n + h {\displaystyle t_{n+1}=t_{n}+h} 以下の連立方程式の解は次のとおりです 。
{ g 私 = y n + c 私 h y n ′ + h 2 ∑ j = 1 s 1 私 j f ( t n + c j h 、 g j ′ 、 g j ) 、 私 = 1 、 2 、 … 、 s g 私 ′ = y n ′ + h ∑ j = 1 s 1 私 j ′ f ( t n + c j h 、 g j ′ 、 g j ) 、 私 = 1 、 2 、 … 、 s y n + 1 = y n + h y n ′ + h 2 ∑ j = 1 s b j f ( t n + c j h 、 g j ′ 、 g j ) y n + 1 ′ = y n ′ + h ∑ j = 1 s b j ′ f ( t n + c j h 、 g j ′ 、 g j ) {\displaystyle {\begin{cases}g_{i}=y_{n}+c_{i}hy'_{n}+h^{2}\sum _{j=1}^{s}a_{ij}f(t_{n}+c_{j}h,g'_{j},g_{j}),&i=1,2,\ldots ,s\\g'_{i}=y'_{n}+h\sum _{j=1}^{s}a'_{ij}f(t_{n}+c_{j}h,g'_{j},g_{j}),&i=1,2,\ldots ,s\\\\y_{n+1}=y_{n}+hy'_{n}+h^{2}\sum _{j=1}^{s}b_{j}f(t_{n}+c_{j}h,g'_{j},g_{j})\\y'_{n+1}=y'_{n}+h\sum _{j=1}^{s}b'_{j}f(t_{n}+c_{j}h,g'_{j},g_{j})\end{cases}}}
どこg 私 、 g 私 ′ {\displaystyle g_{i},g'_{i}} は中間近似値であるy {\displaystyle y} そしてd y d t {\displaystyle {\frac {dy}{dt}}} 値を扱うことは厳密に同等ですk j = f ( t n + c j h 、 g j ′ 、 g j ) {\displaystyle k_{j}=f(t_{n}+c_{j}h,g'_{j},g_{j})} どこでg j 、 g j ′ {\displaystyle g_{j},g'_{j}} 彼らの公式に置き換えられた代わりに、g 私 、 g 私 ′ {\displaystyle g_{i},g'_{i}} これは、以前にルンゲ・クッタ法で行ったことと同様ですが、この方法の方がシステムを記述しやすくなっています。
ルンゲ・クッタ・ニューストロム法は、以下の条件を満たす場合に明示的であると言われる。A 、 A ′ {\displaystyle A,A'} 厳密には下三角行列であり、この場合、和は∑ j = 1 s {\textstyle \sum _{j=1}^{s}} 表現においてg 私 、 g 私 ′ {\displaystyle g_{i},g'_{i}} 、は以下に置き換えられる場合があります∑ j = 1 私 − 1 {\textstyle \sum _{j=1}^{i-1}} [ 36 ] さらに、ルンゲ・クッタ・ニューストロム法は次数であると言われています。p {\displaystyle p} 両方の局所的切り捨て誤差がy n + 1 、 y n + 1 ′ {\displaystyle y_{n+1},y'_{n+1}} はO ( h p + 1 ) {\displaystyle O(h^{p+1})} 。
関数がf {\displaystyle f} 検討対象の初期値問題のd y d t {\displaystyle {\frac {dy}{dt}}} 中間値を近似する必要はありませんg 私 ′ {\displaystyle g'_{i}} 近似値を計算するには、重み1 私 j ′ {\displaystyle a'_{ij}} したがって、これらは役に立たないため、代わりに、次の形式の表を使用して、この特殊なケース専用のメソッドを作成します 。
c 1 1 11 1 12 … 1 1 s c 2 1 21 1 22 … 1 2 s ⋮ ⋮ ⋮ ⋱ ⋮ c s 1 s 1 1 s 2 … 1 s s b 1 b 2 … b s b 1 ′ b 2 ′ … b s ′ = c A b ⊤ b ′ ⊤ {\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}}={\begin{array}{c|c}\mathbf {c} &\mathbf {A} \\\hline &\mathbf {b} ^{\top }\\&\mathbf {b'} ^{\top }\end{array}}}
この特殊なケースは、一般的にルンゲ・クッタ・ニューストロム法が達成できる以上の高次の次数を実現できるため、特に興味深い。例えば、2つの4次明示的RKN法は、次のブッチャー表で与えられる。
c 私 1 私 j 3 + 3 6 0 0 0 3 − 3 6 2 − 3 12 0 0 3 + 3 6 0 3 6 0 b 私 3 − 2 3 12 1 2 3 + 2 3 12 b 私 ′ 5 − 3 3 24 3 + 3 12 1 + 3 24 {\displaystyle {\begin{array}{c|ccc}c_{i}&&a_{ij}&\\{\frac {3+{\sqrt {3}}}{6}}&0&0&0\\{\frac {3-{\sqrt {3}}}{6}}&{\frac {2-{\sqrt {3}}}{12}}&0&0\\{\frac {3+{\sqrt {3}}}{6}}&0&{\frac {\sqrt {3}}{6}}&0\\\hline b_{i}&{\frac {3-2{\sqrt {3}}}{12}}&{\frac {1}{2}}&{\frac {3+2{\sqrt {3}}}{12}}\\\hline b'_{i}&{\frac {5-3{\sqrt {3}}}{24}}&{\frac {3+{\sqrt {3}}}{12}}&{\frac {1+{\sqrt {3}}}{24}}\\\end{array}}} c 私 1 私 j 3 − 3 6 0 0 0 3 + 3 6 2 + 3 12 0 0 3 − 3 6 0 − 3 6 0 b 私 3 + 2 3 12 1 2 3 − 2 3 12 b 私 ′ 5 + 3 3 24 3 − 3 12 1 − 3 24 {\displaystyle {\begin{array}{c|ccc}c_{i}&&a_{ij}&\\{\frac {3-{\sqrt {3}}}{6}}&0&0&0\\{\frac {3+{\sqrt {3}}}{6}}&{\frac {2+{\sqrt {3}}}{12}}&0&0\\{\frac {3-{\sqrt {3}}}{6}}&0&-{\frac {\sqrt {3}}{6}}&0\\\hline b_{i}&{\frac {3+2{\sqrt {3}}}{12}}&{\frac {1}{2}}&{\frac {3-2{\sqrt {3}}}{12}}\\\hline b'_{i}&{\frac {5+3{\sqrt {3}}}{24}}&{\frac {3-{\sqrt {3}}}{12}}&{\frac {1-{\sqrt {3}}}{24}}\\\end{array}}}
これらの2つのスキームは、元の方程式が保存的な古典力学システムから導出されている場合、つまり
f 私 ( x 1 、 … 、 x n ) = ∂ V ∂ x 私 ( x 1 、 … 、 x n ) {\displaystyle f_{i}(x_{1},\ldots ,x_{n})={\frac {\partial V}{\partial x_{i}}}(x_{1},\ldots ,x_{n})}
あるスカラー関数に対してV {\displaystyle V} [ 37 ]
ルンゲ・クッタ4次法の導出一般的に、次数ルンゲ・クッタ法s {\displaystyle s} 次のように書くことができます。
y t + h = y t + h ⋅ ∑ 私 = 1 s 1 私 k 私 + O ( h s + 1 ) 、 {\displaystyle y_{t+h}=y_{t}+h\cdot \sum _{i=1}^{s}a_{i}k_{i}+{\mathcal {O}}(h^{s+1}),} どこ:
k 私 = ∑ j = 1 s β 私 j f ( k j 、 t n + α 私 h ) {\displaystyle k_{i}=\sum _{j=1}^{s}\beta _{ij}f(k_{j},\ t_{n}+\alpha _{i}h)} は、の導関数を評価することによって得られる増分です。y t {\displaystyle y_{t}} で私 {\displaystyle i} 次。
我々は、一般式を用いてルンゲ・クッタ4次法の導出[ 40 ]を展開する。 s = 4 {\displaystyle s=4} 上記のように、任意の区間の開始点、中間点、および終了点で評価される。( t 、 t + h ) {\displaystyle (t,\ t+h)} したがって、我々は以下を選択する。
α 私 β 私 j α 1 = 0 β 21 = 1 2 α 2 = 1 2 β 32 = 1 2 α 3 = 1 2 β 43 = 1 α 4 = 1 {\displaystyle {\begin{aligned}&\alpha _{i}&&\beta _{ij}\\\alpha _{1}&=0&\beta _{21}&={\frac {1}{2}}\\\alpha _{2}&={\frac {1}{2}}&\beta _{32}&={\frac {1}{2}}\\\alpha _{3}&={\frac {1}{2}}&\beta _{43}&=1\\\alpha _{4}&=1&&\\\end{aligned}}} そしてβ 私 j = 0 {\displaystyle \beta _{ij}=0} それ以外の場合は、まず以下の量を定義します。
y t + h 1 = y t + h f ( y t 、 t ) y t + h 2 = y t + h f ( y t + h / 2 1 、 t + h 2 ) y t + h 3 = y t + h f ( y t + h / 2 2 、 t + h 2 ) {\displaystyle {\begin{aligned}y_{t+h}^{1}&=y_{t}+hf\left(y_{t},\ t\right)\\y_{t+h}^{2}&=y_{t}+hf\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)\\y_{t+h}^{3}&=y_{t}+hf\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)\end{aligned}}} どこy t + h / 2 1 = y t + y t + h 1 2 {\displaystyle y_{t+h/2}^{1}={\dfrac {y_{t}+y_{t+h}^{1}}{2}}} そしてy t + h / 2 2 = y t + y t + h 2 2 。 {\displaystyle y_{t+h/2}^{2}={\dfrac {y_{t}+y_{t+h}^{2}}{2}}.} 次のように定義します。
k 1 = f ( y t 、 t ) k 2 = f ( y t + h / 2 1 、 t + h 2 ) = f ( y t + h 2 k 1 、 t + h 2 ) k 3 = f ( y t + h / 2 2 、 t + h 2 ) = f ( y t + h 2 k 2 、 t + h 2 ) k 4 = f ( y t + h 3 、 t + h ) = f ( y t + h k 3 、 t + h ) {\displaystyle {\begin{aligned}k_{1}&=f(y_{t},\ t)\\k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right)\\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right)\\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hk_{3},\ t+h\right)\end{aligned}}} そして、前述の関係については、次の等式が成り立つことを示すことができます。O ( h 2 ) {\displaystyle {\mathcal {O}}(h^{2})} :k 2 = f ( y t + h / 2 1 、 t + h 2 ) = f ( y t + h 2 k 1 、 t + h 2 ) = f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) k 3 = f ( y t + h / 2 2 、 t + h 2 ) = f ( y t + h 2 f ( y t + h 2 k 1 、 t + h 2 ) 、 t + h 2 ) = f ( y t 、 t ) + h 2 d d t [ f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) ] k 4 = f ( y t + h 3 、 t + h ) = f ( y t + h f ( y t + h 2 k 2 、 t + h 2 ) 、 t + h ) = f ( y t + h f ( y t + h 2 f ( y t + h 2 f ( y t 、 t ) 、 t + h 2 ) 、 t + h 2 ) 、 t + h ) = f ( y t 、 t ) + h d d t [ f ( y t 、 t ) + h 2 d d t [ f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) ] ] {\displaystyle {\begin{aligned}k_{2}&=f\left(y_{t+h/2}^{1},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right)\\&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\\k_{3}&=f\left(y_{t+h/2}^{2},\ t+{\frac {h}{2}}\right)=f\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}k_{1},\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right)\\&=f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right]\\k_{4}&=f\left(y_{t+h}^{3},\ t+h\right)=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}k_{2},\ t+{\frac {h}{2}}\right),\ t+h\right)\\&=f\left(y_{t}+hf\left(y_{t}+{\frac {h}{2}}f\left(y_{t}+{\frac {h}{2}}f\left(y_{t},\ t\right),\ t+{\frac {h}{2}}\right),\ t+{\frac {h}{2}}\right),\ t+h\right)\\&=f\left(y_{t},\ t\right)+h{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f\left(y_{t},\ t\right)\right]\right]\end{aligned}}} どこ:d d t f ( y t 、 t ) = ∂ ∂ y f ( y t 、 t ) y ˙ t + ∂ ∂ t f ( y t 、 t ) = f y ( y t 、 t ) y ˙ t + f t ( y t 、 t ) := y ¨ t {\displaystyle {\frac {d}{dt}}f(y_{t},\ t)={\frac {\partial }{\partial y}}f(y_{t},\ t){\dot {y}}_{t}+{\frac {\partial }{\partial t}}f(y_{t},\ t)=f_{y}(y_{t},\ t){\dot {y}}_{t}+f_{t}(y_{t},\ t):={\ddot {y}}_{t}} は、 f {\displaystyle f} 時間に関して。
先ほど導出した式を用いて一般式を表すと、次のようになります。y t + h = y t + h { 1 ⋅ f ( y t 、 t ) + b ⋅ [ f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) ] + + c ⋅ [ f ( y t 、 t ) + h 2 d d t [ f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) ] ] + + d ⋅ [ f ( y t 、 t ) + h d d t [ f ( y t 、 t ) + h 2 d d t [ f ( y t 、 t ) + h 2 d d t f ( y t 、 t ) ] ] ] } + O ( h 5 ) = y t + 1 ⋅ h f t + b ⋅ h f t + b ⋅ h 2 2 d f t d t + c ⋅ h f t + c ⋅ h 2 2 d f t d t + + c ⋅ h 3 4 d 2 f t d t 2 + d ⋅ h f t + d ⋅ h 2 d f t d t + d ⋅ h 3 2 d 2 f t d t 2 + d ⋅ h 4 4 d 3 f t d t 3 + O ( h 5 ) {\displaystyle {\begin{aligned}y_{t+h}={}&y_{t}+h\left\lbrace a\cdot f(y_{t},\ t)+b\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right.+\\&{}+c\cdot \left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f\left(y_{t},\ t\right)+{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right]+\\&{}+d\cdot \left[f(y_{t},\ t)+h{\frac {d}{dt}}\left[f(y_{t},\ t)+{\frac {h}{2}}{\frac {d}{dt}}\left[f(y_{t},\ t)+\left.{\frac {h}{2}}{\frac {d}{dt}}f(y_{t},\ t)\right]\right]\right]\right\rbrace +{\mathcal {O}}(h^{5})\\={}&y_{t}+a\cdot hf_{t}+b\cdot hf_{t}+b\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+c\cdot hf_{t}+c\cdot {\frac {h^{2}}{2}}{\frac {df_{t}}{dt}}+\\&{}+c\cdot {\frac {h^{3}}{4}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot hf_{t}+d\cdot h^{2}{\frac {df_{t}}{dt}}+d\cdot {\frac {h^{3}}{2}}{\frac {d^{2}f_{t}}{dt^{2}}}+d\cdot {\frac {h^{4}}{4}}{\frac {d^{3}f_{t}}{dt^{3}}}+{\mathcal {O}}(h^{5})\end{aligned}}}
これをテイラーシリーズ と比較するとy t + h {\displaystyle y_{t+h}} その周りt {\displaystyle t} :y t + h = y t + h y ˙ t + h 2 2 y ¨ t + h 3 6 y t ( 3 ) + h 4 24 y t ( 4 ) + O ( h 5 ) = = y t + h f ( y t 、 t ) + h 2 2 d d t f ( y t 、 t ) + h 3 6 d 2 d t 2 f ( y t 、 t ) + h 4 24 d 3 d t 3 f ( y t 、 t ) {\displaystyle {\begin{aligned}y_{t+h}&=y_{t}+h{\dot {y}}_{t}+{\frac {h^{2}}{2}}{\ddot {y}}_{t}+{\frac {h^{3}}{6}}y_{t}^{(3)}+{\frac {h^{4}}{24}}y_{t}^{(4)}+{\mathcal {O}}(h^{5})=\\&=y_{t}+hf(y_{t},\ t)+{\frac {h^{2}}{2}}{\frac {d}{dt}}f(y_{t},\ t)+{\frac {h^{3}}{6}}{\frac {d^{2}}{dt^{2}}}f(y_{t},\ t)+{\frac {h^{4}}{24}}{\frac {d^{3}}{dt^{3}}}f(y_{t},\ t)\end{aligned}}}
係数に関する制約条件の体系が得られる。
{ 1 + b + c + d = 1 1 2 b + 1 2 c + d = 1 2 1 4 c + 1 2 d = 1 6 1 4 d = 1 24 {\displaystyle {\begin{cases}&a+b+c+d=1\\[6pt]&{\frac {1}{2}}b+{\frac {1}{2}}c+d={\frac {1}{2}}\\[6pt]&{\frac {1}{4}}c+{\frac {1}{2}}d={\frac {1}{6}}\\[6pt]&{\frac {1}{4}}d={\frac {1}{24}}\end{cases}}} これを解くと1 = 1 6 、 b = 1 3 、 c = 1 3 、 d = 1 6 {\displaystyle a={\frac {1}{6}},b={\frac {1}{3}},c={\frac {1}{3}},d={\frac {1}{6}}} 上記のとおりです。
注記 ↑ 「ルンゲ・クッタ法」。Dictionary.com 。 2021年 4月4 日 取得 。 ↑ DEVRIES, Paul L.; HASBUN, Javier E. 計算物理学入門。第2版。Jones and Bartlett Publishers: 2011. p. 215. ↑ プレス他2007 年 、p. 908 ; Süli & Mayers 2003 、p. 328 1 2 Atkinson (1989 、p. 423) 、 Hairer、Nørsett & Wanner (1993 、p. 134) 、 Kaw & Kalu (2008 、§8.4) およびStoer & Bulirsch (2002 、p. 476) は、段階の定義で係数hを省略しています。 Ascher & Petzold (1998 、p. 81) 、 Butcher (2008 、p. 93) およびIserles (1996 、p. 38)は、 y 値を段階として使用しています。 1 2 Süli & Mayers 2003 、p. 328 ↑ Press et al. 2007 、p. 907 ↑ Iserles 1996 、p. 38 1 2 Iserles 1996 、p. 39 ↑ 反例として、任意の明示的な2段階ルンゲ・クッタ法を考えてみましょう。b 1 = b 2 = 1 / 2 {\displaystyle b_{1}=b_{2}=1/2} そしてc 1 {\displaystyle c_{1}} そして1 21 {\displaystyle a_{21}} ランダムに選択された。この方法は一貫性があり、(一般的に)一次収束する。一方、1段階法ではb 1 = 1 / 2 {\displaystyle b_{1}=1/2} 矛盾しており、収束しないが、自明に次のことが成り立つ。∑ j = 1 私 − 1 1 私 j = c 私 のために 私 = 2 、 … 、 s 。 {\displaystyle \sum _{j=1}^{i-1}a_{ij}=c_{i}{\text{ for }}i=2,\ldots ,s.} 。 ↑ ブッチャー 2008 、 p.187 1 2 3 ブッチャー 1965 、 p.408 1 2 ブッチャー 1985 ↑ ブッチャー 2008、187 ~196 ページ ↑ ブッチャー 1964 ↑ カーティス 1970 、p. 268 ↑ ハイラー、ノーセット、 ワナー、1993 年 、p. 179 ↑ ブッチャー 1996 、 p.247 1 2 Süli & Mayers 2003 、p. 352 ↑ Hairer、Nørsett & Wanner (1993 、p. 138)は Kutta (1901) を参照。 ↑ Süli & Mayers 2003 、p. 327 ↑ Süli & Mayers 2003 、pp. 349–351 ↑ イゼルレス、1996 年 、p. 41 ; Süli & Mayers 2003 、pp. 351–352 ↑ ブッチャー 2008、94 ページ 1 2 Süli & Mayers 2003 、p. 353 ↑ Iserles 1996、43-44 頁 ↑ Iserles 1996 、p. 47 ↑ ヘアラー& ワナー 1996 年、 40–41 ページ ↑ ヘアラー& ワナー 1996 年 、p. 40 1 2 Iserles 1996 、p. 60 ↑ Iserles 1996 、pp. 62–63 ↑ Iserles 1996 、p. 63 ↑ この結果はDahlquist (1963) によるものです。 ↑ ランバート 1991 、p. 278 ↑ Dormand, J. R.; Prince, P. J. (October 1978). "New Runge–Kutta Algorithms for Numerical Simulation in Dynamical Astronomy". Celestial Mechanics . 18 (3): 223– 232. Bibcode :1978CeMec..18..223D. doi :10.1007/BF01230162. S2CID 120974351. ↑ Fehlberg, E. (October 1974). Classical seventh-, sixth-, and fifth-order Runge–Kutta–Nyström formulas with stepsize control for general second-order differential equations (Report) (NASA TR R-432 ed.). Marshall Space Flight Center, AL: National Aeronautics and Space Administration. ↑ Butcher 2008 , p. 94 ↑ Qin, Meng-Zhao; Zhu, Wen-Jie (1991-01-01). "Canonical Runge-Kutta-Nyström (RKN) methods for second order ordinary differential equations" . Computers & Mathematics with Applications . 22 (9): 85– 95. doi :10.1016/0898-1221(91)90209-M. ISSN 0898-1221. ↑ Lambert 1991 , p. 275 ↑ Lambert 1991 , p. 274 ↑ Lyu, Ling-Hsiao (August 2016). "Appendix C. Derivation of the Numerical Integration Formulae"(PDF) . Numerical Simulation of Space Plasmas (I) Lecture Notes . Institute of Space Science, National Central University. Retrieved 17 April 2022 .
References Runge, Carl David Tolmé (1895), "Über die numerische Auflösung von Differentialgleichungen", Mathematische Annalen , 46 (2), Springer : 167– 178, doi :10.1007/BF01446807, S2CID 119924854 .Kutta, Wilhelm (1901), "Beitrag zur näherungsweisen Integration totaler Differentialgleichungen", Zeitschrift für Mathematik und Physik , 46 : 435– 453 .Ascher, Uri M.; Petzold, Linda R. (1998), Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations , Philadelphia: Society for Industrial and Applied Mathematics , ISBN 978-0-89871-412-8 .Atkinson, Kendall A. (1989), An Introduction to Numerical Analysis (2nd ed.), New York: John Wiley & Sons , ISBN 978-0-471-50023-0 .Butcher, John C. (1963年5月)、「ルンゲ・クッタ積分過程の研究のための係数」、Journal of the Australian Mathematical Society 、3 (2): 185–201 、doi : 10.1017/S1446788700027932 。Butcher, John C. (1964年5月)、「高次のルンゲ・クッタ過程について」、Journal of the Australian Mathematical Society 、4 (2): 179–194 、doi : 10.1017/S1446788700023387 Butcher, John C. (1975)、「陰的ルンゲ・クッタ法の安定性特性」、BIT 、15 (4): 358–361 、doi : 10.1007/bf01931672、S2CID 120854166 。Butcher, John C. (2000)、「20世紀における常微分方程式の数値解法」、J. Comput. Appl. Math. 、125 ( 1–2 ): 1–29 、Bibcode : 2000JCoAM.125....1B、doi : 10.1016/S0377-0427(00)00455-6 。ブッチャー、ジョン・C. (2008) 『常微分方程式の数値解法』 ニューヨーク:ジョン・ワイリー・アンド・サンズ 、ISBN 978-0-470-72335-7 。セリエ、F. Kofman, E. (2006)、連続システム シミュレーション 、Springer Verlag 、ISBN 0-387-26102-8 。Dahlquist, Germund (1963)、「線形多段階法の特殊な安定性問題」、BIT 、3 :27–43 、doi :10.1007/BF01963532、hdl :10338.dmlcz/103497 、ISSN 0006-3835、S2CID 120241743 。フォーサイス、ジョージ・E.、マルコム、マイケル・A.、モーラー、クリーブ・B. (1977)、『数理計算のためのコンピュータ手法』 、プレンティス・ホール (第6章を参照)。ハイラー、エルンスト。ノーセット、シベール・ポール。 Wanner、Gerhard (1993)、常微分方程式の解法 I: Nonstiff 問題 、ベルリン、ニューヨーク: Springer-Verlag 、ISBN 978-3-540-56670-0 。Hairer, Ernst; Wanner, Gerhard (1996), Solving ordinary differential equations II: Stiff and differential-algebraic problems (2nd ed.), Berlin, New York: Springer-Verlag , ISBN 978-3-540-60452-5 。Iserles, Arieh (1996), 『微分方程式の数値解析入門』 、ケンブリッジ大学出版局 、Bibcode : 1996fcna.book.....I、ISBN 978-0-521-55655-2 。ランバート、JD (1991)、常微分方程式系の数値解法:初期値問題 、ジョン・ワイリー・アンド・サンズ 、ISBN 0-471-92990-5 Kaw, Autar; Kalu, Egwu (2008), Numerical Methods with Applications (1st ed.), autarkaw.com 。Press, William H.; Teukolsky, Saul A .; Vetterling, William T.; Flannery, Brian P. (2007)、「第 17.1 節 ルンゲ・クッタ法」、Numerical Recipes: The Art of Scientific Computing (第 3 版)、Cambridge University Press 、ISBN 978-0-521-88068-8 また、セクション 17.2. Runge-Kutta の適応ステップサイズ制御。ステア、ジョセフ。 Bulirsch、Roland (2002)、数値解析入門 (第 3 版)、ベルリン、ニューヨーク: Springer-Verlag 、ISBN 978-0-387-95452-3 。Süli, Endre; Mayers, David (2003),数値解析入門 , Cambridge University Press , ISBN 0-521-00794-1 。Tan, Delin; Chen, Zheng (2012)、「4次ルンゲ・クッタ法の一般公式について」(PDF) 、Journal of Mathematical Science & Mathematics Education 、7 (2):1–10 。IGNOU高度離散数学参考書(コード:MCS033) ジョン・C・ブッチャー著「Bシリーズ :数値解析の代数的分析」、シュプリンガー(SSCM、第55巻)、ISBN 978-3030709556 (2021年4月) Butcher, JC (1985)、「10段階8次陽的ルンゲ・クッタ法の非存在」 、BIT Numerical Mathematics 、25 (3): 521–540 、doi : 10.1007/BF01935372 。Butcher, JC (1965)、「ルンゲ・クッタ法の達成可能な次数について」、Mathematics of Computation 、19 (91): 408–417 、doi : 10.1090/S0025-5718-1965-0179943-X 。Curtis, AR (1970)、「1ステップあたり11回の関数評価を行う8次ルンゲ・クッタ法」 、Numerische Mathematik 、16 (3): 268–277 、doi : 10.1007/BF02219778 。Cooper, GJ; Verner, JH (1972)、「高次の明示的ルンゲ・クッタ法のいくつか」 、SIAM Journal on Numerical Analysis 、9 (3): 389–405 、Bibcode : 1972SJNA....9..389C、doi : 10.1137/0709037 。Butcher, JC (1996)、「ルンゲ・クッタ法の歴史」 、応用数値数学 、20 (3): 247–260 、doi : 10.1016/0168-9274(95)00108-5 。
外部リンク 「ルンゲ=クッタ法」、数学百科事典 、EMS Press 、2001年 [1994年] ルンゲ・クッタ 4 次法 Matlab での Tracker コンポーネント ライブラリの実装— 32 個の埋め込み Runge Kutta アルゴリズムRungeKStep、24 個の埋め込み Runge-Kutta Nyström アルゴリズム、RungeKNystroemSStepおよび 4 個の一般的な Runge-Kutta Nyström アルゴリズムを実装しますRungeKNystroemGStep。