NDSolveの"StiffnessSwitching"メソッド
はじめに
"StiffnessSwitching"メソッドの基本的な考えは,ノンスティッフなソルバとスティッフなソルバを自動的に切り換える手段を提供するものである.
"StiffnessTest"オプションと"NonstiffTest"オプション(「NDSolveのStiffnessTestメソッドオプション」で説明してある)は,いつ問題がスティッフであるかを検出する便利な方法を提供する.
"StiffnessSwitching"メソッドは,"StiffnessTest"が生成した失敗コードを捕え,別のソルバに切り換える."StiffnessSwitching"メソッドは"NonstiffTest"オプションで指定されているメソッドを使い,スティッフなメソッドからノンスティッフなメソッドに切り替える.
"Extrapolation"は動的な次数および刻み幅選択を使って,精度の高い解を計算するための強力な手法である(詳細は「NDSolveの外挿法」を参照のこと).これは"StiffnessSwitching"のデフォルト設定として使われている.
例題
"StiffnessSwitching"メソッドではデフォルトで1ペアの外挿法を使う.ノンスティッフなソルバは基本メソッド"ExplicitModifiedMidpoint"を,スティッフなソルバは基本メソッド"LinearlyImplicitEuler"を使う.
AccuracyGoalおよびPrecisionGoalの許容値が小さいときは,ノンスティッフなソルバに陽的ルンゲ・クッタ(Runge-Kutta)法を使った方がよい場合がある.
オプションの要約
オプション名
|
デフォルト値
| |
Method | {Automatic,Automatic} | ノンスティッフなソルバ,スティッフなソルバに使うメソッドをそれぞれ指定する |
"NonstiffTest" | Automatic | ノンスティッフなソルバに切り替えるかどうかを決定するために使用するメソッドを指定する |
"StiffnessSwitching"メソッドのオプション