- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi,

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

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

To get inv(B), you can solve the system ** B*inv(B)=I**, where

**is the identity matrix. You can use the MKL PARDISO direct sparse solver for this purpose. Learn more about MKL PARDISO from the documentation: http://software.intel.com/en-us/node/470282**

*I*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: http://software.intel.com/en-us/node/468602#D4C63016-4279-4E47-8ECA-DC04B2161C5E

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page