petsc-3.7.1 2016-05-15
Report Typos and Errors

KSPLSQR

This implements LSQR

Options Database Keys

-ksp_lsqr_set_standard_error - Set Standard Error Estimates of Solution see KSPLSQRSetStandardErrorVec() Many br
-ksp_lsqr_monitor - Monitor residual norm and norm of residual of normal equations Many br
see KSPSolve()- Many br Many br

Notes

Supports non-square (rectangular) matrices. Many br

This varient, when applied with no preconditioning is identical to the original algorithm in exact arithematic; however, in practice, with no preconditioning Many brdue to inexact arithematic, it can converge differently. Hence when no preconditioner is used (PCType PCNONE) it automatically reverts to the original algorithm. Many br

With the PETSc built-in preconditioners, such as ICC, one should call KSPSetOperators(ksp,A,A'*A)) since the preconditioner needs to work Many brfor the normal equations A'*A. Many br

Supports only left preconditioning. Many br

References

1. -The original unpreconditioned algorithm can be found in Paige and Saunders, ACM Transactions on Mathematical Software, Vol 8, 1982. Many br

In exact arithmetic the LSQR method (with no preconditioning) is identical to the KSPCG algorithm applied to the normal equations. Many brThe preconditioned varient was implemented by Bas van't Hof and is essentially a left preconditioning for the Normal Equations. It appears the implementation with preconditioner Many brtrack the true norm of the residual and uses that in the convergence test. Many br

Developer Notes: How is this related to the KSPCGNE implementation? One difference is that KSPCGNE applies Many brthe preconditioner transpose times the preconditioner, so one does not need to pass A'*A as the third argument to KSPSetOperators(). Many br

For least squares problems without a zero to A*x = b, there are additional convergence tests for the residual of the normal equations, A'*(b - Ax), see KSPLSQRDefaultConverged() Many br

See Also

KSPCreate(), KSPSetType(), KSPType (for list of available types), KSP, KSPLSQRDefaultConverged()

Level:beginner
Location:
src/ksp/ksp/impls/lsqr/lsqr.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages