[SciPy-User] solving large sparse linear system with Laplacian matrix
Gael Varoquaux
gael.varoquaux at normalesup.org
Fri Oct 30 05:46:35 EDT 2009
On Fri, Oct 30, 2009 at 05:28:13AM -0400, David Warde-Farley wrote:
> I'm not sure they exist in scipy.sparse.linalg, but looking into your
> problem a little further it appears that several options exist in
> LAPACK (but are not wrapped in SciPy, yet). Conveniently, they have
> built-in support for multiple right-hand-sides.
Ha, I didn't know that LAPACK had support for sparse representations of
multi-diagonal matrices. Cool!
> Solve a general banded system of linear equations:
> http://www.netlib.org/lapack/double/dgbsv.f
> Convert a symmetric banded matrix to symmetric tridiagonal form:
> http://www.netlib.org/lapack/double/dsbtrd.f
> The tridiagonal form is useful because you can then use this
> specialized routine for solving symmetric tridiagonal systems:
> http://www.netlib.org/lapack/double/dptsv.f
> So, if both memory and performance are at issue, I'd recommend looking
> into wrapping dsbtrd and dptsv with f2py (these are for doubles, hence
> the 'd' - if you're interested in single precision use the 's'
> versions). Note that they require you pass in the band matrix in a
> particular compressed format, which is kid of a pain, but on the other
> hand _will_ save you space over CSR or anything like that. The layout
> you need to use for symmetric band matrices is near the bottom of this
> page:
> http://www.netlib.org/lapack/lug/node124.html
Any chance there might be something useful in pysparse? That would remove
the wrapping work.
Gaël
More information about the SciPy-User
mailing list