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
Faddejev A.K., Sominskij J.S. Sbornik zadac po vyssej algebre
Nauka, Moskva 1964


cover contents index main page

last modified 8th August 2001
Copyright 2000-2001 Vladimir Zabrodsky
Czech Republic.

mail