Main Content

det

Determinant of symbolic matrix

Description

example

B = det(A) returns the determinant of the square matrix of symbolic scalar variables A.

example

B = det(A,'Algorithm','minor-expansion') uses the minor expansion algorithm to evaluate the determinant of A.

example

B = det(M) returns the determinant of the square symbolic matrix variable M. (since R2021a)

Examples

collapse all

Compute the determinant of a symbolic matrix.

syms a b c d
M = [a b; c d];
B = det(M)
B = ad-bca*d - b*c

Compute the determinant of a matrix that contain symbolic numbers.

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

13sym(1/3)

Create a symbolic matrix that contains polynomial entries.

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)[sym(1), a*x^2 + x, x; sym(0), a*x, sym(2); 3*x + 2, a*x^2 - 1, sym(0)]

Compute the determinant of the matrix using minor expansion.

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

Since R2021a

This example shows how to compute the determinant of a block matrix. For example, find the determinant of a 4-by-4 block matrix

M=[A0CB]

where A, B, and C are 2-by-2 submatrices.

Use symbolic matrix variables to represent the submatrices in the block matrix.

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

(A02,2CB)[[symmatrix('A', [2 2]), symmatrix(zero(2, 2))]; [symmatrix('C', [2 2]), symmatrix('B', [2 2])]]

Find the determinant of the matrix M.

det(M)
ans = 

det(A02,2CB)det([[symmatrix('A', [2 2]), symmatrix(zero(2, 2))]; [symmatrix('C', [2 2]), symmatrix('B', [2 2])]])

Convert the result from symbolic matrix variable to symbolic scalar variables using symmatrix2sym.

D1 = simplify(symmatrix2sym(det(M)))
D1 = A1,1A2,2-A1,2A2,1B1,1B2,2-B1,2B2,1(A1_1*A2_2 - A1_2*A2_1)*(B1_1*B2_2 - B1_2*B2_1)

Check if the determinant of matrix M is equal to the determinant of A times the determinant of B.

D2 = symmatrix2sym(det(A)*det(B))
D2 = A1,1A2,2-A1,2A2,1B1,1B2,2-B1,2B2,1(A1_1*A2_2 - A1_2*A2_1)*(B1_1*B2_2 - B1_2*B2_1)
isequal(D1,D2)
ans = logical
   1

Input Arguments

collapse all

Input, specified as a square numeric matrix, or matrix of symbolic scalar variables.

Data Types: single | double | sym

Input, specified as a square symbolic matrix variable (since R2021a).

Data Types: symmatrix

Tips

  • Matrix computations involving many symbolic scalar variables can be slow. To increase the computational speed, reduce the number of symbolic scalar variables by substituting the given values for some variables.

  • The minor expansion method is generally useful to evaluate the determinant of a matrix that contains many symbolic scalar variables. This method is often suited to matrices that contain polynomial entries with multivariate coefficients.

References

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

See Also

|

Introduced before R2006a