Eigen  5.0.1
 
Loading...
Searching...
No Matches
IterativeLinearSolvers module

Detailed Description

This module provides iterative methods to solve problems of the form A x = b, where A is a squared matrix, usually very large and sparse. Those solvers are accessible via the following classes:

These iterative solvers are associated with some preconditioners:

The IterScaling class can be used as a preprocessing step to equilibrate the row and column norms of a matrix.

Choosing the best solver for solving A x = b depends a lot on the preconditioner chosen as well as the properties of A. The following flowchart might help you.

dot_inline_dotgraph_1.png

Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport, AccelerateSupport.

#include <Eigen/IterativeLinearSolvers>

Classes

class  Eigen::BiCGSTAB< MatrixType_, Preconditioner_ >
 A bi conjugate gradient stabilized solver for sparse square problems. More...
 
class  Eigen::ConjugateGradient< MatrixType_, UpLo_, Preconditioner_ >
 A conjugate gradient solver for sparse (or dense) self-adjoint problems. More...
 
class  Eigen::DGMRES< MatrixType_, Preconditioner_ >
 A Restarted GMRES with deflation. This class implements a modification of the GMRES solver for sparse linear systems. The basis is built with modified Gram-Schmidt. At each restart, a few approximated eigenvectors corresponding to the smallest eigenvalues are used to build a preconditioner for the next cycle. This preconditioner for deflation can be combined with any other preconditioner, the IncompleteLUT for instance. The preconditioner is applied at right of the matrix and the combination is multiplicative. More...
 
class  Eigen::DiagonalPreconditioner< Scalar_ >
 A preconditioner based on the diagonal entries. More...
 
class  Eigen::GMRES< MatrixType_, Preconditioner_ >
 A GMRES solver for sparse square problems. More...
 
class  Eigen::IdentityPreconditioner
 A naive preconditioner which approximates any matrix as the identity matrix. More...
 
class  Eigen::IDRS< MatrixType_, Preconditioner_ >
 The Induced Dimension Reduction method (IDR(s)) is a short-recurrences Krylov method for sparse square problems. More...
 
class  Eigen::IDRSTABL< MatrixType_, Preconditioner_ >
 The IDR(s)STAB(l) is a combination of IDR(s) and BiCGSTAB(l). It is a short-recurrences Krylov method for sparse square problems. It can outperform both IDR(s) and BiCGSTAB(l). IDR(s)STAB(l) generally closely follows the optimal GMRES convergence in terms of the number of Matrix-Vector products. However, without the increasing cost per iteration of GMRES. IDR(s)STAB(l) is suitable for both indefinite systems and systems with complex eigenvalues. More...
 
class  Eigen::IncompleteLUT< Scalar_, StorageIndex_ >
 Incomplete LU factorization with dual-threshold strategy. More...
 
class  Eigen::IterativeSolverBase< Derived >
 Base class for linear iterative solvers. More...
 
class  Eigen::IterScaling< MatrixType_ >
 iterative scaling algorithm to equilibrate rows and column norms in matrices More...
 
class  Eigen::LeastSquareDiagonalPreconditioner< Scalar_ >
 Jacobi preconditioner for LeastSquaresConjugateGradient. More...
 
class  Eigen::LeastSquaresConjugateGradient< MatrixType_, Preconditioner_ >
 A conjugate gradient solver for sparse (or dense) least-square problems. More...
 
class  Eigen::LSMR< MatrixType_, Preconditioner_ >
 An LSMR solver for sparse (or dense) least-squares problems. More...
 
class  Eigen::MINRES< MatrixType_, UpLo_, Preconditioner_ >
 A minimal residual solver for sparse symmetric problems. More...
 
class  Eigen::SolveWithGuess< Decomposition, RhsType, GuessType >
 Pseudo expression representing a solving operation. More...