Search code examples
matrix3ddeterminants

Confirm I understand matrix determinants


Basically I have been trying to forge an understanding of matrix maths over the last few weeks and after reading (and re-reading) many maths heavy articles and documentation I think I have an adequate understanding, but I just wanted to make sure!

The definitions i have ended up with are:

/*
    Minor
    -----
    -A determinant of a sub matrix
    -The sub matrix used to calculate a minor can be obtained by removing more then one row/column from the original matrix
    -First minors are minors of a sub matrix where only the row and column of a single element have been removed

    Cofactor
    --------
    -The (signed) minor of a single element from a matrix
     ie. the minor of element 2,3 is the determinant of the submatrix, of the matrix, defined by removing row 2 and column 3

    Determinant
    -----------
    -1. Choose any single row or column from a Matrix.
     2. For each element in the row/column, multiply the value of the element against the First Minor of that element.
     3. This result is then multiplied by (-1 raised to the power of the elements row index + its column index) which will give the result of step 2 a sign.
     4. You then simply sum all these results to get the determinant (a real number) for the Matrix.
*/

Please let me know of any holes in my understanding?

Sources
http://en.wikipedia.org /Cofactor_(linear_algebra) & /Minor_(linear_algebra) & /Determinant http://easyweb.easynet.co.uk/~mrmeanie/matrix/matrices.htm
http://www.geometrictools.com/Documentation/LaplaceExpansionTheorem.pdf (the most helpful)
Geometric tools for computer graphics (this may have missing pages, i have the full copy)


Solution

  • Sounds like you understand determinants -- now go forth and write code! Try writing a solver for simultaneous linear equations in 3 or more variables, using Cramer's Rule.

    Since you tagged this question 3dgraphics, matrix and vector multiplication might be a good area to explore next. They come up everywhere in 3d graphics programming.