数値解析 第9回 (3) 高階微分方程式
状況設定
- $x$ : 変数
- $Y=Y(x)$ : $x$ の未知関数
- $F(x,v_1,v_2,\cdots,v_N)$ : $N+1$ 変数の関数
( プログラミング言語のライブラリで計算できるもの )
とするとき、次の形の微分方程式の数値解を求めよ :
$$
Y^{(N)} = F(x, Y,Y',\cdots,Y^{(N-1)})
$$
たとえば 2 階微分方程式
$$Y''-Y'+xY=e^x
\tag{$\ast$}
$$
は
$Y''=e^x-xY+Y'$
と変形できますので、$N=2$,
$F(x,v_1,v_2)=e^x-xv_1+v_2$
の場合です。
解法
$Y$, $Y'$, $\cdots$、$Y^{(N-1)}$ を縦に並べた $N$ 次元ベクトル値関数
$\dps{
\vvv
=\left(
\begin{array}{c}
v_1 \\ v_2 \\ \vdots \\ v_N \\
\end{array}
\right)
=\left(
\begin{array}{c}
Y \\ Y' \\ \vdots \\ Y^{(N-1)} \\
\end{array}
\right)
}$
を考えると
$\dps{
\vvv'
=\left(
\begin{array}{c}
Y' \\ Y'' \\ \vdots \\ Y^{(N-1)} \\ Y^{(N)} \\
\end{array}
\right)
=\left(
\begin{array}{c}
Y' \\ Y'' \\ \vdots \\ Y^{(N-1)} \\ F(x,Y,Y',\cdots,Y^{(N-1)}) \\
\end{array}
\right)
=\left(
\begin{array}{c}
v_2 \\ v_3 \\ \vdots \\ v_N \\ F(x,v_1,v_2,\cdots,v_N) \\
\end{array}
\right)
}$
となり、右辺のベクトル値関数を $f(x, \vvv)$ として前ページの場合に帰着できます。
たとえば上述の $(\ast)$ は
$\dps{
f\left(x,\mat{c}{v_1 \\v_2}\right)
=\mat{c}{v_2 \\ e^x-xv_1+v_2}
}$
とします。