常微分方程式
1階の線形常微分方程式
減衰解
1階の線形で減衰する常微分方程式 : du/dt=-u という形の方程式を計算するプログラム. この方程式の一般解は exp(-t) に比例する.
振動解
1階の線形で振動する常微分方程式 : du/dt=iωu という形の方程式を計算するプログラム. この方程式の一般解は exp(iωt) に比例する. 複素数を計算する問題としても使用できる.
- オイラー法
- 計算結果
- このプログラムは, 安定性を満たすことができないので, 徐々に発散する.
- 後退オイラー法
- 計算結果
- 安定性を満たす計算手法であるが, 徐々に減衰している.
- クランク=ニコルソン法
- 計算結果
- この計算手法は, 振動方程式を計算するのに適している.
2階の線形常微分方程式
微小振幅振り子
基礎物理学でよく考えられる単振動振り子の問題である. 線形の微分方程式 : d^2θ/dt^2=-ω^2θ という形で近似されている. この方程式には厳密解があり, 三角関数を一般解にもつ. ここでの計算は 4 次のルンゲクッタを用いている.
- ルンゲクッタによる数値解
- この計算は, 初期位置 θ=1.0, 初速度 v=0.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
- 計算結果
- 2 位のアダムズ-バッシュフォース法による数値解
- この計算は, 初期位置 θ=1.0, 初速度 v=0.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
- 計算結果
減衰振動
基礎物理学でよく考えられる減衰振動の問題である. 線形の微分方程式 : d^2θ/dt^2=-2γdθ/dt-ω^2θ という形で近似されている. この方程式には厳密解があり, 指数関数と三角関数の積を一般解にもつ. ここでの計算は 4 次のルンゲクッタを用いている. 基礎物理学でよく考えるパターンが以下の 3 つであるので, それぞれについて計算を行った.
強制振動
基礎物理学でよく考えられる強制振動の問題である. 線形の微分方程式 : d^2θ/dt^2=-ω^2θ+focos(ω0t) という形で近似されている. この方程式には厳密解があり, 指数関数と三角関数の積を一般解にもつ. ここでの計算は 4 次のルンゲクッタを用いている. 基礎物理学でよく考えるパターンが以下の 3 つであるので, それぞれについて計算を行った.
- ルンゲクッタによる数値解
- この計算は, 初期位置 θ=0.0, 初速度 v=1.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
- このプログラムは減衰係数と振動数を実行時に任意に指定することができる.
- 実行例
2階の非線形常微分方程式
有限振幅振り子
基礎物理学でよく考えられる単振動振り子の問題であるが, これは実際は微小振幅として線形の微分方程式 : d^2θ/dt^2=-ω^2θ という形で近似されている. しかし, 有限の振幅をもつ振り子の運動方程式は, 非線形方程式 : d^2θ/dt^2=-ω^2 sin(θ) という形になっている. よって, ここではこの非線形微分方程式を数値的に解くことを考える. この方程式には厳密解があり, 楕円関数で記述される. ここでの計算は 4 次のルンゲクッタを用いている.
減衰振り子
ここでは, 有限の振幅をもつ振り子の運動方程式 : d^2θ/dt^2=-ω^2 sin(θ) -gamma dθ/dt を考える.
- ルンゲクッタによる数値解
- この計算は, 初期位置 θ=1.0, 初速度 v=10.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
- 計算結果1
Duffing 方程式
- 考える方程式は以下
- d^2x/dt^2=-δdx/dt+x-x^3+γcos(ωt)
- 計算方法は, 4 次のルンゲクッタ
- 初期条件は, x=1, y=1
- 各パラメータは, δ=0.2, γ=0.3, ω=1.0
- プログラム
- 計算結果
- これは, dx/dt-x 平面を描画したもの.
- 計算結果
フーコー振り子
- 計算方法は, 4 次のルンゲクッタ
- 初期条件は, 位置が振り子の原点, 速度が北東方向に 0.14 .
- 各パラメータは, コリオリパラメータが 0.015, 振り子の長さが 10000, 重力加速度が 9.8 として計算
- 計算プログラム
- 計算結果
慣性振動
- 計算方法は, 4 次のルンゲクッタ
- 初期条件は, 計算開始地点を原点とし, 初速度は北東方向に 1.4.
- 各パラメータは, コリオリパラメータが 5.0, 地衡流速度は 東向きに 10, 北向きに 1 で流れている.
- 計算プログラム
- 計算結果
1 階の非線形常微分方程式
3 元連立微分方程式 (ローレンツ方程式)
- 考える方程式は以下
- dx/dt=-ax+ay
- dy/dt=-xz+bx-y
- dz/dt=xy-cz
- 計算方法は, 4 次のルンゲクッタ
- 初期条件は, x=0, y=4, z=28
- 各パラメータは, a=10, b=28, c=8/3
- プログラム
- 計算結果
- これは, x-z 平面を描画したもので, 蝶の羽の模様が描かれる
- 計算結果
- 以上の計算結果を x-y, x-z, y-z の 3 方向から同時に描画できるようにしたプログラムが こちら .
謝辞
ローレンツ方程式の蝶の模様を出力するために, 同研究室の佐々木さんから助言をいただきました.
2 元連立微分方程式 (ロトカ─ヴォルテラ方程式)
- 考える方程式は以下
- dx/dt=x(a-by)
- dy/dt=-y(c-dx)
- 計算方法は, 4 次のルンゲクッタ
- 初期条件は, x=1, y=1
- 各パラメータは, a=10, b=28, c=8/3, d=10
- プログラム
計算手法による安定性
以下には, 各種常微分方程式の数値計算手法で, その数値解の安定性を図に表す. また, 詳細な解説 PDF も併載した.(参考文献に関しては, PDF ファイルに載せてある)
- 解説 PDF
- 各種安定性(斜線部分が解の発散しない安定な領域)
- 以下は, 陽解法
- 以下は, 陰解法