背景 少なくとも1960年代に遡るこれらの方法は、Certaine [ 1 ] と Pope [ 2 ] によって認識されました。最近では、指数積分法は活発な研究分野となっています。Hochbruck と Ostermann (2010) [ 3 ] を参照してください。 元々 は硬い 微分 方程式を解くために開発されたこれら の方法は、熱方程式 などの双曲型 および放物型の 問題[ 4 ] を含む偏微分方程式 を解くために使用されています。
指数関数的ローゼンブロック法 指数ローゼンブロック法は、通常、時間依存(放物型)偏微分方程式の空間離散化から生じる、大規模な硬質常微分方程式系の解法において非常に効率的であることが示されています。これらの積分器は、数値解に沿った式(1)の連続線形化に基づいて構築されます。u n u_n
どこL n = ∂ f ∂ u ( u n ) {\displaystyle L_{n}={\frac {\partial f}{\partial u}}(u_{n})} 、N n ( u ) = f ( u ) − L n u {\displaystyle N_{n}(u)=f(u)-L_{n}u} この手順は、各段階で次のような利点があります。 ∂ N n ∂ u ( u n ) = 0. \displaystyle {\frac {\partial N_{n}}{\partial u}}(u_{n})=0.} これにより、次数条件の導出が大幅に簡略化され、非線形性を積分する際の安定性が向上します。N ( u ( t ) ) {\displaystyle N(u(t))} 再び定数変化の公式(2)を適用すると、時刻における正確な解が得られる。t n + 1 t_n+1 として
ここでの考え方は、(4)の積分を節点を持つ何らかの求積法で近似することである。c 私 {\displaystyle c_{i}} そして重さb 私 ( h n L n ) {\displaystyle b_{i}(h_{n}L_{n})} (1 ≤ 私 ≤ s {\displaystyle 1\leq i\leq s} これにより、次のクラスのs {\displaystyle s} -段階陽的指数関数ローゼンブロック法、Hochbruck and Ostermann (2006)、Hochbruck、Ostermann and Schweitzer (2009) を参照。 U n 私 = e c 私 h n L n u n + h n ∑ j = 1 私 − 1 1 私 j ( h n L n ) N n ( U n j ) 、 u n + 1 = e h n L n u n + h n ∑ 私 = 1 s b 私 ( h n L n ) N n ( U n 私 ) {\displaystyle {\begin{aligned}U_{ni}&=e^{c_{i}h_{n}L_{n}}u_{n}+h_{n}\sum _{j=1}^{i-1}a_{ij}(h_{n}L_{n})N_{n}(U_{nj}),\\u_{n+1}&=e^{h_{n}L_{n}}u_{n}+h_{n}\sum _{i=1}^{s}b_{i}(h_{n}L_{n})N_{n}(U_{ni})\end{整列}}} とu n ≈ u ( t n ) \displaystyle u_{n}\approx u(t_{n})} 、U n 私 ≈ u ( t n + c 私 h n ) {\displaystyle U_{ni}\approx u(t_{n}+c_{i}h_{n})} 、h n = t n + 1 − t n {\displaystyle h_{n}=t_{n+1}-t_{n}} 係数 1 私 j ( z ) 、 b 私 ( z ) {\displaystyle a_{ij}(z),b_{i}(z)} これらは通常、関数全体の線形結合として選択される。φ k ( c 私 z ) 、 φ k ( z ) {\displaystyle \varphi _{k}(c_{i}z),\varphi _{k}(z)} それぞれ、 φ 0 ( z ) = e z 、 φ k ( z ) = ∫ 0 1 e ( 1 − θ ) z θ k − 1 ( k − 1 ) ! d θ 、 k ≥ 1. {\displaystyle \varphi _{0}(z)=e^{z},\quad \varphi _{k}(z)=\int _{0}^{1}e^{(1-\theta )z}{\frac {\theta ^{k-1}}{(k-1)!}}d\theta ,\quad k\geq 1.} これらの関数は再帰関係を満たす φ k + 1 ( z ) = φ k ( z ) − φ k ( 0 ) z 、 k ≥ 0. {\displaystyle \varphi _{k+1}(z)={\frac {\varphi _{k}(z)-\varphi _{k}(0)}{z}},\ k\geq 0.} 違いを導入することでD n 私 = N n ( U n 私 ) − N n ( u n ) {\displaystyle D_{ni}=N_{n}(U_{ni})-N_{n}(u_{n})} それらは、実装のために、より効率的な方法で再定式化することができる([ 3 ] も参照)。 U n 私 = u n + c 私 h n φ 1 ( c 私 h n L n ) f ( u n ) + h n ∑ j = 2 私 − 1 1 私 j ( h n L n ) D n j 、 u n + 1 = u n + h n φ 1 ( h n L n ) f ( u n ) + h n ∑ 私 = 2 s b 私 ( h n L n ) D n 私 。 {\displaystyle {\begin{aligned}U_{ni}&=u_{n}+c_{i}h_{n}\varphi _{1}(c_{i}h_{n}L_{n})f(u_{n})+h_{n}\sum _{j=2}^{i-1}a_{ij}(h_{n}L_{n})D_{nj},\\u_{n+1}&=u_{n}+h_{n}\varphi _{1}(h_{n}L_{n})f(u_{n})+h_{n}\sum _{i=2}^{s}b_{i}(h_{n}L_{n})D_{ni}.\end{整列}}}
適応ステップサイズでこのスキームを実装するために、局所誤差推定の目的で、以下の組み込み手法を検討することができる。 u ¯ n + 1 = u n + h n φ 1 ( h n L n ) f ( u n ) + h n ∑ 私 = 2 s b ¯ 私 ( h n L n ) D n 私 、 {\displaystyle {\bar {u}}_{n+1}=u_{n}+h_{n}\varphi _{1}(h_{n}L_{n})f(u_{n})+h_{n}\sum _{i=2}^{s}{\bar {b}}_{i}(h_{n}L_{n})D_{ni},} 同じステージを使用するU n 私 {\displaystyle U_{ni}} しかし、重り付きでb ¯ 私 {\displaystyle {\bar {b}}_{i}} 。
便宜上、明示的な指数関数的ローゼンブロック法の係数と、それらに組み込まれた方法の係数は、いわゆる縮小ブッチャー表を用いて次のように表すことができます。
厳しい順序条件 さらに、Luan と Ostermann (2014a) [ 8 ] では、再定式化アプローチが局所誤差を解析し、5 次までの指数型 Rosenbrock 法のスティッフ オーダー条件を導出するための新しいシンプルな方法を提供することが示されています。この新しい手法と B シリーズ概念の拡張により、任意のオーダーの指数型 Rosenbrock 積分器のスティッフ オーダー条件を導出するための理論が、Luan と Ostermann (2013) [ 9 ] で最終的に提示されました。例として、その研究では 6 次までの指数型 Rosenbrock 法のスティッフ オーダー条件が導出されており、次の表に示されています。
ここ Z {\displaystyle Z} 、K {\displaystyle K} 、 そしてM {\displaystyle M} 任意の正方行列を表す。
収束解析 指数型ローゼンブロック法の安定性と収束性に関する結果は、あるバナッハ空間における強連続半群の枠組みの中で証明される。
例 以下に示すすべてのスキームは、スティッフオーダー条件を満たしており、したがってスティッフ問題の解決にも適しています。
二次法 最も単純な指数ローゼンブロック法は指数ローゼンブロック・オイラー法であり、次数は2である(例えば、Hochbruck et al. (2009)を参照)。 u n + 1 = u n + h n φ 1 ( h n L n ) f ( u n ) 。 {\displaystyle u_{n+1}=u_{n}+h_{n}\ \varphi _{1}(h_{n}L_{n})f(u_{n}).}
三次法 Hochbruckら(2009)によって導出された、exprb32と名付けられた3次指数ローゼンブロック法のクラスは、次のように表される。
exprb32:
次のように読める U n 2 = u n + h n φ 1 ( h n L n ) f ( u n ) 、 u n + 1 = u n + h n φ 1 ( h n L n ) f ( u n ) + h n 2 φ 3 ( h n L n ) D n 2 、 {\displaystyle {\begin{aligned}U_{n2}&=u_{n}+h_{n}\ \varphi _{1}(h_{n}L_{n})f(u_{n}),\\[1ex]u_{n+1}&=u_{n}+h_{n}\ \varphi _{1}(h_{n}L_{n})f(u_{n})+h_{n}\ 2\varphi _{3}(h_{n}L_{n})D_{n2},\end{aligned}}} どこD n 2 = N n ( U n 2 ) − N n ( u n ) 。 {\displaystyle D_{n2}=N_{n}(U_{n2})-N_{n}(u_{n}).}
このスキームを可変ステップサイズで実装するには、指数関数的なローゼンブロック・オイラー法に組み込むことができます。 u ^ n + 1 = u n + h n φ 1 ( h n L n ) f ( u n ) 。 {\displaystyle {\hat {u}}_{n+1}=u_{n}+h_{n}\ \varphi _{1}(h_{n}L_{n})f(u_{n}).}
CoxとMatthewsによる4次ETDRK4法 CoxとMatthews [ 5 ] は、 Mapleを 使って導出した4次法指数時間差分法(ETD法)について述べている。
我々は彼らの記法を用い、未知の関数はu {\displaystyle u} 既知の解決策があるu n u_n その時t n t_n さらに、時間依存の可能性のある右辺を明示的に利用します。N = N ( t 、 u ) {\displaystyle {\mathcal {N}}={\mathcal {N}}(t,u)} 。
まず、3段階の値が構築されます。 1 n = e L h / 2 u n + L − 1 ( e L h / 2 − 私 ) N ( t n 、 u n ) b n = e L h / 2 u n + L − 1 ( e L h / 2 − 私 ) N ( t n + h 2 、 1 n ) c n = e L h / 2 1 n + L − 1 ( e L h / 2 − 私 ) ( 2 N ( t n + h 2 、 b n ) − N ( t n 、 u n ) ) {\displaystyle {\begin{aligned}a_{n}&=e^{Lh/2}u_{n}+L^{-1}\left(e^{Lh/2}-I\right){\mathcal {N}}(t_{n},u_{n})\\b_{n}&=e^{Lh/2}u_{n}+L^{-1}\left(e^{Lh/2}-I\right){\mathcal {N}}(t_{n}{+}{\tfrac {h}{2}},a_{n})\\c_{n}&=e^{Lh/2}a_{n}+L^{-1}\left(e^{Lh/2}-I\right)\left(2{\mathcal {N}}(t_{n}{+}{\tfrac {h}{2}},b_{n})-{\mathcal {N}}(t_{n},u_{n})\right)\end{aligned}}} 最終更新は、 u n + 1 = e L h u n + h − 2 L − 3 { + 2 [ − 4 − L h + e L h ( 4 − 3 L h + ( L h ) 2 ) ] N ( t n 、 u n ) + 2 [ 2 + L h + e L h ( − 2 + L h ) ] [ N ( t n + h 2 、 1 n ) + N ( t n + h 2 、 b n ) ] + 2 [ − 4 − 3 L h − ( L h ) 2 + e L h ( 4 − L h ) ] N ( t n + h 、 c n ) } 。 {\displaystyle {\begin{aligned}u_{n+1}=e^{Lh}u_{n}+h^{-2}L^{-3}{\Bigl \{}{\hphantom {{}+2}}&\left[-4-Lh+e^{Lh}\left(4-3Lh+(Lh)^{2}\right)\right]{\mathcal {N}}(t_{n},u_{n})\\{}+2&\left[2+Lh+e^{Lh}\left(-2+Lh\right)\right]\left[{\mathcal {N}}(t_{n}{+}{\tfrac {h}{2}},a_{n})+{\mathcal {N}}(t_{n}{+}{\tfrac {h}{2}},b_{n})\right]\\{}+{\hphantom {2}}&\left[-4-3Lh-(Lh)^{2}+e^{Lh}\left(4-Lh\right)\right]{\mathcal {N}}(t_{n}{+}h,c_{n}){\Bigr \}}.\end{aligned}}}
単純に実装すると、上記のアルゴリズムは浮動小数点 丸め誤差による数値不安定性に悩まされる。 [ 10 ] その理由を理解するために、最初の関数を考えてみよう。 φ 1 ( z ) = e z − 1 z 、 {\displaystyle \varphi _{1}(z)={\frac {e^{z}-1}{z}},} これは、1次オイラー法およびETDRK4の3つのステージすべてに存在します。z {\displaystyle z} この関数は数値的な相殺エラーに悩まされています。しかし、これらの数値的な問題は、以下の式を評価することで回避できます。φ 1 {\displaystyle \varphi _{1}} 関数は、経路積分アプローチ[ 10 ] またはパデ近似 [ 11 ] によって計算される。
参考文献 Berland, Havard; Owren, Brynjulf; Skaflestad, Bard (2005). "指数積分器のB系列と次数条件". SIAM Journal on Numerical Analysis . 43 (4): 1715–1727 . CiteSeerX 10.1.1.216.5645 . doi : 10.1137/040612683 . Berland, Havard; Skaflestad, Bard; Wright, Will M. (2007). "EXPINT - 指数積分器のための MATLAB パッケージ" . ACM Transactions on Mathematical Software . 33 (1): 4–es. doi : 10.1145/1206040.1206044 . S2CID 1525599 . Chao, Wei-Lun; Solomon, Justin; Michels, Dominik L.; Sha, Fei (2015). 「ハミルトニアンモンテカルロのための指数積分」.第32回国際機械学習会議(ICML-15)論文集 : 1142–1151 . Certaine, John (1960). 「大きな時定数を持つ常微分方程式の解法」.デジタルコンピュータのための数学的方法 . Wiley. pp. 128–132 . Cox, SM; Matthews, PC (2002年3月)「硬いシステムのための指数時間差分法」Journal of Computational Physics . 176 (2): 430–455 . Bibcode : 2002JCoPh.176..430C . doi : 10.1006/jcph.2002.6995 . Hochbruck, Marlis ; Ostermann, Alexander (2010 年 5 月). "指数積分器". Acta Numerica . 19 : 209– 286. Bibcode : 2010AcNum..19..209H . CiteSeerX 10.1.1.187.6794 . doi : 10.1017/S0962492910000048 . S2CID 4841957 . Hochbruck, Marlis ; Ostermann, Alexander ( 2005a). "半線形放物型問題に対する明示的指数ルンゲ・クッタ法" . SIAM Journal on Numerical Analysis . 43 (3): 1069–1090 . CiteSeerX 10.1.1.561.5501 . doi : 10.1137/040611434 . Hochbruck, Marlis ; Ostermann, Alexander (2005年5月b). "放物型問題に対する指数ルンゲ・クッタ法" . Applied Numerical Mathematics . 53 ( 2– 4): 323– 339. doi : 10.1016/j.apnum.2004.08.005 .Luan, Vu Thai; Ostermann, Alexander (2014a). "指数関数的ローゼンブロック法(5次)-構築、解析、数値比較" . Journal of Computational and Applied Mathematics . 255 : 417– 431. doi : 10.1016/j.cam.2013.04.041 . Luan, Vu Thai; Ostermann, Alexander (2014c). "放物型問題に対する高次の明示的指数ルンゲ・クッタ法". Journal of Computational and Applied Mathematics . 256 : 168–179 . arXiv : 1307.0661 . doi : 10.1016/j.cam.2013.07.027 . S2CID 18448807 . Luan, Vu Thai; Ostermann, Alexander (2013). "指数B系列:スティフケース". SIAM Journal on Numerical Analysis . 51 (6): 3431– 3445. doi : 10.1137/130920204 . Luan, Vu Thai; Ostermann, Alexander (2014). "5次指数ルンゲ・クッタ法の厳しい次数条件". Bock, Hans Georg; Hoang, Xuan Phu; Rannacher, Rolf; Schlöder, Johannes P. (編). Modeling, Simulation and Optimization of Complex Processes – HPSC 2012: Proceedings of the Fifth International Conference on High Performance Scientific Computing, March 5–9, 2012, Hanoi, Vietnam . Springer. pp. 133–143 . doi : 10.1007/978-3-319-09063-4_11 . ISBN 978-3-319-09062-7 。 Luan, Vu Thai; Ostermann, Alexander (2016). "並列指数ローゼンブロック法" . Computers and Mathematics with Applications . 71 (5): 1137– 1150. doi : 10.1016/j.camwa.2016.01.020 . ミシェルズ、ドミニク ・L.、デスブラン、マチュー(2015)。「 分子動力学への半解析的アプローチ」。Journal of Computational Physics。303 :336–354。Bibcode : 2015JCoPh.303..336M。doi : 10.1016 /j.jcp.2015.10.009 。ミシェルズ、ドミニク・L.、ソボットカ、ゲリット・A.、ウェーバー、アンドレアス・G. (2014). 「硬い弾性力学問題のための指数積分器」。ACM Transactions on Graphics。33 : 7 :1–7:20。doi : 10.1145 / 2508462。S2CID 207207156 。 Pope, David A (1963). 「常微分方程式の数値積分における指数法」 . Communications of the ACM . 6 (8): 491–493 . doi : 10.1145/366707.367592 . S2CID 18598461 . Tokman, Mayya (2011年10月)「Runge–Kutta型指数伝播反復法の新しいクラス(EPIRK)」Journal of Computational Physics . 230 (24): 8762–8778 . Bibcode : 2011JCoPh.230.8762T . doi : 10.1016/j.jcp.2011.08.023 . Tokman, Mayya (2006年4月)「指数伝播反復法(EPI法)を用いた大規模で硬い常微分方程式系の効率的な積分」Journal of Computational Physics . 213 (2): 748–776 . Bibcode : 2006JCoPh.213..748T . doi : 10.1016/j.jcp.2005.08.032 . Kassam, Aly-Khan; Trefethen, Lloyd N. (2005). "硬い偏微分方程式に対する4次時間ステップ法". SIAM Journal on Scientific Computing . 26 (4): 1214–1233 . Bibcode : 2005SJSC...26.1214K . CiteSeerX 10.1.1.15.6467 . doi : 10.1137/S1064827502410633 . Zhuang, Hao; Weng, Shih-Hung; Lin, Jeng-Hau; Cheng, Chung-Kuan (2014). "MATEX" (PDF) . Proceedings of the 51st Annual Design Automation Conference on Design Automation Conference - DAC '14 . pp. 1–6 . arXiv : 1511.04519 . doi : 10.1145/2593069.2593160 . ISBN 9781450327305 . S2CID 10585362 . Weng, Shih-Hung; Chen, Quan; Cheng, Chung-Kuan (2012). "適応制御を用いた行列指数法による大規模回路の時間領域解析". IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems . 32 (8): 1180– 1193. doi : 10.1109/TCAD.2012.2189396 . S2CID 14977067 .
外部リンク GPGPU上のインテグレータ メッシュフリー指数積分器のコード