Eigen::LeastSquaresConjugateGradient
template<typename _MatrixType, typename _Preconditioner>
class Eigen::LeastSquaresConjugateGradient< _MatrixType, _Preconditioner >
Решатель сопряжённых градиентов для задач наименьших квадратов разреженных (или плотных) матриц.
Этот класс позволяет решать линейные задачи A x = b с использованием итеративного алгоритма сопряжённых градиентов. Матрица A может быть несимметричной и прямоугольной, но матрица A' A должна быть положительно определённой для гарантии устойчивости. В противном случае, классы SparseLU или SparseQR могут быть предпочтительнее. Матрица A и векторы x и b могут быть как плотными, так и разреженными.
- Шаблонные параметры
-
_MatrixType тип матрицы A, может быть плотной или разреженной матрицей. _Preconditioner тип предварительного условий. По умолчанию используется LeastSquareDiagonalPreconditioner
Этот класс следует концепции разреженного решателя .
Максимальное количество итераций и значение допуска могут контролироваться с помощью методов setMaxIterations() и setTolerance(). Значения по умолчанию — размер задачи для максимального числа итераций и NumTraits<Scalar>::epsilon() для допуска.
Этот класс может использоваться как классы прямых решателей. Вот типичный пример использования:
int m=1000000, n = 10000; VectorXd x(n), b(m); SparseMatrix<double> A(m,n); // fill A and b LeastSquaresConjugateGradient<SparseMatrix<double> > lscg; lscg.compute(A); x = lscg.solve(b); std::cout << "#iterations: " << lscg.iterations() << std::endl; std::cout << "estimated error: " << lscg.error() << std::endl; // update b, and solve again x = lscg.solve(b);
По умолчанию итерации начинаются с x=0 в качестве начального приближения решения. Можно управлять началом с помощью метода solveWithGuess().
- См. также
- класс ConjugateGradient, SparseLU, SparseQR
| LeastSquaresConjugateGradient () | |
| template<typename MatrixDerived > | |
| LeastSquaresConjugateGradient (const EigenBase< MatrixDerived > &A) | |
|
| |
| LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > & | analyzePattern (const EigenBase< MatrixDerived > &A) |
| LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > & | compute (const EigenBase< MatrixDerived > &A) |
| RealScalar | error () const |
| LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > & | factorize (const EigenBase< MatrixDerived > &A) |
| ComputationInfo | info () const |
| Index | iterations () const |
| IterativeSolverBase () | |
| IterativeSolverBase (const EigenBase< MatrixDerived > &A) | |
| Index | maxIterations () const |
| Preconditioner & | preconditioner () |
| const Preconditioner & | preconditioner () const |
| LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > & | setMaxIterations (Index maxIters) |
| LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > & | setTolerance (const RealScalar &tolerance) |
| const SolveWithGuess< LeastSquaresConjugateGradient< _MatrixType, _Preconditioner >, Rhs, Guess > | solveWithGuess (const MatrixBase< Rhs > &b, const Guess &x0) const |
| RealScalar | tolerance () const |
|
| |
| template<typename Rhs > | |
| const Solve< Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
| template<typename Rhs > | |
| const Solve< Derived, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
| SparseSolverBase () | |
LeastSquaresConjugateGradient() [1/2]
| inline |
Конструктор по умолчанию.
LeastSquaresConjugateGradient() [2/2]
| inlineexplicit |
Инициализирует решатель матрицей A для дальнейшего Ax=b решения.
Этот конструктор является сокращением для конструктора по умолчанию, за которым следует вызов compute().
- Предупреждение
- Этот класс хранит ссылку на матрицу A, а также некоторые предварительно вычисленные значения, зависящие от неё. Поэтому, если A изменяется, этот класс становится недействительным. Вызовите compute(), чтобы обновить его с новой матрицей A, или измените копию A.
Документация для этого класса была сгенерирована из следующего файла:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1LeastSquaresConjugateGradient.html