数値解析 第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} }$
とします。