17.3.2: Computation
( \newcommand{\kernel}{\mathrm{null}\,}\)
Our definition of determinant can be applied to estimate the worst case for the time to evaluate an
Theorem
Let
can be found by expanding along any row or any column. - If two rows (or columns) of
are interchanged, changes sign. - The value of a determinant is unchanged if a multiple of one row (or column) of
is added to another row (or column) of . - If one row (or column) of a matrix
is multiplied by a constant then the value of is multiplied by whereis the identity matrix.
Based on these properties, here are a few corollaries.
Corollary
Let
- If a row (or column) of
consists entirely of zeros, then - If a matrix
has two equal rows (or columns) then - If any row (or column) of
is a scalar multiple of any other row (or column) of then , ifexists.
Example
We will apply some of these properties, most notably the first and third of Theorem
Our strategy will be to create a column that is mostly zero so that we can expand along that column and only need to compute one cofactor. That will be the 0th column. To do that we do the following row operations. We subtract row 0 from row 1, replacing row 1 with that result. Then we subtract six time row 0 from row 2, producing a new row 2. Finally, three times row 0 is subtracted from row 3 to produce a new row 3. The SageMath code below accomplishes this and produces a new matrix,
1 | A = matrix([[ 1 , 3 , 4 , 7 ],[ 2 , 3 , 4 , 4 ],[ 5 , 6 , 7 , 4 ],[ 3 , 3 , 7 , 5 ]]) |
2 | B = matrix([A[ 0 ],A[ 1 ] - 2 * A[ 0 ],A[ 2 ] - 5 * A[ 0 ],A[ 3 ] - 3 * A[ 0 ]]);B |
Expanding this matrix along the column zero, we need only compute a single three by three cofactor. We will go one step further and do row operations to get a matrix with zeros in rows 2 and 3 of column 1. The SageMath code below tells what we are doing.
1 | C = matrix([B[ 0 ],B[ 1 ],B[ 2 ] - 3 * B[ 1 ],B[ 3 ] - 2 * B[ 1 ]]);C |
We are at a point where we can do the final calculation very easily.
SageMath has a determinant function, det
, that we can use to verify this calculation:
1 | A = matrix([[ 1 , 3 , 4 , 7 ],[ 2 , 3 , 4 , 4 ],[ 5 , 6 , 7 , 4 ],[ 3 , 3 , 7 , 5 ]]) |
2 | det(A) |