File Exchange

## sparseinv: sparse inverse subset

version 1.2 (9 KB) by Tim Davis

### Tim Davis (view profile)

Computes a subset of inv(A) for a real sparse matrix A, using Takahashi's equations.

Updated 20 Nov 2014

inv(A) is often abused by MATLAB users, but there are times when you need to compute selected entries of inv(A).
The sparseinv function computes the sparse inverse subset of a sparse matrix A. These entries in the inverse subset correspond to nonzero entries in the factorization of A. They can be computed without computing all of the entries in inv(A), so this method is much faster and takes much less memory than inv(A). If A is symmetric and positive definite, then all entries of the diagonal of inv(A) are computed (as well as many off-diagonal terms). This version is restricted to real sparse matrices. A complex version is left for future work.

Example (err will be small):

A = west0479 ;
[Z, Zpattern] = sparseinv (A) ;
S = inv (A) ;
err = norm (Zpattern .* (Z - S), 1) / norm (S, 1)

### Cite As

Tim Davis (2019). sparseinv: sparse inverse subset (https://www.mathworks.com/matlabcentral/fileexchange/33966-sparseinv-sparse-inverse-subset), MATLAB Central File Exchange. Retrieved .

Haining Pan

### Haining Pan (view profile)

Thanks for sharing! I am working with complex sparse matrix, thus I am curious that which part I should modify. Would you please share some thought on how sparseinv_mex.c works?

Gabriel Agamennoni

### Gabriel Agamennoni (view profile)

Great submission! It's (almost) exactly what I was looking for. Is there a way to perform low-rank updates of the inverse subset (e.g. like cholupdate)?