Symmetric Sparse Inversion

Symmetric Sparse Inversion


I am trying to find an inverse of a sparse matrix and then multiply it with another sparse matrix: A*inv(B). But I could not find any routine for making inverese of a sparse matrix. The only function that I found is inv() which I don not know is for sparse matrix or not and if it is  how can I input the sparse matrix.

Any help is appreciated. Thanks

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

A and B are symetric and I'm using kernel library in FORTRAN. 

To get inv(B), you can solve the system B*inv(B)=I, where I is the identity matrix. You can use the MKL PARDISO direct sparse solver for this purpose. Learn more about MKL PARDISO from the documentation:

Also, do you intend B as a sparse upper or lower triangular matrix? If so then it might be easier to use the "mkl_?csrsm" function. This can compute inv(B')*A, then take a transpose of the result to get what you need. See more about "mkl_?csrsm" here:

Vahid, what do you intend to do with the inverse, once you have found it?

This is an important question, and several articles exist wherein it is argued that, with a few exceptions, both efficiency and accuracy are sacrificed by forming the inverse explicitly.

Leave a Comment

Please sign in to add a comment. Not a member? Join today