常微分方程式の数値解法
数値積分スキームの安定性はしばしばそれを初期値問題
d y d t = λ y , y ( 0 ) = 1 {\displaystyle {\frac {dy}{dt}}=\lambda y,\ \ y(0)=1}
( λ {\displaystyle \lambda } は複素数の定数)に適用することで定量化される。問題のスキームを一定の刻み幅 h {\displaystyle h} で適用することで得られる数列 { y n } n = 0 , 1 , ⋯ {\displaystyle \{y_{n}\}_{n=0,1,\cdots }} について、それが極限 n → ∞ {\displaystyle n\to \infty } で 0 に収束するような h λ {\displaystyle h\lambda } がなす複素平面上の領域を絶対安定領域と呼ぶ。
この結果はすべての整合的な一段法が h → 0 {\displaystyle h\to 0} で漸近的に安定であることを意味するものの、ただし現実的に可能な h {\displaystyle h} で1段法が安定であることは必ずしも保証されない(#安定性節を参照)。
積分スキーム Φ {\displaystyle \Phi } としては以下のものが知られている。
オイラー法: Φ ( t , η ; h ) = f ( t , η ) {\displaystyle \Phi (t,\eta ;h)=f(t,\eta )} とするもの。これは1次精度のスキームである。
ホイン法(英語版): Φ ( t , η ; h ) = [ f ( t , η ) + f ( t + h , η + h f ( t , η ) ) ] / 2 {\displaystyle \Phi (t,\eta ;h)=[f(t,\eta )+f(t+h,\eta +hf(t,\eta ))]/2} とするもの。これは2次精度のスキームであり、関数 f {\displaystyle f} の評価を2回必要とする。
古典的ルンゲ=クッタ法: これは4次精度のスキームであり、関数 f {\displaystyle f} の評価を4回必要とする。
このうち古典的ルンゲ=クッタ法は適用可能範囲の広さやプログラミングの容易さのために広く用いられている(ただし Press らは著書において計算速度の観点から古典的ルンゲ=クッタ法に否定的に言及している)。
区間 [ t 0 , t ] {\displaystyle [t_{0},t]} の厳密解を y ( t ) {\displaystyle y(t)} とする。一段法として知られるクラスの数値解法では、離散化した時刻 t i = t 0 + i h {\displaystyle t_{i}=t_{0}+ih} ( h = ( t − t 0 ) / n {\displaystyle h=(t-t_{0})/n} ) での厳密解 y ( t i ) {\displaystyle y(t_{i})} の近似値 η i {\displaystyle \eta _{i}} を
η i + 1 = η i + h Φ ( t i , η i ; h ) {\displaystyle \eta _{i+1}=\eta _{i}+h\Phi (t_{i},\eta _{i};h)}
という漸化式によって定める。関数 Φ {\displaystyle \Phi } の選択が数値積分スキームを選択することに対応する。離散化した時刻の差分 h = t i + 1 − t i {\displaystyle h=t_{i+1}-t_{i}} を刻み幅あるいはステップサイズと呼ぶ。なお、ここでは時間ステップ h = t i + 1 − t i {\displaystyle h=t_{i+1}-t_{i}} は一定としたが、これを動的に決定する適応刻み(英語版)という手法もある。
常微分方程式の数値解法 (じょうびぶんほうていしきのすうちかいほう、英: Numerical methods for ODEs) は、数値解析において常微分方程式を数値的に解く技術の総称である。
ローレンツ方程式
レスラー方程式
ダフィング方程式