The inverse and determinant of a given square matrix can be computed by applying iteration routine involved simultaneously matrix order expansion and condensation process. At the conclusion of iterations process, the expansion routine results in the inverse (iA) of the given matrix (A), and the condensation routine generates an array (p) of elements (Schur components), which gives the determinant (dA)of the given matrix.
[iA,dA,p] = inv_det_0.(A).
The routine code is very compact, and works for fairly large order matrices such as A = randn(99). The total number of multiplication/division operations is about N^3, which is need for the product of two NxN matrices.
The routine involves simple arithmatic division, and will fail if the divider becomes zeros. In such cases, we must interchange among rows and columns of the given matrix, before running the routine.