MATLAB Function Reference    
odefile

ODE ソルバに対する微分方程式問題の定義

詳細

odefile は、コマンドや関数ではありません。解こうとする方程式のシステムを定義するM-ファイルの作成方法を記述した、ヘルプのエントリです。この定義は、MATLABの ODE ソルバの使用の最初のステップです。MATLABのドキュメントでは、この M-ファイルは、どのような名前を付けても、odefile として参照されます。

つぎの型のいずれかの微分方程式システムを定義するために、odefile を使います。

または、

です。ここで、

ODEファイルは、使う必要がなくても、引数 t y を指定しなければなりません。デフォルトでは、ODEファイルは、y と同じ長さの列ベクトルを出力しなければなりません。

ODE suite のすべてのソルバは、 を解くことができます。但し、ode23s は除きます。これは、定質量行列の問題のみに対応しているものです。ode15sode23t は、 の型をしたいくつかの微分代数方程式(DAEs)を解くことができます。

微分方程式システムの定義では、ODE M-ファイルで完全な初期値問題(IVP) を指定することができ、コマンドラインでの時間と初期値ベクトルの入力を省略できます(例題 を参照)。

ODEファイルのテンプレートの使用法

Notes

  1. ODE ファイルは、ODE ソルバからベクトル t y を受け取り、y と同じ長さの列ベクトルを出力しなければなりません。オプションの入力引数 flag は、ODE ファイルにより戻される出力タイプ(質量行列、ヤコビアン等)を決定します。
  2. ソルバは、様々な時刻で微分方程式システムを評価するために、ODE ファイルを繰り返し、コールします。これは必要な情報です。ユーザは、解くべき ODE システムを定義しなければなりません。
  3. switch ステートメントは、ODE ファイルがソルバに適切な情報を渡すことができるように、必要な出力のタイプを指定します(ステップ 4 - 9 を参照) 。
  4. デフォルトの初期条件('init') の case 文では、ODE ファイルは、ソルバに基本情報(時間区間、初期条件、オプション)を出力します。ユーザが、この case 文を省略した場合、コマンドラインですべての基本情報を入力しなければなりません。
  5. 'jacobian'の case 文では、ODE ファイルはソルバにヤコビアン行列を出力します。スティッフなソルバ ode15s, ode23s, ode23tode23tb の性能を改良したいときに、このcase 文を適用します。
  6. 'jpattern' の case 文では、ODE ファイルはソルバにヤコビアンスパースパターン行列を出力します。スティッフなソルバに対して数値的にスパースなヤコビアン行列を作成したいときにのみ、このcase 文を適用します。
  7. 'mass' の case文では、ODE ファイルはソルバに質量行列を出力します。つぎのいずれかの型のシステムを解く場合のみ、このcase 文を適用します。
  8. 'events'の case 文では、ODE ファイルはソルバにイベントの位置選定を行うのに必要な値を出力します。Events プロパティが on に設定されると、ODE ソルバはゼロまで、あるいはゼロから、ゼロを通過する際の変化に対するベクトル event の要素を検証します。論理ベクトル isterminal の対応する要素が 1 に設定されていたら、ゼロとの交差が検出されたときに積分は中止されます。ベクトル direction の要素は、-1, 1, または、0 で、それぞれ対応するイベントが減少、増加、ゼロとの交差が検出されなければならない、ということを指定しています。
  9. 認識されない flag は、エラーを生じます。

例題

van der Pol の方程式 は、つぎの連立 1次微分方程式と等価です。

M-ファイル

は、この方程式システムを定義します(µ = 1)。

初期値(時間 0 での)が y(1) = 2y(2) = 0 のとき、時間区間 [0 20] で van der Pol システムを解くために、つぎのステートメントを使います。

M-ファイル内で完全な初期値問題 (IVP) を指定するために、つぎのように vdp1 を書き直します。

コマンドラインから引数を入力しなくても IVP を解くことができます。

この例では、関数 ode23 は省略された引数を与えるために、M-ファイル vdp1 を検証します。一度 optionsを定義するために odeset をコールすると、

も実行し、コマンドラインで与えられたoptions は、M-ファイルで指定された対応するオプションを書き換えることに注意してください(odesetを参照)。

参考

MATLAB Version 5 は、ODE ソルバとそれに関連した関数 ode23, ode45, ode113, ode15s, ode23s, ode23t, ode23tb, odeget, odeset に対するヘルプを用意しています。

MATLAB コマンドラインで、つぎのように入力してください。
more on, type function, more off
Version 5 のヘルプは、Version 6 のヘルプに続きます。


 ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb odeget