Spec-Zone.ru › Eigen3

Eigen::MINRES

template<typename _MatrixType, int _UpLo, typename _Preconditioner>
class Eigen::MINRES< _MatrixType, _UpLo, _Preconditioner >

Решение с минимальным остатком для разреженных симметричных задач.

Этот класс позволяет решать разреженные линейные задачи A.x = b с использованием алгоритма MINRES Пейджа и Сондерса (1975). Разреженная матрица A должна быть симметричной (возможно, неопределённой). Векторы x и b могут быть как плотные, так и разреженные.

Шаблонные параметры
_MatrixType тип разреженной матрицы A, может быть плотной или разреженной.
_UpLo треугольная часть, которая будет использоваться для вычислений. Может быть нижней, верхней или нижней и верхней, в котором будут рассматриваться все элементы матрицы. По умолчанию — нижняя.
_Preconditioner тип прекондиционера. По умолчанию — DiagonalPreconditioner

Максимальное количество итераций и значение толерантности можно контролировать с помощью методов setMaxIterations() и setTolerance(). По умолчанию — размер задачи для максимального числа итераций и NumTraits<Scalar>::epsilon() для толерантности.

Этот класс можно использовать как класс прямого решения. Вот типичный пример использования:

int n = 10000;
VectorXd x(n), b(n);
SparseMatrix<double> A(n,n);
// fill A and b
MINRES<SparseMatrix<double> > mr;
mr.compute(A);
x = mr.solve(b);
std::cout << "#iterations:     " << mr.iterations() << std::endl;
std::cout << "estimated error: " << mr.error()      << std::endl;
// update b, and solve again
x = mr.solve(b);

По умолчанию итерации начинаются с x=0 в качестве начального приближения решения. Можно управлять начальным значением, используя метод solveWithGuess().

MINRES также может использоваться в контексте без матриц, см. пример здесь.

См. также
класс ConjugateGradient, BiCGSTAB, SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
Inheritance graph
MINRES ()
template<typename MatrixDerived >
MINRES (const EigenBase< MatrixDerived > &A)
~MINRES ()

MINRES() [1/2]

template<typename _MatrixType , int _UpLo, typename _Preconditioner >
Eigen::MINRES< _MatrixType, _UpLo, _Preconditioner >::MINRES ( )
inline

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

MINRES() [2/2]

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

Инициализирует решатель матрицей A для дальнейших Ax=b вычислений.

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

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

~MINRES()

template<typename _MatrixType , int _UpLo, typename _Preconditioner >
Eigen::MINRES< _MatrixType, _UpLo, _Preconditioner >::~MINRES ( )
inline

Деструктор.


The documentation for this class was generated from the following file:
  • MINRES.h

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

Spec-Zone.ru

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