ヘルプ センターヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
質量行列と、半線形微分代数方程式系の右辺の抽出
[M,F] = massMatrixForm(eqs,vars)
[M,F] = massMatrixForm(eqs,vars) は、質量行列 M および 1 階半線形微分代数方程式 (DAE) 系の方程式の右辺 F を返します。vars の変数の導関数を一切含まない eqs の代数方程式はその質量行列 M の空の行に対応します。
M
F
eqs
vars
質量行列 M および方程式の右辺 F はこの形で表されます。
M(t,x(t))x˙(t)=F(t,x(t)).
例
すべて折りたたむ
微分代数方程式の半線形系を質量行列形式に変換します。
次の微分代数方程式系を作成します。ここで、関数 x1(t) および x2(t) は系の状態変数を表します。また、系にはシンボリック パラメーター r と m、および関数 f(t,x1,x2) も含まれます。方程式と変数を 2 つのシンボリック ベクトル (方程式をシンボリック方程式のベクトル、変数をシンボリック関数呼び出しのベクトル) として指定します。
x1(t)
x2(t)
r
m
f(t,x1,x2)
syms x1(t) x2(t) f(t,x1,x2) r m eqs = [m*x2(t)*diff(x1(t), t) + m*t*diff(x2(t), t) == f(t, x1(t), x2(t)),... x1(t)^2 + x2(t)^2 == r^2]; vars = [x1(t),x2(t)];
この系の質量行列形式を求めます。
[M,F] = massMatrixForm(eqs, vars)
M = (m x2(t)m t00)
(m x2(t)m t00)
F = (f(t,x1(t),x2(t))r2-x1(t)2-x2(t)2)
(f(t,x1(t),x2(t))r2-x1(t)2-x2(t)2)
数値ソルバー ode15s を使用してこの系を求解します。ode15s を使用する前に、系のシンボリック パラメーターに値 m = 100、r = 1、f(t,x1,x2) = t + x1*x2 を代入します。また、状態変数 x1(t)、x2(t) を matlabFunction に受け入れ可能な変数 Y1、Y2 に置き換えます。
ode15s
m = 100
r = 1
f(t,x1,x2) = t + x1*x2
matlabFunction
Y1
Y2
syms Y1 Y2 M = subs(M, [vars, m, r, f], [Y1, Y2, 100, 1, @(t,x1,x2) t + x1*x2]); F = subs(F, [vars, m, r, f], [Y1, Y2, 100, 1, @(t,x1,x2) t + x1*x2]);
次の関数ハンドル MM および FF を作成します。これらの関数ハンドルを odeset および ode15s の入力引数として使用できます。これらの関数では状態変数が列ベクトルとして指定されている必要があります。
MM
FF
odeset
MM = matlabFunction(M, 'vars', {t, [Y1; Y2]}); FF = matlabFunction(F, 'vars', {t, [Y1; Y2]});
ode15s を使用して方程式系を解きます。
opt = odeset('Mass', MM, 'InitialSlope', [0.005;0]); ode15s(FF, [0,1], [0.5; 0.5*sqrt(3)], opt)
Copyright 2014 The MathWorks, Inc
半線形 1 階 DAE の系。シンボリック方程式またはシンボリック式のベクトルとして指定します。
状態変数。x(t) など、シンボリックな関数または関数呼び出しのベクトルとして指定します。
x(t)
例: [x(t),y(t)] または [x(t);y(t)]
[x(t),y(t)]
[x(t);y(t)]
系の質量行列。シンボリック行列として返されます。行数は eqs の方程式の数に対応し、列数は vars の変数の数に対応します。
方程式の右辺。シンボリック式の列ベクトルとして返されます。このベクトルの要素の数は eqs の方程式の数と一致します。
R2014b で導入
findDecoupledBlocks | daeFunction | decic | incidenceMatrix | isLowIndexDAE | matlabFunction | odeFunction | ode15s | odeset | reduceDAEIndex | reduceDAEToODE | reduceDifferentialOrder | reduceRedundancies
findDecoupledBlocks
daeFunction
decic
incidenceMatrix
isLowIndexDAE
odeFunction
reduceDAEIndex
reduceDAEToODE
reduceDifferentialOrder
reduceRedundancies
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office