常微分方程式の初期値問題の解を Euler法で計算する人が後を絶たない (うわぁ)。 そうなっているのは、説明の仕方がまずいのだろう。 かっこうは悪いけれど、最初に注意しておくことにしました。
この文書は、 常微分方程式の初期値問題の数値シミュレーションを体験するための案内をする、 という目的で用意しました。 数値計算法としては、「定番」の (古典的, 4次の) Runge-Kutta 法を選択しました。 なぜそれが定番で、そこから始めるのが良いか、というのは後述します (予定…)。
Runge-Kutta 法の利用を勧めるのに、 なぜ Euler 法の説明をするかというと、 それは (離散変数法の) 原理を理解するには役立つだろう、 偏微分方程式のシミュレーションなどでは Euler 法 (普通は後退Euler法だけど) は普通に採用されているから、 頭の片隅に入れておいてもらうと良いだろう、 と考えたからです。 同じように考えているかどうかは分かりませんが、 実際に Euler法とRunge-Kutta法の解説をしてお終い、 というテキストはとても多い。 (Euler法とRunge-Kutta法の「中間」の Heun 法の解説をしてあるテキストも あったりしますが、多分「原理を理解してもらう」という目的だと思います。)
一方で、最初から高性能な方法を紹介して勧める、という本もなくはないです (最近手に取った小川・宮路[26]はそういうノリでした)。 実際に Mathematica や MATLAB に “お任せ”していると、 (利用者本人が知らないうちに) そういう方法を使うことになるので、 「伝統的な」教え方を見直すときに来ているのかな、とも考えています。 G 節はその考えに基づいて書き始めました。