odeoptions
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]
これらの要素の意味を以下に示します.
itasksets the integration mode:- 1: 指定した時間で通常の計算を行う
- 2 :
(
odeの出力の最初行で指定した) メッシュ点で計算 - 3 : 1内部メッシュ点で1ステップ進め,戻る
- 4 : オーバーシュート
tcritなしに通常の計算を行う - 5 :
tcritを指定せずに,1ステップ進め,戻る
- 判定時間
tcritは上記のようにitaskが 4または5の場合のみ使用されます. h0最初に試すステップhmaxステップの最大値hminステップの最小値jactypeやヤコビアンのプロパティを以下のように設定します:- 0: 関数反復, ヤコビアンを用いない
(
"adams"または"stiff"のみ) - 1 : ユーザ提供の完全なヤコビアン
- 2 : 内部的に生成した対角ヤコビアン
- 3: 内部的に生成した対角ヤコビアン
(
"adams"または"stiff"のみ) - 4 : ユーザが提供したバンド行列のヤコビアン (
以下の
mlおよびmu参照) - 5 : 内部生成されたバンド行列のヤコビアン
(以下の
mlおよびmu参照)
- 0: 関数反復, ヤコビアンを用いない
(
maxordnは非スティッフの最大次数で, 最大 12です.maxordsはスティッフの最大次数で, 最大5です.ixprは出力レベルで, 0 または 1です.ml,mujactypeが 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

参照
- ode — 常微分方程式ソルバ
| Report an issue | ||
| << odedc | 微分方程式 | Elementary Functions >> |
