MATLAB ヘルプ センター
同等な連立 1 階微分方程式への高階数の連立微分方程式の簡約
[newEqs,newVars] = reduceDifferentialOrder(eqs,vars)
[newEqs,newVars,R] = reduceDifferentialOrder(eqs,vars)
[newEqs,newVars] = reduceDifferentialOrder(eqs,vars) は、高階数の連立微分方程式 eqs を、eqs の導関数を新しい変数で代替することにより、連立 1 階微分方程式 newEqs に書き換えます。ここで、newVars は、元の変数 vars をこれらの新しい変数で拡張した構成です。
newEqs
newVars
eqs
vars
例
[newEqs,newVars,R] = reduceDifferentialOrder(eqs,vars) は、元の変数 vars の導関数として新しい変数を newVars に示す行列 R を返します。
R
すべて折りたたむ
高階数 DAE を含む方程式を 1 階 DAE のみを含む方程式に簡約します。
2 階式を含む連立微分方程式を作成します。ここで、x(t) および y(t) は方程式の状態変数で、c1 および c2 はパラメーターです。方程式と変数を 2 つのシンボリック ベクトル (方程式をシンボリック方程式のベクトル、変数をシンボリック関数呼び出しのベクトル) として指定します。
x(t)
y(t)
c1
c2
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 次式に置き換えます。また、すべての方程式をシンボリック式として表します。
reduceDifferentialOrder
Dxt(t)
newEqs = (∂∂t Dxt(t)+sin(x(t))+y(t)-c1 cos(t)∂∂t y(t)-c2 x(t)Dxt(t)-∂∂t x(t))
(∂∂t Dxt(t)+sin(x(t))+y(t)-c1 cos(t)∂∂t y(t)-c2 x(t)Dxt(t)-∂∂t x(t))
newVars = (x(t)y(t)Dxt(t))
(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 = (∂∂t Dxt(t)-∂3∂t3 f(t)∂∂t Dytt(t)-∂2∂t2 f(t)Dxt(t)-∂∂t x(t)Dyt(t)-∂∂t y(t)Dytt(t)-∂∂t Dyt(t))
(∂∂t Dxt(t)-∂3∂t3 f(t)∂∂t Dytt(t)-∂2∂t2 f(t)Dxt(t)-∂∂t x(t)Dyt(t)-∂∂t y(t)Dytt(t)-∂∂t Dyt(t))
newVars = (x(t)y(t)Dxt(t)Dyt(t)Dytt(t))
(x(t)y(t)Dxt(t)Dyt(t)Dytt(t))
R = (Dxt(t)∂∂t x(t)Dyt(t)∂∂t y(t)Dytt(t)∂2∂t2 y(t))
(Dxt(t)∂∂t x(t)Dyt(t)∂∂t y(t)Dytt(t)∂2∂t2 y(t))
高階数の連立微分方程式。シンボリック方程式またはシンボリック式のベクトルとして指定します。
元の微分方程式の変数。x(t) など、シンボリックな関数または関数呼び出しのベクトルとして指定します。
例: [x(t),y(t)]
[x(t),y(t)]
連立 1 階微分方程式。シンボリック式の列ベクトルとして返されます。
拡張された変数のセット。シンボリック関数呼び出しの列ベクトルとして返されます。このベクトルには元の状態変数 vars に続き、eqs の高階数導関数に置き換わる、生成された変数が含まれます。
新しい変数と元の変数の関係。2 列のシンボリック行列として返されます。1 列目には新しい変数 newVars が含まれます。2 列目にはそれらの定義が元の変数 vars の導関数として含まれます。
R2014b で導入
findDecoupledBlocks | daeFunction | decic | incidenceMatrix | isLowIndexDAE | massMatrixForm | odeFunction | reduceDAEIndex | reduceDAEToODE | reduceRedundancies
findDecoupledBlocks
daeFunction
decic
incidenceMatrix
isLowIndexDAE
massMatrixForm
odeFunction
reduceDAEIndex
reduceDAEToODE
reduceRedundancies
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ