ODEソルバのオプションを設定する
odeoptions()
この関数はODEソルバに様々なオプションを設定する
コマンドを対話的に表示します.
グローバル変数
%ODEOPTIONS はオプションを設定します.
![]() | ode 関数は,この変数が存在するかどうかを調べ,
存在する場合にはこれを使用します.
デフォルト値を使用するには,この変数を消去してください.
この変数を作成するには,
%ODEOPTIONS=odeoptions()命令
を実行する必要があります. |
変数 %ODEOPTIONS は以下の要素を
有するベクトルです:
[itask, tcrit, h0, hmax, hmin, jactyp, mxstep, maxordn, maxords, ixpr, ml, mu].
デフォルト値は以下となります:[1,0,0,%inf,0,2,500,12,5,0,-1,-1]
これらの要素の意味を以下に示します.
itask sets the integration mode:
odeの出力の最初行で指定した) メッシュ点で計算tcritなしに通常の計算を行うtcritを指定せずに,1ステップ進め,戻るtcrit は上記のように
itaskが 4または5の場合のみ使用されます.h0 最初に試すステップhmax ステップの最大値hmin ステップの最小値jactype やヤコビアンのプロパティを以下のように設定します:
"adams" または "stiff"
のみ)"adams" または "stiff"
のみ)mlおよびmu参照)ml および mu
参照)maxordn は非スティッフの最大次数で, 最大
12です.maxords はスティッフの最大次数で, 最大5です.ixpr は出力レベルで, 0 または 1です.ml,mu
jactype が 4 または 5の場合,
ml および
mu はバンド行列のヤコビアンの
上部および下部の半分のバンド幅です:
このバンドは,
i-ml <= j <=
ny-1となるi,jで定義されます.
jactype が 4の場合,ヤコビアン関数は
ml+mu+1 x ny
(ただし,yのny=dim,
ydot=f(t,y))の行列J
を返す必要があります.
Jの1列目はmu個のゼロの後に
df1/dy1, df2/dy1,
df3/dy1, ...
(1+ml個のゼロでないエントリ)が続きます.
2列目は, mu-1個のゼロの後に
df1/dx2,
df2/dx2, などが続きます.
以下の例では, 常微分方程式
dy/dt=y^2-y sin(t)+cos(t) を,
初期条件 y(0)=0で解きます.
解は各メッシュ点で保存します.
function ydot=f(t, y) ydot = y^2 - y*sin(t) + cos(t) endfunction %ODEOPTIONS = [2,0,0,%inf,0,2,500,12,5,0,-1,-1]; y = ode(0, 0, %pi, f); plot(y(1,:), y(2,:)) clear %ODEOPTIONS | ![]() | ![]() |
