常微分方程式の初期値問題は、よくある問題で、 色々なプログラミング言語 (処理系) でシミュレーションできる。
現象数理学科で3年ゼミを受講している人は、 すでに常微分方程式の初期値問題の(数値) シミュレーションをしたことがあるはずである。 そのときにマスターして気に入っている方法があるならば、それを使って構わない。
私はずっと以前は、 Euler 法や Runge-Kutta 法を用いた C言語のプログラムを書く方法を学生に勧めていたが (やり方はネットで見られる桂田 [4] で説明してある)、 その後は Java や Ruby を使ったりして、 最近のゼミでは Mathematica や Python を使って卒業研究をした学生が多い。
偏微分方程式を解くことを考えると、 ゼミの中で Julia の利用を増やしたいと考えているが、 常微分方程式ならば Python で十分というか、 もしかすると今一番のお勧めかもしれない。
ここでは、Python と Julia での例を見せることにする。
どちらの場合も、最初に解こうとしている微分方程式を一階正規系、つまり
問題としては、Malthusモデル、単振動の方程式、Lorenz 方程式を取り上げる。 これは良く知られた問題であること、相空間の次元がそれぞれ , , であり、ある種の網羅性があることによる。