MATHEMATICAチュートリアル

NDSolveの"StiffnessSwitching"メソッド

はじめに

メソッドの基本的な考えは,ノンスティッフなソルバとスティッフなソルバを自動的に切り換える手段を提供するものである.

オプションとオプション(「NDSolveのStiffnessTestメソッドオプション」で説明してある)は,いつ問題がスティッフであるかを検出する便利な方法を提供する.

メソッドは,が生成した失敗コードを捕え,別のソルバに切り換える.メソッドはオプションで指定されているメソッドを使い,スティッフなメソッドからノンスティッフなメソッドに切り替える.

は動的な次数および刻み幅選択を使って,精度の高い解を計算するための強力な手法である(詳細は「NDSolveの外挿法」を参照のこと).これはのデフォルト設定として使われている.

例題

便利なパッケージをロードする.
In[3]:=
Click for copyable input
これはスティッフな問題を選び,で指定されているデフォルトよりも長い積分時間を指定する.
In[5]:=
Click for copyable input
デフォルトの基本メソッドはスティッフな問題には適していないので,すぐに終了してしまう.
In[7]:=
Click for copyable input
Out[7]=
メソッドは終了せずに,スティッフなソルバを使って積分を継続する.
In[8]:=
Click for copyable input
Out[8]=

メソッドではデフォルトで1ペアの外挿法を使う.ノンスティッフなソルバは基本メソッドを,スティッフなソルバは基本メソッドを使う.

AccuracyGoalおよびPrecisionGoalの許容値が小さいときは,ノンスティッフなソルバに陽的ルンゲ・クッタ(Runge-Kutta)法を使った方がよい場合がある.

メソッドは,問題がスティッフであることが分かると終了してしまう.
In[9]:=
Click for copyable input
Out[9]=
これは法をのサブメソッドとして設定する.
In[10]:=
Click for copyable input
Out[10]=
で起るスティッフなソルバへの切換え,および,使用される刻み幅のプロットにより,スティッフなソルバの方がずっと大きいステップを取ることが分かる.
In[11]:=
Click for copyable input
Out[11]=

オプションの要約

オプション名
デフォルト値
Method{Automatic,Automatic}ノンスティッフなソルバ,スティッフなソルバに使うメソッドをそれぞれ指定する
"NonstiffTest"Automaticノンスティッフなソルバに切り替えるかどうかを決定するために使用するメソッドを指定する

メソッドのオプション

New to Mathematica? Find your learning path »
Have a question? Ask support »