常微分方程式

1階の線形常微分方程式

減衰解

1階の線形で減衰する常微分方程式 : du/dt=-u という形の方程式を計算するプログラム. この方程式の一般解は exp(-t) に比例する.

振動解

1階の線形で振動する常微分方程式 : du/dt=iωu という形の方程式を計算するプログラム. この方程式の一般解は exp(iωt) に比例する. 複素数を計算する問題としても使用できる.

2階の線形常微分方程式

微小振幅振り子

基礎物理学でよく考えられる単振動振り子の問題である. 線形の微分方程式 : d^2θ/dt^2=-ω^2θ という形で近似されている. この方程式には厳密解があり, 三角関数を一般解にもつ. ここでの計算は 4 次のルンゲクッタを用いている.

減衰振動

基礎物理学でよく考えられる減衰振動の問題である. 線形の微分方程式 : d^2θ/dt^2=-2γdθ/dt-ω^2θ という形で近似されている. この方程式には厳密解があり, 指数関数と三角関数の積を一般解にもつ. ここでの計算は 4 次のルンゲクッタを用いている. 基礎物理学でよく考えるパターンが以下の 3 つであるので, それぞれについて計算を行った.

  • ルンゲクッタによる数値解
    • この計算は, 初期位置 θ=1.0, 初速度 v=0.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
    • このプログラムは減衰係数と振動数を実行時に任意に指定することができる.
    • 実行例

強制振動

基礎物理学でよく考えられる強制振動の問題である. 線形の微分方程式 : 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 次のルンゲクッタを用いている.

  • ルンゲクッタによる数値解
    • この計算は, 初期位置 θ=1.0, 初速度 v=0.0 で計算している. しかし, 初速度などのパラメータを変化させることでいろいろ実験してみるとよいかもしれない.
    • 計算結果1
      • 初期位置と速度を適当に設定することで, このような振動解ではない動きをみせる. これは, 初速度大きいか, 振動を開始させる位置が高いことによって, 振動せず円運動をすることを示している. 角度が増加するのは, 同じ方向に何回も回転していることを表している.
    • 計算結果2
      • 同じ計算でも, 初期位置と初速度をそれほど大きいものにしなければ, 振動する振り子となる.

減衰振り子

ここでは, 有限の振幅をもつ振り子の運動方程式 : 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
  • プログラム

フーコー振り子

  • 計算方法は, 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 ファイルに載せてある)


1 つ上に戻る

メインページに戻る