reduceDifferentialOrder
同等な 1 階微分方程式系への高階数の微分方程式系の簡約
構文
説明
例
DAE 系の微分階数の簡約
高階数 DAE を含む系を 1 階 DAE のみを含む系に簡約します。
2 階式を含む微分方程式系を作成します。ここで、x(t)
および y(t)
は系の状態変数で、c1
および c2
はパラメーターです。方程式と変数を 2 つのシンボリック ベクトル (方程式をシンボリック方程式のベクトル、変数をシンボリック関数呼び出しのベクトル) として指定します。
syms x(t) y(t) c1 c2 eqs = [diff(x(t), t, t) + sin(x(t)) + y(t) == c1*cos(t),... diff(y(t), t) == c2*x(t)]; vars = [x(t), y(t)];
この系を書き換えてすべての方程式が 1 階微分方程式になるようにします。関数 reduceDifferentialOrder
は新しい変数 Dxt(t)
を導入することによって高階数 DAE を 1 次式に置き換えます。また、すべての方程式をシンボリック式として表します。
[newEqs, newVars] = reduceDifferentialOrder(eqs, vars)
newEqs = diff(Dxt(t), t) + sin(x(t)) + y(t) - c1*cos(t) diff(y(t), t) - c2*x(t) Dxt(t) - diff(x(t), t) newVars = x(t) y(t) Dxt(t)
生成された変数と元の変数の関係の表示
2 次および 3 次式を含む系を 1 階 DAE のみを含む系に簡約します。さらに、この系の元の変数を通して reduceDifferentialOrder
によって生成された変数を表す行列を返します。
2 階式および 3 階式を含む微分方程式系を作成します。ここで、x(t)
および y(t)
は系の状態変数です。方程式と変数を 2 つのシンボリック ベクトル (方程式をシンボリック方程式のベクトル、変数をシンボリック関数呼び出しのベクトル) として指定します。
syms x(t) y(t) f(t) eqs = [diff(x(t),t,t) == diff(f(t),t,t,t), diff(y(t),t,t,t) == diff(f(t),t,t)]; vars = [x(t), y(t)];
reduceDifferentialOrder
を 3 つの出力引数と共に呼び出します。この構文は 2 つの列をもつ行列 R
を返します。1 列目には新しい変数が含まれ、2 列目では新しい変数が元の変数 x(t)
および y(t)
の導関数として表されます。
[newEqs, newVars, R] = reduceDifferentialOrder(eqs, vars)
newEqs = diff(Dxt(t), t) - diff(f(t), t, t, t) diff(Dytt(t), t) - diff(f(t), t, t) Dxt(t) - diff(x(t), t) Dyt(t) - diff(y(t), t) Dytt(t) - diff(Dyt(t), t) newVars = x(t) y(t) Dxt(t) Dyt(t) Dytt(t) R = [ Dxt(t), diff(x(t), t)] [ Dyt(t), diff(y(t), t)] [ Dytt(t), diff(y(t), t, t)]
入力引数
出力引数
バージョン履歴
R2014b で導入