すごくメモ帳

すごくほぼメモ帳ぐらいなブログ

微分方程式とオイラー法

$y'(x) = 2x$ の微分方程式を解く

\begin{eqnarray} \frac{\mathrm{d}y(x)}{\mathrm{d}x} &=& 2x\\ \mathrm{d}y(x) &=& 2x \mathrm{d}x\\ \int \mathrm{d} y(x) &=& \int 2x \mathrm{d} x\\ y(x) &=& x^{2} + \mathrm{C}\\ y(x) &=& x^{2} + y(0) \end{eqnarray}

$C$は積分定数

$y(0) = 0$のときは、$y = x^{2}$

オイラー法の反復式

オイラー法の反復式は、

\begin{eqnarray} y_{x+\Delta x} &=& y_{x} + \Delta x \cdot y'(x) \end{eqnarray}

オイラー法のプログラム

Ruby でプログラムを書いた

y = 0
dx = 0.01
func = -> x { 2 * x }

201.times do |i|
    x = i / 100.0
    y += dx * func.call(x)
    puts "%6.2f  %3.2f" % [y, x]
end

これを実行してみると、、、

  3.63  1.90
  3.67  1.91
  3.71  1.92
  3.74  1.93
  3.78  1.94
  3.82  1.95
  3.86  1.96
  3.90  1.97
  3.94  1.98
  3.98  1.99
  4.02  2.00

$x = 2$のとき、ほぼほぼ$y = 4$となり、微分方程式の解と一致する。