10. 常微分方程式の初期値問題

はじめに

初期値問題

1 階の常微分方程式は次の形に書くことができる.
\[
y’ = f(t, y(t))
\] ここで, \(y(t)\) は未知の関数である. 常微分方程式の初期値問題 (initial value problem) は, 初期点 \(t_0\) における関数値 \(y(t_0)\) が与えられたとき, 最終点 \(t_f\) における値 \(y(t_f)\) を求める問題である. 初期点における関数値を与える次式は初期条件 (initial condition) とよばれる.
\[
y(t_0) = y_0
\]

1 階の連立方程式

1 階の常微分方程式の初期値問題は, スカラー \(y\) をベクトル \(\boldsymbol{y}\) に変えてそのまま連立方程式に拡張することができる.
\[
\begin{align}
& \boldsymbol{y’} = \boldsymbol{f}(t, \boldsymbol{y}) \\
& \boldsymbol{y}(t_0) = \boldsymbol{y_0} \\
\end{align}
\] 例えば, 2 変数 (ベクトルの要素数が 2) の場合について書き下すと次のようになる.
\[
\begin{align}
& y_1′ = f_1(t, y_1, y_2) \\
& y_2′ = f_2(t, y_1, y_2) \\
\end{align}
\] この場合, 初期条件も 2 つ必要になる.
\[
\begin{align}
& y_1(t_0) = {y_1}_0 \\
& y_2(t_0) = {y_2}_0 \\
\end{align}
\]

高階の常微分方程式

2 階の常微分方程式は 1 階の連立常微分方程式の形にして扱うことができる. 例えば, 次の方程式を考える.
\[
y” = f(t, y, y’)
\] これは, \(y_1 = y\), \(y_2 = y’\) とおけば, 次のように 1 階の連立常微分方程式になる.
\[
\begin{align}
& y_1′ = y_2 \\
& y_2′ = f(t, y_1, y_2) \\
\end{align}
\] この場合, 2つの初期条件が必要になる.
\[
\begin{align}
& y_1(t_0) = y(t_0) = y_0 \\
& y_2(t_0) = y'(t_0) = y_0′ \\
\end{align}
\] 同様にしてさらに高階の常微分方程式を解くこともできる.

なお, 次のような特別な形をした 2 階常微分方程式 (\(f\) が \(y’\) に依存しない場合) については 1 階の連立方程式に変換せずに直接解く方法があり, 10.2.7 で説明する.
\[
\begin{align}
& y^{\prime\prime} = f(t, y) \\
& y(t_0) = y_0, y'(t_0) = y_0′ \space (初期条件) \\
\end{align}
\]

目次

10.1 常微分方程式の初期値問題の基本数値解法
10.2 ステップ幅の自動調節, 密出力, 2 階常微分方程式
10.3 スティフな方程式, 微分代数方程式
10.4 実用プログラムのベンチマーク


本章の参考文献

[1] 一松信「数値解析」(1982) 朝倉書店
[2] 名取亮「数値解析とその応用」(1990) コロナ社
[3] 三井斌友「常微分方程式の数値解法」(2003) 岩波書店
[4] U.M.アッシャー, 他「常微分方程式と微分代数方程式の数値解法」(2006) 培風館
[5] E. Hairer, 他「常微分方程式の数値解法 I」(2007) シュプリンガー・ジャパン
[6] E. Hairer, 他「常微分方程式の数値解法 II」(2008) シュプリンガー・ジャパン