# [SciPy-user] Least squares for sparse matrices?

Andy Fraser afraser@lanl....
Fri Nov 21 15:01:57 CST 2008

```Thank you for the quick response.  I spent some time thinking and
looking things up, and I think I understand your suggestions (with the
exception of preconditioning.)  I can afford to do a sparse LU.  But I
think that your suggestion does not provide a control equivalent to
the rcond argument to numpy.linalg.lstsq.

>>>>> "NB" == Nathan Bell <wnbell@gmail.com> writes:

NB> On Fri, Nov 21, 2008 at 1:14 PM, Andy Fraser <afraser@lanl.gov> wrote:
>> I am trying to understand the behavior of matrices that
>> approximate Radon transforms and their inverses.  So far, I've
>> used commands like the following to experiment with various
>> values of SVDcond:
>>
>> V_1,resids,rank,s =
>>
>> Is there a sparse version of lstsq that will let me exploit the
>>
>> It would be even better if there were something like a sparse
>> SVD that would let me pre-calculate an SVD decomposition and
>> then later use it to invert several U_0 vectors.
>>

NB> I think the best we can currently offer you is an iterative solver
NB> (e.g. cg()) on the normal equations.  Something like
NB> (untested)

NB> from scipy.sparse.linalg import LinearOperator, cg from
NB> scipy.sparse import csr_matrix

NB> A = LinearOperator( (N,N), matvec) x,info = cg(A, U_0)

NB> If you can afford to do a sparse LU decomposition of M_Radon,
NB> then you can either use that directly, or as a preconditioner
NB> to cg.

--
Andy Fraser				ISR-2	(MS:B244)
afraser@lanl.gov			Los Alamos National Laboratory
505 665 9448				Los Alamos, NM 87545
```