常微分方程式の数値解法

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Differential equations 常微分方程式の数値解法 (じょうびぶんほうていしきのすうちかいほう、テンプレート:Lang-en-short) は、数値解析において常微分方程式を数値的に解く技術の総称である[1][2]

数値解法の必要性

これまで様々な自然現象 (物理現象など) を記述するために多くの常微分方程式が作られ、多くの数学者たちがその解法を探求してきたが、フックス型微分方程式[3][4]などを除いて、式変形による計算だけで厳密に解ける常微分方程式は多くない。そのため多くの研究者たちが常微分方程式を数値的に解く技術について研究をしてきた[1][2]。最も標準的な手法はルンゲ・クッタ法であり[1][2][5][A 1]MATLABにはode45として搭載されている。しかしこれは万能なソルバーとは言えない。例えばパンルヴェ方程式[6][7][8]リッカチ方程式[9]などは非線形性によって精度の良い計算ができず、数値実験結果だけを見ていると間違った結論 (幻影解) にたどり着く危険がある。テンプレート:要出典テンプレート:Div col

テンプレート:Div col end などの新しい解法に関する研究が進められている。

初期値問題

N 個の変数 y=(y1,,yN)N に関する1階常微分方程式、すなわち [t0,b]×N (またはその開集合)で定義されたベクトル値連続関数 f(t,y)=(f1(t,y),,fN(t,y)) により定まる次の方程式 テンプレート:Indent について考える。その初期値問題 (initial-value problem) とは、初期条件 y(t0)=y0 を満たす関数 y(t) を求めることである[12]。関数 f が第2引数についてリプシッツ連続であるとき、すなわち定数 L が存在し テンプレート:IndentNノルム)を満たすとき、その初期値問題には解が一意に存在する[13]ピカール・リンデレフの定理)。本節では常微分方程式の初期値問題を数値的に解くことについて議論する。

初期値問題の例

例として、電気回路の研究から導かれたファン・デル・ポール振動子について考える。その運動方程式は テンプレート:Indent であり、これは2階の常微分方程式であるものの、v=dx/dt とおくと テンプレート:Indent という上述の形に帰着できる[14]

一段法

区間 [t0,t] の厳密解を y(t) とする。一段法[15]として知られるクラスの数値解法では、離散化した時刻 ti=t0+ih (h=(tt0)/n) での厳密解 y(ti) の近似値 ηiテンプレート:Indent という漸化式によって定める[16]。関数 Φ の選択が数値積分スキームを選択することに対応する。離散化した時刻の差分 h=ti+1ti を刻み幅あるいはステップサイズと呼ぶ[17]。なお、ここでは時間ステップ h=ti+1ti は一定としたが、これを動的に決定するテンプレート:仮リンクという手法もある[18][19]

厳密解 y(t) から差分商 テンプレート:Indent を導入するとき、数値積分スキーム Φ の局所離散化誤差[20] (local discretization error) は テンプレート:Indent により定義される[21][22]。整合性のために h0 の極限で局所離散化誤差(厳密にはその上限)は 0 に収束することが要求される[23][24]。さらに、この極限で局所離散化誤差が Δ(t,η;h)Φ(t,η;h)=O(hp) を満足するとき、この積分スキーム Φp 次精度であるという[25][23]

一方、t を固定して n とするとき、大域離散化誤差[26] (global discretization error) テンプレート:Indent が 0 に収束するならば、その積分スキームは収束するという[27][24]p 次精度 (p>0) の1段法を十分に滑らかな関数 f に適用するとき、そのスキームは収束し大域離散化誤差は テンプレート:Indent のように振る舞うことが保証されている、すなわち大域離散化誤差のオーダーは局所離散化誤差のオーダーに等しい[28][29]。この結果はすべての整合的な一段法が h0 で漸近的に安定であることを意味するものの、ただし現実的に可能な h で1段法が安定であることは必ずしも保証されない(#安定性節を参照)[30]

オイラー法、ホイン法、古典的ルンゲ=クッタ法 (RK4) の相対誤差の比較。初期値 y(0)=0 のもとでの常微分方程式 dydt=cos(y) の数値解の t=1 での値をステップサイズの関数として対数プロットした。各手法がそれぞれ1次精度、2次精度、4次精度であることに対応して、傾き 1, 2, 4 で誤差が減少している[31]

積分スキーム Φ としては以下のものが知られている。

このうち古典的ルンゲ=クッタ法は適用可能範囲の広さ[18]やプログラミングの容易さのために広く用いられている[35](ただし Press らは著書において計算速度の観点から古典的ルンゲ=クッタ法に否定的に言及している[36])。

テンプレート:See also

多段法

一段法は ηi+1 の値を ηi だけから定めるものであったが、より多くのステップでの値 ηi1, ..., ηir+1 を使う積分スキームは多段法[15] (multistep method) と呼ばれる[37]。この場合、最初の η0, ..., ηr1 はこのスキームでは定めることができず、1段法などの他の方法を用いる必要がある[37]。多段法としてはアダムス・バッシュフォース法や、それを応用する予測子修正子法などがある[38](これはどちらも ηi+1ηir+1, ..., ηi の線型関数として定まるため、線型多段法と呼ばれる[39])。

テンプレート:詳細記事

安定性

数値積分スキームの安定性はしばしばそれを初期値問題 テンプレート:Indentλ は複素数の定数)に適用することで定量化される[40]。問題のスキームを一定の刻み幅 h で適用することで得られる数列 {yn}n=0,1, について、それが極限 n で 0 に収束するような hλ がなす複素平面上の領域を絶対安定領域[41]と呼ぶ[40]。もとの初期値問題の厳密解は y(t)=eλt であり、これは Re{λ}<0 のとき t で 0 に収束する[42]。そこである積分スキームの絶対安定領域が左半平面を含むとき、そのスキームはA-安定 (A-stable) であるという[43][44]

関数 f(t,y) が大きな値を取り積分スキームによっては極端に時間刻み幅 h を小さくする必要がある場合、その常微分方程式は硬い方程式と呼ばれる[45]。この場合には十分に安定なスキームを用いる必要が生じる[44]。これはしばしば yi+1陰関数的に yi 等から定める陰解法によって実現される[46]

テンプレート:詳細記事

幾何学的解法

解析対象となる微分方程式が何らかの特別な性質を持つとき、汎用の数値積分法ではなく、その性質を尊重するように構成された数値解法を用いることがあり、そのような手法は構造保存型解法または幾何学的数値解法と呼ばれる[47][48]。例えば古典力学ハミルトン力学)において時間発展はシンプレクティック写像であり、エネルギーハミルトニアン)等の保存量が存在する[48]。この場合にはシンプレクティック数値積分法というハミルトン系にのみ適用可能な数値解法が存在し、良好な性質を持つことが知られている[49]

テンプレート:詳細記事

境界値問題

常微分方程式 テンプレート:Indent の解 y(x) で, ab に対する境界条件 テンプレート:Indent を満足するものを求める問題を境界値問題 (boundary-value problem) と呼ぶ[50]。初期値問題と異なり、境界値問題では複数の解が存在すること、あるいは解が存在しないことがあり得る。また、スツルム=リウヴィル型微分方程式のように常微分方程式にパラメータ λ が含まれ、境界値問題に解が存在するようにパラメータ λ を同時に定める問題もある[51]

これらの問題を数値的に解く最も単純な方法が狙い撃ち法 (shooting method) である[52]。一方の端点(例えば x=a)において初期条件 y(a) を適当に定めて微分方程式をもう一方の端点 x=b まで解き、境界条件を満たすように未定の初期条件(および固有値)を適切に選ぶ[53][54]。これはニュートン法などの関数の根を求めるアルゴリズム(これはしばしば逐次反復を伴う)を常微分方程式の数値解法と組み合わせることを意味する[55][56]。ただし初期条件によっては区間 [a,b] 全体で定義された解が存在しないことがあり、そのために改良された手法がある[57]。あるいは有限要素法 (finite element method) などの手法も用いられる[58]

解の存在検証

テンプレート:Seealso 高精度に解く技術が追求されている一方で、「計算機で解の存在を検証する」という研究もおこなわれている[59]。このような研究が必要となるのは、近似解が求まったとしてもそれが幻影解である危険性があるからである。偏微分方程式ではすでに幻影解が報告されているので[59][B 1][B 2]常微分方程式でも警戒が必要である。偏微分方程式の時と同様に関数解析学的な手法[59][60][61][62]も考えられるが、関数解析学に頼らない手法 (例えば狙い撃ち法スペクトル法アフィン演算など) に基づく研究が主流であり[59]、欧米などの海外[B 3][B 4][B 5][B 6][B 7][B 8][B 9][B 10][B 11]のみならず日本国内でも研究されている[B 12][B 13][B 14][B 15]。また、爆発解 (テンプレート:Lang-en-short) に特化した精度保証付き解法も探求されている[B 16][B 17]

解の存在検証・計算機援用証明が行われた方程式

関連ソフトウェア・ライブラリ

出典

テンプレート:脚注ヘルプ テンプレート:Reflist

近似解法に関する論文

テンプレート:Reflist

精度保証・計算機援用証明に関する論文

テンプレート:Reflist

参考文献

和書

  • 戸川隼人:「微分方程式の数値計算:有限要素法と差分法」、オーム社(1973年8月)。
  • 一松信:「微分方程式と解法」、教育出版、ISBN 978-4-316-37661-5(1976年11月)。 
  • 三井斌友:「常微分方程式の数値解法」, 岩波書店、ISBN 978-4-00-005453-9(2003年7月29日)。
  • 三井斌友、小藤俊幸、斉藤善:「微分方程式による計算科学入門」、共立出版 、ISBN 978-4-320-01753-5 (2004年2月25日)。※ ハミルトン系に対するシンプレクティック法、遅延微分方程式、確率微分方程式が扱われている。
  • U.M.アッシャー、L.R.ペツォルド:「常微分方程式と微分代数方程式の数値解法」、培風館、ISBN 4-563-01125-8 (2006年7月14日)。
  • E.ハイラー、S.P.ネルセット、G.バンナー, 三井斌友(訳):「常微分方程式の数値解法 I (基礎編)」、丸善出版、ISBN 978-4-621-06282-1(2007年12月)。
  • E.ハイラー、G.バンナー, 三井斌友(訳):「常微分方程式の数値解法 II (発展編)」、丸善出版、ISBN 978-4-621-06317-0(2008年8月)。
  • テンプレート:Cite book
  • 神永正博:「Pythonと実例で学ぶ微分方程式:はりの方程式から感染症の数理モデルまで」、コロナ社、ISBN 978-4-339-06123-9 (2021年10月22日)。※ 応用とPythonのライブラリの利用に主眼がある。

洋書

テンプレート:Div col

テンプレート:Div col end

微分代数方程式の数値解法

テンプレート:Seealso テンプレート:Div col

  • Brenan, K. E., Campbell, S. L., & Petzold, L. R. (1996). Numerical solution of initial-value problems in differential-algebraic equations. SIAM.
  • Hairer, E., Lubich, C., & Roche, M. (2006). The numerical solution of differential-algebraic systems by Runge-Kutta methods. Springer.
  • Kunkel, P., & Mehrmann, V. (2006). Differential-algebraic equations: analysis and numerical solution. European Mathematical Society.
  • Marz, R. (1992). Numerical methods for differential algebraic equations. en:Acta Numerica, 1, 141-198.

テンプレート:Div col end

遅延微分方程式の数値解法

テンプレート:Seealso

  • Bellen, A., & Zennaro, M. (2013). Numerical methods for delay differential equations. Oxford University Press.
  • Zennaro, M. (1995). Delay differential equations: theory and numerics. Theory and numerics of ordinary and partial differential equations, 291-333.

外部リンク

テンプレート:ウィキプロジェクトリンク テンプレート:ウィキポータルリンク

解説記事

近似解法

精度保証

研究集会

ソフトウェア

テンプレート:数学

  1. 1.0 1.1 1.2 1.3 テンプレート:Cite book
  2. 2.0 2.1 2.2 2.3 森正武. 数値解析 第2版. 共立出版.
  3. 時弘哲治、工学における特殊関数共立出版
  4. 坂井秀隆. (2015). 常微分方程式. 東京大学出版会.
  5. 遠藤理平 (2018) ルンゲ・クッタで行こう!―物理シミュレーションを基礎から学ぶ
  6. 岡本和夫. (2009). パンルヴェ方程式. 岩波書店.
  7. 野海正俊. (2000). パンルヴェ方程式-対称性からの入門. すうがくの風景 4. 朝倉書店.
  8. 岡本和夫. (1985). パンルヴェ方程式序説. 上智大学数学講究録, 19.
  9. リッカチのひ・み・つ : 解ける微分方程式の理由を探る. 井ノ口順一著. 日本評論社, 2010.9.
  10. Hairer, E., Lubich, C., & Wanner, G. (2006). Geometric numerical integration: structure-preserving algorithms for ordinary differential equations. en:Springer Science & Business Media.
  11. 吉田春夫. (1995). シンプレクティック数値解法 (古典力学の輝き--未解決問題と新しい発見). 数理科学, 33(6), p37-46.
  12. Stoer & Bulirsch, p. 465.
  13. Stoer & Bulirsch, p. 467.
  14. Iserles, pp. 106-107.
  15. 15.0 15.1 テンプレート:Cite web
  16. Stoer & Bulirsch, p. 473.
  17. 齊藤, pp. 97-98.
  18. 18.0 18.1 Press et al., p. 709.
  19. テンプレート:Cite web
  20. 齊藤, pp. 99, 102.
  21. Stoer & Bulirsch, pp. 473-474.
  22. Hackbusch, p. 71.
  23. 23.0 23.1 Stoer & Bulirsch, p. 474.
  24. 24.0 24.1 Hackbusch, p. 72.
  25. 齊藤, p. 103.
  26. 齊藤, p. 102.
  27. Stoer & Bulirsch, p. 477.
  28. Stoer & Bulirsch, pp. 477-479.
  29. Hackbusch, pp. 73-74.
  30. Hackbusch, p. 74.
  31. 齊藤, p. 107.
  32. 齊藤, p. 97-98, 103.
  33. 齊藤, p. 106.
  34. Stoer & Bulirsch, pp. 475-476.
  35. テンプレート:Cite web
  36. Press et al., pp. 708-709, 712.
  37. 37.0 37.1 Stoer & Bulirsch, p. 492.
  38. Press et al., pp. 747-750.
  39. Stoer & Bulirsch, p. 508.
  40. 40.0 40.1 Iserles, pp. 56-57.
  41. テンプレート:Cite web
  42. Iserles, p. 56.
  43. Iserles, p. 59.
  44. 44.0 44.1 テンプレート:Cite web
  45. Iserles, pp. 53-56.
  46. Press et al., pp. 735-736.
  47. 齊藤, p. 120.
  48. 48.0 48.1 テンプレート:Cite web
  49. テンプレート:Cite journal
  50. Stoer & Bulirsch, pp. 539-540.
  51. Stoer & Bulirsch, p. 541.
  52. Stoer & Bulirsch, pp. 542-548.
  53. Press et al., pp. 753-755, 757-759.
  54. Hairer et al. (1993), p. 105.
  55. Hairer et al. (1993), p. 106.
  56. Press et al., pp. 754-755.
  57. Hairer et al. (1993), pp. 106-107.
  58. Iserles, pp. 171-176.
  59. 59.0 59.1 59.2 59.3 精度保証付き数値計算の基礎』大石進一 編著、コロナ社、2018年。
  60. テンプレート:Cite book
  61. 中尾充宏, & 山本野人. (1998). 精度保証付き数値計算 チュートリアル: 応用数理最前線.
  62. 中尾充宏, & 渡部善隆. (2011). 実例で学ぶ精度保証付き数値計算, サイエンス社.
  63. 大石進一、非線形解析入門、コロナ社。


引用エラー: 「A」という名前のグループの <ref> タグがありますが、対応する <references group="A"/> タグが見つかりません
引用エラー: 「B」という名前のグループの <ref> タグがありますが、対応する <references group="B"/> タグが見つかりません