next up previous contents
Next: 5.4 基本的な用語 Up: 5.3 常微分方程式の初期値問題の復習 Previous: 5.3.1 数学理論

5.3.2 数値解法

$I=[a,b]$ とする。$N\in\N$ に対し、$I$$N$ 個の小区間に分ける:

\begin{displaymath}
a=t_0<t_1<t_2<\cdots<t_N=b.
\end{displaymath}

このとき、各 $t_j$ における $x$ の値 $x(t_j)$ の近似値 $x_j$ を求める ことを考える方法を離散変数法 (discrete variable method)と呼ぶ。

区間の分割の仕方としては、例えば

\begin{displaymath}
h=\frac{b-a}{N}, \quad t_j=a+j h\quad\hbox{($j=0,1,\cdots,N$)}.
\end{displaymath}

のように等分割することが多い。
前進 Euler 法
微分係数 $x'(t)$ を前進差分商

\begin{displaymath}
\frac{x(t+h)-x(t)}{h}
\end{displaymath}

で近似して作った漸化式

\begin{displaymath}
x_{j+1}=x_j+h f(t_j,x_j) \quad\mbox{($j=0,1,2,\cdots$)}
\end{displaymath}

$\{x_j\}_{j=0}^N$ を計算する。
後退 Euler 法
前進差分商のかわりに後退差分商

\begin{displaymath}
\frac{x(t+h)-x(t)}{h}
\end{displaymath}

で近似して得られる漸化式

\begin{displaymath}
x_{j+1}=x_j+h f(t_{j+1},x_{j+1}) \quad\mbox{($j=0,1,2,\cdots$)}
\end{displaymath}

$\{x_j\}_{j=0}^N$ を計算する。$x_{j+1}$ を求めるために、方程式を解 く必要がある (こういう方法を一般に陰解法と呼ぶ)。
Runge-Kutta 法

\begin{displaymath}
\left\{
\begin{array}{lcl}
k_1&=& h f(t_j,x_j) \\
k_2&=&...
...,x_j+k_2/2) \\
k_4&=& h f(t_j+h,x_j+k_3)
\end{array}\right.
\end{displaymath}


\begin{displaymath}
x_{j+1}=x_j+\frac{1}{6}\left(k_1+2k_2+2k_3+k_4\right)
\end{displaymath}

$\{x_j\}_{j=0}^N$ を計算する方法を (古典的、あるいは $4$ 次の) Runge-Kutta 法と呼ぶ。


next up previous contents
Next: 5.4 基本的な用語 Up: 5.3 常微分方程式の初期値問題の復習 Previous: 5.3.1 数学理論
Masashi Katsurada
平成17年6月2日