Inverse of a matrix

PROBLEM
Calculation of the matrix X. which is the matrix inverse of a square matrix A., i. e., A.*X.=X.*A.=I., where I. is the identity matrix and operator * denotes matrix multiplications.

ALGORITHM
To find the inverse of a matrix column by column, we can use LUDCMP and LUBKSB routines. The total operation count is N**3

IMPLEMENTATION
Unit: fragment of a program

Interface: LUDCMP and LUBKSB

Result: Matrix X. will now contain the inverse of the original matrix A.

 /* read an input N by N matrix A. */ ... call LUDCMP N do J = 1 to N   B. = 0; B.J = 1; call LUBKSB N   do I = 1 to N; X.I.J = B.I; end end

EXAMPLE

 N = 3 A.1.1 = 1; A.1.2 = -4; A.1.3 = -3 A.2.1 = 1; A.2.2 = -5; A.2.3 = -3 A.3.1 = -1; A.3.2 = 6; A.3.3 = 4 /* Matrix A. will destroyed by LUDCMP */ do I = 1 to N   do J = 1 to N     Y.I.J = A.I.J   end end call LUDCMP N do J = 1 to N   B. = 0; B.J = 1; call LUBKSB N   do I = 1 to N; X.I.J = B.I; end end /* X. is the inverse of the original A., proof?    X.*A.=Identity matrix */ do I = 1 to N   Row = ""   do K = 1 to N     C.I.K = 0     do J = 1 to N       C.I.K = C.I.K + Y.I.J * X.J.K     end     Row = Row C.I.K   end   say Row end exit ...

CONNECTIONS
Linear Algebraic Equations
Determinant of a matrix
LU decomposition
Solution of linear algebraic equations
Matrix multiplication

Literature
Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P. Numerical Recipes in C : the art of scientific computing
- 2nd ed. University Press, Cambridge, 1992