|
FreeMat
|
Section: Array Generation and Manipulations
Calculates the determinant of a matrix. Note that for all but very small problems, the determinant is not particularly useful. The condition number cond gives a more reasonable estimate as to the suitability of a matrix for inversion than comparing det(A) to zero. In any case, the syntax for its use is
y = det(A)
where A is a square matrix.
The determinant is calculated via the LU decomposition. Note that the determinant of a product of matrices is the product of the determinants. Then, we have that
where L is lower triangular with 1s on the main diagonal, U is upper triangular, and P is a row-permutation matrix. Taking the determinant of both sides yields
where we have used the fact that the determinant of L is 1. The determinant of P (which is a row exchange matrix) is either 1 or -1.
Here we assemble a random matrix and compute its determinant
--> A = rand(5); --> det(A) ans = -0.0489
Then, we exchange two rows of A to demonstrate how the determinant changes sign (but the magnitude is the same)
--> B = A([2,1,3,4,5],:);
--> det(B)
ans =
0.0489