equal_l2’s blog

※記載されている内容の正確性は保証しませんが、間違いを指摘していただければ直します。

常微分方程式の数値解法(2) Euler法

実際に1次の常微分方程式を解く。

基本

\def\disp{\displaystyle}
次のような1次の常微分方程式を考える。
\disp\frac{dx}{dt} = f(t,x)

このような常微分方程式に対して、ある種の数値解法の公式は漸化式の形で表される。
いま、次のような記法を導入する。
t_n = t_0 + nh
x_n = x(t_n)
ここで、nは一般には整数であるが、便宜上は非整数を使ってもよい。

これを用いて、各差分による微分近似を書き直すと、
\displaystyle\begin{eqnarray}
\frac{dx}{dt} 
&=& \frac{x_{n+1} - x_n}{h} \\
&=& \frac{x_n - x_{n-1}}{h} \\
&=& \frac{x_{n+\frac12}-x_{n-\frac12}}{h}
\end{eqnarray}
このとき、常微分方程式
\disp\frac{dx}{dt} = f(t_n,x_n)
となる。

このときのhを、積分の刻み幅とも呼ぶ。
hは小さいほうが微分近似が正確になるから、積分の時にも小さいほうがいい。

陽的Euler法

前進差分による微分の近似は、
\disp\frac{dx}{dt} = \frac{x_{n+1} - x_n}{h}
これと、
\disp\frac{dx}{dt} = f(t_n,x_n)
より、
\disp f(t_n,x_n) = \frac{x_{n+1} - x_n}{h}
ゆえに、
\underline{x_{n+1} = x_n + f(t_n,x_n)h}

陰的Euler法

後退差分で、上と同様のことを行うと、
x_{n} = x_{n-1} + f(t_n,x_n)h

マイナスがあるのが嫌なので、n \to n+1とすれば、
\underline{x_{n+1} = x_n + f(t_{n+1},x_{n+1})h}

この式は、x_{n+1}を求めるのに、fの引数としてx_{n+1}が使われている。
fxに陽に依存する場合は、実際にfの式を代入して、x_{n+1}についての式に整理しなければならない。

このように、実際に個々のfを代入しないとx_{n+1}に関する式が得られないものを陰解法 (implicit method)という。
対して、どのようなfについても同じようにx_{n+1}が得られるものを、陽解法(explicit method)という。

面倒な陰解法が何の役に立つのかというと、陽解法に比べて安定性が高いのである。
安定性が高いとは、刻み幅が大きいときでも解析解との乖離が小さいという意味である。
安定性については別の機会に詳しく説明する。

台形法

上の2つの方法の式を辺々足す。つまり、
\begin{array}{rl}
x_{n+1} & = x_n + f(t_n,x_n)h \\
\ +) x_{n+1} & = x_n + f(t_{n+1},x_{n+1})h \\ \hline
2 x_{n+1} & = 2 x_n + h \left( f(t_n,x_n) + f(t_{n+1},x_{n+1}) \right) 
\end{array}

辺々を2で割れば
\disp\underline{x_{n+1} = x_n + \frac{h}{2}\left( f(t_n,x_n) + f(t_{n+1},x_{n+1}) \right)}

これも陰解法である。他の2法に比べて精度が良い。

各解法の図的イメージ

陽的オイラー法は、高さf(t_n,x_n)、幅hの矩形の面積を足し合わせていくことで積分を近似する。
f:id:equal_l2:20150524011810p:plain

陰的オイラー法は、高さf(t_{n+1},x_{n+1})、幅hの矩形の面積を足し合わせていくことで積分を近似する。
f:id:equal_l2:20150524011825p:plain

台形法は、上底f(t_n,x_n)、下底f(t_{n+1},x_{n+1})、高さhの台形の面積を足し合わせていくことで積分を近似する。
f:id:equal_l2:20150524011818p:plain

台形法の精度の良さがイメージできただろうか。

陰解法を陽解法にする

陰解法は、陽的オイラー法を使って陽解法にすることができる。
右辺のx_{n+1}を陽的オイラー法による推定値\tilde{x}_{n+1} = x_n + f(t_n,x_n)hに置き換えれば良い。
この方法で陽解法にした台形法は、特にホイン法(Heun's method)と呼ばれる。