{T,X} = Ode45(t0,t1,x0,diff_eqs)
Array T,X,U;
Real t0,t1;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
{T,X,U} = Ode45(t0,t1,x0,diff_eqs,link_eqs)
Array T,X,U;
Real t0,t1;
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} = Ode45(t0,t1,x0,diff_eqs,link_eqs,h)
Array T,X,U;
Real t0,t1;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real h;
{T,X,U} = Ode45(t0,t1,x0,diff_eqs,link_eqs,h,dtsav)
Array T,X,U;
Real t0,t1;
Matrix x0;
Matrix diff_eqs(t,x,u); (Real t; Matrix x,u;)
Matrix link_eqs(t,x); (Real t; Matrix x;)
Real h,dtsav;
【詳細】
{T,X} = Ode45(t0,t1,x0,diff_eqs)は,関数diff_eqs()で定義される
常微分方程式を RKF45法使い,きざみ幅 h = 4.0E-2 で解き,状態の
時系列 X と時間の系列 T を返す。各時刻における打ち切り誤差の
オーダーは h6 である。
{T,X,U} = Ode45(t0,t1,x0,diff_eqs,link_eqs)は,link_eqs()の
計算結果を外部信号 u として,関数 diff_eqs() に渡しながら,常微分
方程式を解き,状態の時系列 X,外部信号の時系列 U,時間の系列 T を
返す。
Ode45(t0,t1,x0,diff_eqs,link_eqs,h)は,きざみ幅 h で常微分方程式を
解く。
Ode45(t0,t1,x0,diff_eqs,link_eqs,h,dtsav)は,保存するデータの間隔を
dtsav 以上にし,データを間引く。
引数の意味を次に示す。
t0 | : | 初期時刻 |
t1 | : | 終端時刻 |
x0 | : | 初期状態 |
diff_eqs(t,x,u) | : | 時刻 t,状態 x,外部信号 u から状態の微分を計算 |
link_eqs(t,x) | : | 時刻 t,状態 x から外部信号を計算する |
h | : | きざみ幅 |
dtsave | : | データ保存の最小間隔 |
【例題】
ユーザーズマニュアル参照。
【参照】