CONTENTS:
A MATLAB implementation of CGLS, the Conjugate Gradient method
for unsymmetric linear equations and least squares problems:
Ax = b,
min ||Ax - b||,
(A'A + shift*I)x = A'b,
where the matrix A may be square or rectangular
(represented by an M-file for computing Ax and A'x)
and shift is a scalar (positive or negative).
The method is stable if shift = 0 or shift > 0.
More generally, it should be stable if (A'A + shift*I)
is positive definite. Otherwise it may be unstable.
REFERENCES:
Documented in the MATLAB file below.
Special feature: This is a simple CG-type code for unsymmetric
equations and least squares. For such problems, LSQR or CGLS are
strongly recommended. Do not use a symmetric CG code on the
normal equations, even though they are equivalent in exact
arithmetic.
If shift >= 0, we recommend LSQR.
CGLS may be useful for any shift, but use with caution if shift < 0.
With shift = 0, the method is due to Hestenes and Stiefel (1952).
See the first LSQR paper, Paige and Saunders (1982a), ACM TOMS 8(1), 43-71.
Trivial changes are needed to allow an arbitrary shift.
RELEASE:
01 Sep 1999: First version, implemented at DTU, Denmark.