微分方程式とオイラー法
$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$となり、微分方程式の解と一致する。