LeastSquaresCG.h file
Least-squares conjugate gradient solver.
This header provides the LeastSquaresCG solver class for solving least-squares problems using the conjugate gradient method applied to the normal equations.
Algorithm
Solves the least-squares problem:
by applying CG to the normal equations .
Applicability
- Overdetermined systems (more equations than unknowns)
- Rectangular matrices
- Least-squares fitting problems
- Problems where is well-conditioned
Usage Example
Problem problem(u, v); problem = Integral(Grad(u), Grad(v)) - Integral(f, v); Solver::LeastSquaresCG solver(problem); solver.setTolerance(1e-10).setMaxIterations(1000).solve();
Namespaces
- namespace Rodin
- The Rodin library for finite element methods and shape optimization.
- namespace Rodin::FormLanguage
- Module for writing high level abstract expressions.
- namespace Rodin::Solver
- Module for solving linear and nonlinear systems.
Classes
-
template<class Scalar>class Rodin::Solver::LeastSquaresCG<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
- Least-squares conjugate gradient solver for sparse systems.
-
template<class Scalar>class Rodin::Solver::LeastSquaresCG<Math::LinearSystem<Math::Matrix<Scalar>, Math::Vector<Scalar>>>
- Least-squares conjugate gradient solver for dense systems.