[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