【完全ガイド】常微分方程式(ODE)とは?種類・解法・実用例までわかりやすく解説📘🧮

物理・工学・生物・経済など、自然界のあらゆる現象を**「変化の法則」として数式化できるのが常微分方程式(ODE:Ordinary Differential Equation)**です。

この記事では、常微分方程式の基礎から解法、実用例、プログラミングによる数値解法までを、初学者にもわかりやすく解説します🧠✨


常微分方程式とは?

**常微分方程式(ODE)**は、1つの独立変数に対する関数の変化を記述する式です。

例:

dydx=3x2\frac{dy}{dx} = 3x^2

これは「関数 y(x)y(x) の変化率は 3x23x^2 に比例する」という意味です。


ODEの基本構造

dydx=f(x,y)\frac{dy}{dx} = f(x, y)

  • xx:独立変数(時間など)

  • yy:従属変数(位置・温度・人口など)

  • f(x,y)f(x, y):変化の法則を与える関数


ODEの分類👀

分類方法 種類
微分の次数 1階、2階、n階 d2ydx2+y=0\frac{d^2y}{dx^2} + y = 0
方程式の線形性 線形 / 非線形 y′+y=sin⁡(x)y' + y = \sin(x)(線形)
変数の数 常微分 / 偏微分 常微分:1変数、偏微分:複数変数

よく使われる初期値問題📍

多くの場合、「最初の状態」を与えて、それに従った関数の形を求めるという問題設定です。

例:

dydx=−2y,y(0)=5\frac{dy}{dx} = -2y,\quad y(0) = 5

このときの解は:

y(x)=5e−2xy(x) = 5e^{-2x}


解法いろいろ✏️

✅ 分離変数型

dydx=g(x)h(y)⇒1h(y)dy=g(x)dx\frac{dy}{dx} = g(x)h(y) \Rightarrow \frac{1}{h(y)}dy = g(x)dx

両辺を積分して解くタイプ。最も基本的な手法!


✅ 同次方程式・線形微分方程式

1階線形方程式:

dydx+P(x)y=Q(x)\frac{dy}{dx} + P(x)y = Q(x)

積分因子を用いて解きます:

μ(x)=e∫P(x)dx\mu(x) = e^{\int P(x) dx}


✅ 定数係数の2階線形微分方程式

y′′+ay′+by=0y'' + ay' + by = 0

→ 特性方程式(判別式の平方根)で解の形が決まる:

  • 実数解 → 指数関数

  • 複素数解 → 三角関数

  • 重解 → 指数 × x


常微分方程式の応用例📚

分野 使用例
物理 質点の運動方程式(F=maF=ma)
生物 ウイルス感染モデル(SIRモデル)
経済 複利計算、在庫モデル
電気回路 RLC回路の電流・電圧の変化
環境学 放射性物質の崩壊

PythonでODEを数値的に解く(scipy)

from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt

# dy/dx = -2y, y(0) = 5
def model(t, y):
    return -2 * y

sol = solve_ivp(model, [0, 5], [5], t_eval=[i*0.1 for i in range(50)])

plt.plot(sol.t, sol.y[0])
plt.xlabel("Time")
plt.ylabel("y(t)")
plt.title("Solution of dy/dx = -2y")
plt.grid()
plt.show()

🔹 solve_ivp() は常微分方程式を数値的に解いてくれる関数です。


まとめ📝

  • 常微分方程式は「変化の法則」を記述する最重要な数学モデル

  • 解法は「分離」「積分因子」「特性方程式」など多様

  • 現実世界の現象をモデル化・シミュレーションする基盤技術

  • Pythonや数値解析ツールを使えば複雑なODEも扱える!


応用記事として、

SIRモデルで感染症をODEでシミュレーションする方法
振動モデル(バネ・ダンパー系)の2階ODE解説
機械学習での微分方程式の活用(Physics-informed NN)

などもご用意できます📘 ご希望があればお知らせください!