{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs)
Array T,X,U;
Real t0,t1,dt;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps)
Array T,X,U;
Real t0,t1,dt;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real eps;
{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,
dtsav)
Array T,X,U;
Real t0,t1,dt;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real eps,dtsav;
{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,
dtsav,dtmin)
Array T,X,U;
Real t0,t1,dt;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real eps,dtsav,dtmin;
{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,
dtsav,dtmin,dtmax)
Array T,X,U;
Real t0,t1,dt;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real eps,dtsav,dtmin,dtmax;
【詳細】
{T,X,U} = OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs)は,
diff_eqs()で定義される常微分方程式を 4 次のルンゲクッタのアルゴ
リズムを使い,各時刻における誤差が eps = 1.0E-6 以下になるよう
刻み幅を自動調節しながら解き,状態の時系列 X,外部信号の時系列
U,時間の系列 T を返す。
サンプリング時間 dt 毎に link_eqs() を呼び出し,diff_eqs() に渡す
外部信号 u を更新する。
刻み幅の最小値は,dtmin = EPS,最大値は dtmax = abs(t1-t0)/5,
データ保存の最小間隔は,dtsav = 1.0E-3 である。刻み幅を dtmin に
しても,誤差が eps 以下にならない場合,警告メッセージを表示し,
次の時刻へ進む。
OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps)は,各時刻における
誤差が eps になるよう刻み幅を調節しながら常微分方程式を解く。
OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,dtsav)は,保存する
データの間隔を dtsav 以上にし,データを間引く。
OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,dtsav,
dtmin)は,刻み幅の最小値を dtmin にする。
OdeHybridAuto(t0,t1,dt,x0,diff_eqs,link_eqs,eps,dtsav,
dtmin,dtmax)は,刻み幅の最大値を dtmax にする。
引数の意味を次に示す。
t0 | : | 初期時刻 |
t1 | : | 終端時刻 |
x0 | : | 初期状態 |
diff_eqs(t,x,u) | : | 時刻 t,状態 x,外部信号 u から状態の |
| | 微分を計算 |
link_eqs(t,x) | : | 時刻 t,状態 x から外部信号を計算する |
eps | : | 各時刻の打ち切り誤差の最大値 |
dtsave | : | データ保存の最小間隔 |
dtmin | : | 刻み幅の最小値 |
dtmax | : | 刻み幅の最大値 |
【例題】
ユーザーズマニュアル参照。
【参照】