Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

equationsToMatrix

線形方程式の行列形式への変換

説明

[A,b] = equationsToMatrix(eqns) は方程式 eqns を行列形式に変換します。eqns は、symvar によって eqns 内で検出されるすべての変数の線形方程式系でなければなりません。

[A,b] = equationsToMatrix(eqns,vars)eqns を行列形式に変換します。ここで、eqnsvars 内で線形でなければなりません。

A = equationsToMatrix(___) は方程式系の係数行列のみを返します。

すべて折りたたむ

線形方程式系を行列形式に変換します。equationsToMatrix は、symvar を使用して方程式内で変数を自動検出します。返された係数行列は symvar で決定された変数の順番に従います。

syms x y z
eqns = [x+y-2*z == 0,
        x+y+z == 1,
        2*y-z == -5];
[A,b] = equationsToMatrix(eqns)
A = 

(11-211102-1)

b = 

(01-5)

vars = symvar(eqns)
vars = (xyz)

その他の変数の順番を指定することにより、係数行列の配置を変更できます。

vars = [x,z,y];
[A,b] = equationsToMatrix(eqns,vars)
A = 

(1-211110-12)

b = 

(01-5)

線形方程式系を、独立変数を指定して行列形式に変換します。これは、方程式が一部の変数でのみ線形である場合に役立ちます。

この系に対しては、系が r では線形でないため、変数を [s t] として指定します。

syms r s t
eqns = [s-2*t+r^2 == -1
        3*s-t == 10];
vars = [s t];
[A,b] = equationsToMatrix(eqns,vars)
A = 

(1-23-1)

b = 

(-r2-110)

単一の出力引数を指定して、方程式の係数行列のみ返します。

syms x y z
eqns = [x+y-2*z == 0,
        x+y+z   == 1,
        2*y-z   == -5];
vars = [x y z];
A = equationsToMatrix(eqns,vars)
A = 

(11-211102-1)

時間の関数である次の線形方程式系を考えます。

2x(t)+y(t)+z(t)=2u(t)-x(t)+y(t)-z(t)=v(t)x(t)+2y(t)+3z(t)=-10

方程式系を宣言します。

syms x(t) y(t) z(t) u(t) v(t)
eqn1 = 2*x + y + z == 2*u;
eqn2 = -x + y - z == v;
eqn3 = x + 2*y + 3*z == -10;
eqn = [eqn1; eqn2; eqn3]
eqn(t) = 

(2x(t)+y(t)+z(t)=2u(t)y(t)-x(t)-z(t)=v(t)x(t)+2y(t)+3z(t)=-10)

方程式の独立変数 x(t)y(t)、および z(t) をシンボリック ベクトル vars として指定します。関数 equationsToMatrix を使用して方程式系を行列形式に変換します。

vars = [x(t); y(t); z(t)];
[A,b] = equationsToMatrix(eqn,vars)
A = 

(211-11-1123)

b = 

(2u(t)v(t)-10)

関数 linsolve を使用して、方程式の行列形式を解きます。

X = linsolve(A,b)
X = 

(10u(t)9-v(t)9+2094u(t)9+5v(t)9-109-2u(t)3-v(t)3-103)

関数 u(t)=cos(t) および v(t)=sin(2t)z(t) 解を評価します。z(t) 解をプロットします。

zSol = subs(X(3),[u(t) v(t)],[cos(t) sin(2*t)])
zSol = 

-sin(2t)3-2cos(t)3-103

fplot(zSol)

Figure contains an axes object. The axes object contains an object of type functionline.

入力引数

すべて折りたたむ

線形方程式。シンボリックな方程式または式のベクトルとして指定します。シンボリック方程式は、x + y == 1 のように、== 演算子により定義されます。シンボリック式の場合、equationsToMatrix は右辺が 0 であると仮定します。

方程式は vars の線形方程式でなければなりません。

eqns 内の独立変数。シンボリック変数またはシンボリック関数のベクトルとして指定します。

出力引数

すべて折りたたむ

線形方程式系の係数行列。シンボリック行列として指定します。

方程式の右辺を含むベクトル。シンボリック行列として指定します。

詳細

すべて折りたたむ

線形方程式系の行列表現

線形方程式系

a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm

は、行列方程式 Ax=b として表すことができます。ここで、A は係数行列です。

A=(a11a1nam1amn)

b は、方程式の右辺を含むベクトルです。

b=(b1bm)

バージョン履歴

R2012b で導入