Spec-Zone.ru › Eigen3

Eigen::GMRES

шаблон<typename _MatrixType, typename _Preconditioner>
класс Eigen::GMRES< _MatrixType, _Preconditioner >

Решатель GMRES для разреженных квадратных задач.

Этот класс позволяет решать разреженные линейные задачи вида A.x = b с помощью обобщённого метода наименьших остатков (GMRES). Векторы x и b могут быть как плотно, так и разреженно заполненными.

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

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

Этот класс может быть использован как решатель.

Вот типичный пример использования:

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

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

GMRES также может быть использован в контексте безматричных вычислений, см. пример здесь.

См. также
класс SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
Inheritance graph
Индекс get_restart ()
GMRES ()
шаблон<typename MatrixDerived >
GMRES (const EigenBase< MatrixDerived > &A)
void set_restart (const Индекс restart)

GMRES() [1/2]

шаблон<typename _MatrixType , typename _Preconditioner >
Eigen::GMRES< _MatrixType, _Preconditioner >::GMRES ( )
inline

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

GMRES() [2/2]

шаблон<typename _MatrixType , typename _Preconditioner >
шаблон<typename MatrixDerived >
Eigen::GMRES< _MatrixType, _Preconditioner >::GMRES ( const EigenBase< MatrixDerived > & A )
inlineexplicit

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

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

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

get_restart()

шаблон<typename _MatrixType , typename _Preconditioner >
Индекс Eigen::GMRES< _MatrixType, _Preconditioner >::get_restart ( )
inline

Возвращает число итераций после которого выполняется перезапуск.

set_restart()

шаблон<typename _MatrixType , typename _Preconditioner >
void Eigen::GMRES< _MatrixType, _Preconditioner >::set_restart ( const Индекс restart )
inline

Устанавливает число итераций после которого выполняется перезапуск.

Параметры
restart число итераций для перезапуска, по умолчанию 30.

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

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

Spec-Zone.ru

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