Euler 法を超える数値解法:Runge-Kutta 法と陰的方法
mathdifferential-equationsnumerical-methodslecture
1導入
この講義では、Euler 法の欠点を精度と安定性に分解し、それぞれに対して Runge-Kutta 法と陰的方法が対応することを確認する。
2対象とする初期値問題
対象は初期値問題
y'=f(t,y),\qquad y(t_0)=y_0
である。Euler 法は y_{n+1}=y_n+h f(t_n,y_n) であるが、局所情報を 1 回しか利用しないため精度が低い。硬い(剛性)問題とは、精度だけなら大きい刻みでもよいのに、陽的方法の安定性が非常に小さい刻みを要求する問題である。
ここで精度と安定性を分離することが重要である。精度は「厳密解にどれだけ近いか」を測る。安定性は「本来減衰すべき成分を、数値計算が人工的に増幅しないか」を測る。高次精度の方法でも、刻み幅が安定条件を破れば破綻する。
3Runge-Kutta 法の発想
Runge-Kutta 法は、区間内の複数の傾きを評価し、それらを平均して次点を構成する。代表である 4 次 Runge-Kutta 法は
\begin{aligned}
k_1&=f(t_n,y_n),\\
k_2&=f(t_n+h/2,y_n+hk_1/2),\\
k_3&=f(t_n+h/2,y_n+hk_2/2),\\
k_4&=f(t_n+h,y_n+hk_3),\\
y_{n+1}&=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)
\end{aligned}\begin{aligned}
k_1&=f(t_n,y_n),\\
k_2&=f(t_n+h/2,y_n+hk_1/2),\\
k_3&=f(t_n+h/2,y_n+hk_2/2),\\
k_4&=f(t_n+h,y_n+hk_3),\\
y_{n+1}&=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)
\end{aligned}
で与えられる。厳密値から 1 歩だけ進めた値と厳密解の差を、ここでは一歩欠損と呼ぶ。右辺が解の近傍で必要な階数だけ滑らかで、数値解がその領域に留まるなら、一歩欠損は O(h^5) である。この滑らかさから得られる y に関する局所 Lipschitz 性で誤差伝播を抑えると、固定有限区間の大域誤差は O(h^4) になる。この意味で「4 次」であり、漸近的な収束域では h を半分にすると大域誤差は約 1/16 になる。
4陰的方法の発想
Backward Euler 法は
y_{n+1}=y_n+h f(t_{n+1},y_{n+1})
である。右辺に未知の y_{n+1} が含まれるため、各段階で方程式を解く必要がある。その代わり、y'=ay,\ a<0 のような減衰問題で安定性が強い。
この方法を選択する理由は、新しい時刻の傾きを用いることで、減衰する解の向きを数値的に尊重しやすくなるためである。代償として、各段階の代数方程式に解が存在するか、一意かを確認し、非線型なら近似値を反復更新する必要がある。Newton 法は、そのために導関数で局所線型化する代表的な反復法である。ただし、根の一意性だけから Newton 反復の収束は従わない。尺度化した残差、更新量、反復上限を問題に応じて監視する。
5具体例
y'=-10y,\ y(0)=1 に対して Forward Euler 法は y_{n+1}=(1-10h)y_n である。h=0.3 では倍率が -2 となり不安定である。一方、Backward Euler 法は
y_{n+1}=y_n-10h y_{n+1}
より
y_{n+1}=\frac{1}{1+10h}y_n
となり、任意の h>0 で減衰する。
この例では、厳密解 e^{-10t} は単調減衰する。Forward Euler 法で h=0.3 を採用すると、倍率が -2 となるため、符号を反転しながら絶対値が増加する。これは微分方程式の性質ではなく、数値法が生成した人工的挙動である。
6選択基準
複素数 \lambda\in\mathbb{C} をもつ試験方程式 y'=\lambda y に数値法を適用したときの一歩の増幅率(倍率)を R(z)、z=h\lambda と書く。\operatorname{Re}z は z の実部である。A 安定性とは、左半平面 \operatorname{Re}z<0 の全域で |R(z)|\le 1 となる性質である。A 安定であり、さらに左半平面内で |z|\to\infty のとき R(z)\to0 となる強い減衰性を L 安定性 と呼ぶ。Backward Euler 法はその両方を満たす。
| 状況 | 候補 | 理由 |
| 滑らかで非剛性の問題 | 4 次 Runge-Kutta 法 | 少ない実装負担で高次精度を得やすい |
| 急速減衰と遅い成分が混在する硬い問題 | A 安定性や L 安定性をもつ陰的方法 | 負の実軸方向の減衰成分を安定に扱いやすい |
| 精度検証が必要な計算 | 刻み幅の半減比較 | 漸近収束域での誤差減少を経験的に確認する |
7適用範囲と限界
Runge-Kutta 法は精度を改善する標準手段であるが、硬い問題では刻み幅を極端に小さく要求することがある。すべての陰的方法が無条件に安定なのではなく、安定領域を方法ごとに確認する。刻み半減比較も単独の厳密誤差保証ではない。
8演習リンク
data/exercise/math/differential-equations/numerical-ode-methods.exercise.n.md
9前の講義
data/lecture/math/differential-equations/direction-fields-euler-method-error-and-stability.lecture.n.md
10次の講義
data/lecture/math/differential-equations/analytic-numerical-and-qualitative-ode-methods.lecture.n.md