ode_root
求解付きの常微分方程式ソルバ
呼び出し手順
[y, rd, w, iw] = ode("root", y0, t0, t [,rtol [,atol]], f [,jac], ng, g [,w,iw])
引数
- y0
実数ベクトルまたは行列 (初期条件).
- t0
実数スカラー (初期時間).
- t
実数ベクトル (解を計算する時間).
- f
外部ルーチン,すなわち,関数または文字列またはリスト.
- rtol, atol
実数定数または
y
と同じ大きさの実数ベクトル.- jac
外部ルーチン,すなわち,関数または文字列またはリスト.
- ng
整数.
- g
外部ルーチン,すなわち,関数または文字列またはリスト.
- y
実数のベクトルまたは行列.
- rd
実数ベクトル.
- w, iw
実数ベクトル.(入力/出力). See ode() optional output
説明
この構文により (最初の引数が"root"
)
ode
は, 状態量y(t)
が
面g(t,y)=0
と交差するまで
微分方程式dy/dt=f(t,y)
の解を計算します.
g
に面の方程式を指定します.
これは指定した構文を有する外部関数,または
指定したコール手順を有する
FortranサブルーチンまたはC関数(文字列)またはリストです.
g
が関数の場合,その構文は以下のようにする
必要があります:
z = g(t,y)
ただし, t
はスカラー実数 (時間),
y
は実数ベクトル (状態量). この関数は,
ng
個の拘束条件に対応する
大きさng
のベクトルを返します.
g
が文字列の場合,
この文字列は, FortranサブルーチンまたはC関数を指しており,
以下のようなコール手順となります: g(n,t,y,ng,gout)
.
ただし, ng
は拘束条件の数,
gout
はg
の値
(プログラムの出力)です.
g
は,
f
と同じ表記のリストです.
(odeのヘルプ参照).
出力 rd
は 1 x k
ベクトルです.
最初のエントリは,停止時間を含んでいます.
他のエントリは,g
のどの要素の符号が変わったのかを
示すエントリです.
k
が2より大きい場合,1以上の面
((k-1)
個の面)が同時に符号が変わったことを意味します.
他の引数と他のオプションは,
ode
と同じです.odeのヘルプを参照ください.
例
参照
- ode — 常微分方程式ソルバ
- ode_optional_output — ode ソルバのオプション出力の説明
- ode_discrete — 常微分方程式ソルバ, 離散時間シミュレーション
- dasrt — ゼロ交差するDAE
- daskr — ゼロ交差を有するDAEソルバー
Report an issue | ||
<< ode_optional_output | 微分方程式 | odedc >> |