Spec-Zone.ru › Eigen3

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
Inheritance graph
LeastSquaresConjugateGradient ()
template<typename MatrixDerived >
LeastSquaresConjugateGradient (const EigenBase< MatrixDerived > &A)
- Публичные функции-члены, унаследованные от Eigen::IterativeSolverBase< LeastSquaresConjugateGradient< _MatrixType, _Preconditioner > >
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
- Публичные функции-члены, унаследованные от Eigen::SparseSolverBase< Derived >
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]

template<typename _MatrixType , typename _Preconditioner >
Eigen::LeastSquaresConjugateGradient< _MatrixType, _Preconditioner >::LeastSquaresConjugateGradient ( )
inline

Конструктор по умолчанию.

LeastSquaresConjugateGradient() [2/2]

template<typename _MatrixType , typename _Preconditioner >
template<typename MatrixDerived >
Eigen::LeastSquaresConjugateGradient< _MatrixType, _Preconditioner >::LeastSquaresConjugateGradient ( const EigenBase< MatrixDerived > & A )
inlineexplicit

Инициализирует решатель матрицей A для дальнейшего Ax=b решения.

Этот конструктор является сокращением для конструктора по умолчанию, за которым следует вызов compute().

Предупреждение
Этот класс хранит ссылку на матрицу A, а также некоторые предварительно вычисленные значения, зависящие от неё. Поэтому, если A изменяется, этот класс становится недействительным. Вызовите compute(), чтобы обновить его с новой матрицей A, или измените копию A.

Документация для этого класса была сгенерирована из следующего файла:
  • LeastSquareConjugateGradient.h

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1LeastSquaresConjugateGradient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API