Main Content

det

シンボリック行列の行列式

説明

B = det(A) は、シンボリック数、シンボリック スカラー変数、シンボリック関数の正方行列 A の行列式を返します。

B = det(A,'Algorithm','minor-expansion') は小行列式展開アルゴリズムを使用して、A の行列式を評価します。

B = det(M) は、シンボリック行列変数またはシンボリック行列関数 M の行列式を返します。

すべて折りたたむ

シンボリック スカラー変数を含む行列の行列式を計算します。

syms a b c d
A = [a b; c d];
B = det(A)
B = ad-bc

シンボリック数を含む行列の行列式を計算します。

A = sym([2/3 1/3; 1 1]);
B = det(A)
B = 

13

多項式エントリを含むシンボリック行列を作成します。

syms a x 
A = [1, a*x^2+x, x;
     0, a*x, 2;
     3*x+2, a*x^2-1, 0]
A = 

(1ax2+xx0ax23x+2ax2-10)

小行列式展開を使用して行列の行列式を計算します。

B = det(A,'Algorithm','minor-expansion')
B = 3ax3+6x2+4x+2

4 行 4 列のブロック行列の行列式を計算します。

M=[A02,2CB]

ここで、AB、および C は 2 行 2 列の部分行列です。02,2 という表記は、2 行 2 列のゼロの部分行列を表しています。

シンボリック行列変数を使用して、ブロック行列の部分行列を表します。

syms A B C [2 2] matrix
Z = symmatrix(zeros(2))
Z = 02,2
M = [A Z; C B]
M = 

(A02,2CB)

行列 M の行列式を求めます。

det(M)
ans = 

det(A02,2CB)

symmatrix2symを使用して、結果をシンボリック行列変数からシンボリック スカラー変数に変換します。

D1 = simplify(symmatrix2sym(det(M)))
D1 = A1,1A2,2-A1,2A2,1B1,1B2,2-B1,2B2,1

行列 M の行列式が、A の行列式と B の行列式を乗算したものと等しいかどうかを確認します。

D2 = symmatrix2sym(det(A)*det(B))
D2 = A1,1A2,2-A1,2A2,1B1,1B2,2-B1,2B2,1
isequal(D1,D2)
ans = logical
   1

行列多項式 a0 I2+a1A+a2A2 の行列式を計算します。ここで、A は 2 行 2 列の行列です。

行列 A と係数 a0a1a2 をシンボリック行列変数として作成します。Aa0a1a2 をパラメーターとして、行列多項式をシンボリック行列関数 f として作成します。

syms A [2 2] matrix
syms a0 a1 a2 [1 1] matrix
syms f(A,a0,a1,a2) [2 2] matrix keepargs
f(A,a0,a1,a2) = a0*eye(2) + a1*A + a2*A^2
f(A, a0, a1, a2) = a0I2+a1A+a2A2

det を使用して f の行列式を求めます。結果は symfunmatrix 型のシンボリック行列関数になります。

fDet = det(f)
fDet(A, a0, a1, a2) = deta0I2+a1A+a2A2

行列値 A=[1 -2;-3 4] と係数値 a0=-1a1=2a2=3 の行列式を評価します。結果は、symmatrix 型のシンボリック行列変数になります。

Aval = [1 -2; -3 4];
fEval = fDet(Aval,-1,2,3)
fEval = 

det2Σ1+3Σ12-I2where  Σ1=(1-2-34)

symmatrix2sym を使用して、評価された行列式をシンボリック行列変数からシンボリック数に変換します。与えられた値に対する評価済みの行列式は -128 になります。

symmatrix2sym(fEval)
ans = -128

入力引数

すべて折りたたむ

入力行列。シンボリック数の正方行列、シンボリック スカラー変数の正方行列、またはシンボリック関数の正方行列として指定します。

データ型: single | double | sym | symfun

入力行列。シンボリック正方行列変数またはシンボリック正方行列関数として指定します。

データ型: symmatrix | symfunmatrix

ヒント

  • 多くのシンボリック変数が含まれる行列計算は低速になる可能性があります。計算速度を向上させるには、特定の値を変数に代入することでシンボリック変数の数を減らします。

  • 一般に、小行列式展開法は、多くのシンボリック スカラー変数が含まれる行列の行列式を評価するのに役立ちます。多くの場合、この手法は多変数係数を持つ多項式エントリが含まれる行列に適しています。

参照

[1] Khovanova, T. and Z. Scully. "Efficient Calculation of Determinants of Symbolic Matrices with Many Variables." arXiv preprint arXiv:1304.4691 (2013).

バージョン履歴

R2006a より前に導入

すべて展開する

参考

|