Euler 法の次に何が来るか:Runge-Kutta と陰的方法の入口
mathdifferential-equationsnumerical-methodslecture
導入
このページの核心は、Euler 法の欠点を精度と安定性に分解し、それぞれに対して Runge-Kutta 法と陰的方法が対応することを確認することである。
何を解くページか
対象は初期値問題
y'=f(t,y),\qquad y(t_0)=y_0
である。Euler 法は y_{n+1}=y_n+h f(t_n,y_n) であるが、局所情報を 1 回しか利用しないため精度が低く、剛性のある問題では安定性も不足する。
ここで精度と安定性を分離することが重要である。精度は「真の解にどれだけ近いか」を測る。安定性は「本来減衰すべき成分を、数値計算が人工的に増幅しないか」を測る。高次精度の方法でも、刻み幅が安定条件を破れば破綻する。
Runge-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}
で与えられる。目的は、区間の途中の傾きも反映し、Taylor 展開の高次項まで整合させることである。
陰的方法の発想
Backward Euler 法は
y_{n+1}=y_n+h f(t_{n+1},y_{n+1})
である。右辺に未知の y_{n+1} が含まれるため、各段階で方程式を解く必要がある。その代わり、y'=ay,\ a<0 のような減衰問題で安定性が強い。
この方法を選択する理由は、新しい時刻の傾きを用いることで、減衰する解の向きを数値的に尊重しやすくなるためである。代償として、線型問題では連立一次方程式、非線型問題では Newton 法などの反復解法が必要になる。
具体例
y'=-10y に対して 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 となるため、符号を反転しながら絶対値が増加する。これは微分方程式の性質ではなく、数値法が生成した人工的挙動である。
選択基準
| 状況 | 候補 | 理由 |
| 滑らかで非剛性の問題 | Runge-Kutta 法 | 少ない実装負担で高次精度を得やすい |
| 急速減衰と遅い成分が混在する剛性問題 | 陰的方法 | 安定性を確保しやすい |
| 精度検証が必要な計算 | 刻み幅の半減比較 | 誤差の減少傾向を確認できる |
どこまで成り立つか
Runge-Kutta 法は精度を改善する標準手段であるが、剛性の強い問題では刻み幅を極端に小さく要求することがある。陰的方法は安定性に強いが、各段階の非線型方程式を解く負担が増加する。