[SciPy-User] preconditioned conjugate gradient

Jake VanderPlas jakevdp at gmail.com
Tue Feb 23 14:14:53 EST 2010


Hello,
I'm looking for a method to solve a sparse linear equation A*x=b,
where A is a NxN symmetric scipy.sparse.LinearOperator object, and b
is a 1D numpy vector.  The obvious choice would be something like
scipy.sparse.linalg.cg.  The problem is, the condition number of A is
very large - on order of 10^26.  From a search through relevant
literature, I know that matlab's preconditioned conjugate gradient
(pcg) routine works well for the type of problem I'm dealing with.  Is
there any similar routine in scipy?
I've looked at scipy.sparse.linalg.eigen.lobpcg, which seems to be
along the lines of what I need.  I could use this to find the inverse,
but that would involve computing an NxN dense matrix of eigenvectors,
which will cause memory problems in my case.  Any help would be
appreciated!
   -Jake



More information about the SciPy-User mailing list