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
| MINRES () | |
| template<typename MatrixDerived > | |
| MINRES (const EigenBase< MatrixDerived > &A) | |
| ~MINRES () | |
MINRES() [1/2]
| inline |
Конструктор по умолчанию.
MINRES() [2/2]
| inlineexplicit |
Инициализирует решатель матрицей A для дальнейших Ax=b вычислений.
Этот конструктор — сокращение для конструктора по умолчанию, за которым следует вызов compute().
- Предупреждение
- Этот класс хранит ссылку на матрицу A, а также некоторые предварительно вычисленные значения, зависящие от неё. Поэтому, если A изменена, этот класс становится недействительным. Вызовите compute() для обновления его с новой матрицей A или измените копию A.
~MINRES()
| inline |
Деструктор.
The documentation for this class was generated from the following file:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1MINRES.html