next up previous contents
Next: Ode45Auto Up: リファレンスマニュアル Previous: Ode

  
Ode45

【目的】
Ode45 - RKF45法で常微分方程式を解く
【形式】
{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:データ保存の最小間隔
【例題】
ユーザーズマニュアル参照。
【参照】
rkf45(2.181), Ode45Auto(2.145), Ode45Hybrid(2.146), Ode45HybridAuto(2.147)


Masanobu KOGA 平成11年10月2日