ode78
構文
説明
[ は、t,y] = ode78(odefun,tspan,y0)tspan = [t0 tf] のときに、初期条件 y0 を使用して、連立微分方程式 を t0 から tf まで積分します。解の配列 y の各行は、列ベクトル t に返される値に対応します。
すべての MATLAB® ODE ソルバーは、 の形式の連立方程式、あるいは質量行列 を含む問題を解くことができます。ソルバーは類似した構文を使用します。ode23s ソルバーは、質量行列が定数である場合にのみ、これを含む問題を解くことができます。ode15s および ode23t は、特異質量行列をもつ方程式、つまり微分代数方程式 (DAE) を解くことができます。odeset の Mass オプションを使用して質量行列を指定します。
[ はさらに、(t,y) の関数 (イベント関数) がゼロになる点を求めます。出力の t,y,te,ye,ie] = ode78(odefun,tspan,y0,options)te はイベント時点、ye はイベント時点における解、ie はトリガーされたイベントのインデックスです。
各イベント関数に対して、ゼロで積分を終了するかどうかと、ゼロクロッシングの方向が重要かどうかを指定します。myEventFcn や @myEventFcn などの関数に odeset の 'Events' オプションを設定してこれを行い、対応する関数 [value,isterminal,direction] = myEventFcn(t,y) を作成します。詳細については、ODE のイベント検出を参照してください。
は、区間 sol = ode78(___)[t0 tf] の任意の点で解を計算する関数 deval で使用できる構造体を返します。前述の構文にある任意の入力引数の組み合わせが使用できます。
例
入力引数
出力引数
アルゴリズム
ode78 は 7 次の連続的な拡張を使用した Verner の「最も効率的」なルンゲ・クッタ 8(7) ペアの実装です。解は 8 次の結果で拡張されます。7 次の連続的な拡張では、内挿の必要なステップでのみ、odefun の 4 つの追加評価が必要です。
参照
[1] Verner, J. H. “Numerically Optimal Runge–Kutta Pairs with Interpolants.” Numerical Algorithms 53, no. 2–3 (March 2010): 383–396. https://doi.org/10.1007/s11075-009-9290-3.
拡張機能
バージョン履歴
R2021b で導入




