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)
Converted to a toolbox.
minor fix to sparseinv.m for sparse symmetric positive definite matrices.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.