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 | ![]() | ![]() |