Options Database Keys#
-ksp_lsqr_set_standard_error - set standard error estimates of solution, see
-ksp_lsqr_exact_mat_norm - compute exact matrix norm instead of iteratively refined estimate, see
-ksp_lsqr_monitor - monitor residual norm, norm of residual of normal equations A’*A x = A’ b, and estimate of matrix norm ||A||
Supports non-square (rectangular) matrices.
This variant, when applied with no preconditioning is identical to the original algorithm in exact arithmetic; however, in practice, with no preconditioning
due to inexact arithmetic, it can converge differently. Hence when no preconditioner is used (
PCNONE) it automatically reverts to the original algorithm.
With the PETSc built-in preconditioners, such as
PCICC, one should call
KSPSetOperators(ksp,A,A’*A)) since the preconditioner needs to work
for the normal equations A’*A.
Supports only left preconditioning.
For least squares problems with nonzero residual Ax - b, there are additional convergence tests for the residual of the normal equations, A’(b - Ax), see
In exact arithmetic the LSQR method (with no preconditioning) is identical to the
KSPCG algorithm applied to the normal equations.
The preconditioned variant was implemented by Bas van’t Hof and is essentially a left preconditioning for the Normal Equations.
It appears the implementation with preconditioning tracks the true norm of the residual and uses that in the convergence test.
How is this related to the
KSPCGNE implementation? One difference is that
the preconditioner transpose times the preconditioner, so one does not need to pass A’*A as the third argument to
**** -*** The original unpreconditioned algorithm can be found in Paige and Saunders, ACM Transactions on Mathematical Software, Vol 8, 1982.
KSP: Linear System Solvers,
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages