Class of numerical method to solve differential equations
一般線形法 ( GLM )は、 常微分方程式の 数値 解を 求めるために使用される 数値手法 の大きなクラスです 。これには、 中間 選点を使用する多段階 ルンゲ・クッタ法 や、 解の有限の時間履歴を保存する 線形マルチステップ法が含まれます。John C. Butcherが これらの手法に対してこの用語を最初に造語し、このトピックに関する一連のレビュー論文、 [1] [2] [3]
、本の章、 [4]
、および教科書 [5] を執筆しました
。彼の共同研究者であるZdzislaw Jackiewiczも、このトピックに関する詳細な教科書 [6] を執筆しています。元のクラスの手法は、Butcher(1965)、Gear(1965)、GraggとStetter(1964)によって最初に提案されました。
いくつかの定義 一次常微分方程式の数値解法は、次のような初期値問題の近似解を求める。
y ′ = f ( t , y ) , y ( t 0 ) = y 0 . {\displaystyle y'=f(t,y),\quad y(t_{0})=y_{0}.} 結果は離散時間における の値の近似値である 。 y ( t ) {\displaystyle y(t)} t i {\displaystyle t_{i}}
y i ≈ y ( t i ) where t i = t 0 + i h , {\displaystyle y_{i}\approx y(t_{i})\quad {\text{where}}\quad t_{i}=t_{0}+ih,} ここで、 h は時間ステップ( と呼ばれることもあります )です。 Δ t {\displaystyle \Delta t}
方法の説明 この方法は他の場所でも使用できるが、ここではButcher (2006)、pp. 189-190に従って説明する。
一般線形法では、2つの整数、すなわち、履歴における時点の数と、共点の数 を用いる 。 の場合 、これらの方法は古典的な ルンゲ・クッタ法 に帰着し、 の場合、これらの方法は 線形多段階法 に帰着する 。 r {\displaystyle r} s {\displaystyle s} r = 1 {\displaystyle r=1} s = 1 {\displaystyle s=1}
ステージ値 とステージ導関数は、 時間ステップにおける 近似値から計算されます 。 Y i {\displaystyle Y_{i}} F i , i = 1 , 2 , … s {\displaystyle F_{i},\ i=1,2,\dots s} y i [ n − 1 ] , i = 1 , … , r {\displaystyle y_{i}^{[n-1]},\ i=1,\dots ,r} n {\displaystyle n}
y [ n − 1 ] = [ y 1 [ n − 1 ] y 2 [ n − 1 ] ⋮ y r [ n − 1 ] ] , y [ n ] = [ y 1 [ n ] y 2 [ n ] ⋮ y r [ n ] ] , Y = [ Y 1 Y 2 ⋮ Y s ] , F = [ F 1 F 2 ⋮ F s ] = [ f ( Y 1 ) f ( Y 2 ) ⋮ f ( Y s ) ] . {\displaystyle y^{[n-1]}=\left[{\begin{matrix}y_{1}^{[n-1]}\\y_{2}^{[n-1]}\\\vdots \\y_{r}^{[n-1]}\\\end{matrix}}\right],\quad y^{[n]}=\left[{\begin{matrix}y_{1}^{[n]}\\y_{2}^{[n]}\\\vdots \\y_{r}^{[n]}\\\end{matrix}}\right],\quad Y=\left[{\begin{matrix}Y_{1}\\Y_{2}\\\vdots \\Y_{s}\end{matrix}}\right],\quad F=\left[{\begin{matrix}F_{1}\\F_{2}\\\vdots \\F_{s}\end{matrix}}\right]=\left[{\begin{matrix}f(Y_{1})\\f(Y_{2})\\\vdots \\f(Y_{s})\end{matrix}}\right].} ステージ値は2つの行列とによって定義され ます 。 A = [ a i j ] {\displaystyle A=[a_{ij}]} U = [ u i j ] {\displaystyle U=[u_{ij}]}
Y i = ∑ j = 1 s a i j h F j + ∑ j = 1 r u i j y j [ n − 1 ] , i = 1 , 2 , … , s , {\displaystyle Y_{i}=\sum _{j=1}^{s}a_{ij}hF_{j}+\sum _{j=1}^{r}u_{ij}y_{j}^{[n-1]},\qquad i=1,2,\dots ,s,} 時間の更新は 2つの行列とによって定義され ます 。 t n {\displaystyle t^{n}} B = [ b i j ] {\displaystyle B=[b_{ij}]} V = [ v i j ] {\displaystyle V=[v_{ij}]}
y i [ n ] = ∑ j = 1 s b i j h F j + ∑ j = 1 r v i j y j [ n − 1 ] , i = 1 , 2 , … , r . {\displaystyle y_{i}^{[n]}=\sum _{j=1}^{s}b_{ij}hF_{j}+\sum _{j=1}^{r}v_{ij}y_{j}^{[n-1]},\qquad i=1,2,\dots ,r.} 4つの行列とが与えられれば 、 ブッチャー・タブロー の類似物を 次のように
簡潔に書くことができる。 A , U , B {\displaystyle A,U,B} V {\displaystyle V}
[ Y y [ n ] ] = [ A ⊗ I U ⊗ I B ⊗ I V ⊗ I ] [ h F y [ n − 1 ] ] , {\displaystyle \left[{\begin{matrix}Y\\y^{[n]}\end{matrix}}\right]=\left[{\begin{matrix}A\otimes I&U\otimes I\\B\otimes I&V\otimes I\end{matrix}}\right]\left[{\begin{matrix}hF\\y^{[n-1]}\end{matrix}}\right],} ここで、 は クロネッカー積 を表します 。 ⊗ {\displaystyle \otimes }
例 ここでは、(Butcher, 1996)に記載されている例を示します。 [7] この方法は、単一の「予測」ステップと、時間履歴に関する追加情報を使用する「修正」ステップ、および単一の中間ステージ値で構成されています。
中間段階の値は、 線形マルチステップ方式 から得られたもののように見えるものとして定義されます。
y n − 1 / 2 ∗ = y n − 2 + h ( 9 8 f ( y n − 1 ) + 3 8 f ( y n − 2 ) ) . {\displaystyle y_{n-1/2}^{*}=y_{n-2}+h\left({\frac {9}{8}}f(y_{n-1})+{\frac {3}{8}}f(y_{n-2})\right).} 初期の「予測子」は、 ステージ値 と 2 つの時間履歴を組み合わせて使用します。 y n ∗ {\displaystyle y_{n}^{*}} y n − 1 / 2 ∗ {\displaystyle y_{n-1/2}^{*}}
y n ∗ = 28 5 y n − 1 − 23 5 y n − 2 + h ( 32 15 f ( y n − 1 / 2 ∗ ) − 4 f ( y n − 1 ) − 26 15 f ( y n − 2 ) ) , {\displaystyle y_{n}^{*}={\frac {28}{5}}y_{n-1}-{\frac {23}{5}}y_{n-2}+h\left({\frac {32}{15}}f(y_{n-1/2}^{*})-4f(y_{n-1})-{\frac {26}{15}}f(y_{n-2})\right),} そして最終的な更新は
y n = 32 31 y n − 1 − 1 31 y n − 2 + h ( 5 31 f ( y n ∗ ) + 64 93 f ( y n − 1 / 2 ∗ ) + 4 31 f ( y n − 1 ) − 1 93 f ( y n − 2 ) ) . {\displaystyle y_{n}={\frac {32}{31}}y_{n-1}-{\frac {1}{31}}y_{n-2}+h\left({\frac {5}{31}}f(y_{n}^{*})+{\frac {64}{93}}f(y_{n-1/2}^{*})+{\frac {4}{31}}f(y_{n-1})-{\frac {1}{93}}f(y_{n-2})\right).} この方法の簡潔な表表現は次のように表される。
[ 0 0 0 0 1 9 8 3 8 32 15 0 0 28 5 − 23 5 − 4 − 26 15 64 93 5 31 0 32 31 − 1 31 4 31 − 1 93 64 93 5 31 0 32 31 − 1 31 4 31 − 1 93 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 ] . {\displaystyle \left[{\begin{array}{ccc|cccc}0&0&0&0&1&{\frac {9}{8}}&{\frac {3}{8}}\\{\frac {32}{15}}&0&0&{\frac {28}{5}}&-{\frac {23}{5}}&-4&-{\frac {26}{15}}\\{\frac {64}{93}}&{\frac {5}{31}}&0&{\frac {32}{31}}&-{\frac {1}{31}}&{\frac {4}{31}}&-{\frac {1}{93}}\\\hline {\frac {64}{93}}&{\frac {5}{31}}&0&{\frac {32}{31}}&-{\frac {1}{31}}&{\frac {4}{31}}&-{\frac {1}{93}}\\0&0&0&1&0&0&0\\0&0&1&0&0&0&0\\0&0&0&0&0&1&0\\\end{array}}\right].}
参照
注記 ^ Butcher, John C. (1996年2月~3月). 「一般線形法」. Computers & Mathematics with Applications . 31 ( 4–5 ): 105–112 . doi : 10.1016/0898-1221(95)00222-7 . ^ Butcher, John (2006年5月). 「一般線形手法」. Acta Numerica . 15 : 157–256 . Bibcode :2006AcNum..15..157B. doi :10.1017/S0962492906220014. S2CID 125962375. ^ Butcher, John (2009年2月). 「常微分方程式の一般線形解法」. 数学とコンピュータシミュレーション . 79 (6): 1834– 1845. doi :10.1016/j.matcom.2007.02.006. ^ ブッチャー, ジョン (2005). 「一般線形法」. 常微分方程式の数値解析法 . John Wiley & Sons, Ltd. pp. 357– 413. doi :10.1002/0470868279.ch5. ISBN 9780470868270 . S2CID 2334002。 ^ ブッチャー、ジョン (1987). 常微分方程式の数値解析:ルンゲ・クッタ法と一般線形法. Wiley-Interscience. ISBN 978-0-471-91046-6 。 ^ Jackiewicz, Zdzislaw (2009). 一般線形法による常微分方程式. Wiley. ISBN 978-0-470-40855-1 。 ^ ブッチャー 1996、107ページ。
参考文献 ブッチャー, ジョン・C. (1965年1月). 「常微分方程式の数値積分のための修正多段階法」. Journal of the ACM . 12 (1): 124– 135. doi : 10.1145/321250.321261 . S2CID 36463504. Gear, CW (1965). 「常微分方程式の初期値問題に対するハイブリッド法」. Journal of the Society for Industrial and Applied Mathematics, Series B: Numerical Analysis . 2 (1): 69– 86. Bibcode :1965SJNA....2...69G. doi :10.1137/0702006. hdl : 2027/uiuo.ark:/13960/t4rj60q8s . S2CID 122744897. グラッグ, ウィリアム B.; ハンス J. ステッター (1964年4月). 「一般化多段階予測補正法」. Journal of the ACM . 11 (2): 188– 209. doi : 10.1145/321217.321223 . S2CID 17118462. ヘアラー、エルンスト; ワナー、ワナー (1973)、「常微分方程式の多段階・多段・多導関数法」、 コンピューティング 、 11 (3): 287– 303、 doi :10.1007/BF02252917、 S2CID 25549771 。
外部リンク