Spec-Zone.ru › Eigen3

Eigen::IterScaling

шаблон<typename _MatrixType>
класс Eigen::IterScaling< _MatrixType >

алгоритм итеративной масштабирования для выравнивания норм строк и столбцов в матрицах

Этот класс может быть использован как инструмент предобработки для ускорения сходимости итерационных методов

Эта функция полезна для ограничения объема поворотов во время LU/ILU-факторизации. Стратегия масштабирования, представленная здесь, сохраняет симметрию задачи. ПРИМЕЧАНИЕ: Предполагается, что матрица не содержит пустых строк или столбцов.

Пример с ключевыми этапами

VectorXd x(n), b(n);
SparseMatrix<double> A;
// fill A and b;
IterScaling<SparseMatrix<double> > scal; 
// Compute the left and right scaling vectors. The matrix is equilibrated at output
scal.computeRef(A); 
// Scale the right hand side
b = scal.LeftScaling().cwiseProduct(b); 
// Now, solve the equilibrated linear system with any available solver
 
// Scale back the computed solution
x = scal.RightScaling().cwiseProduct(x); 
Параметры шаблона
_MatrixType тип матрицы. Он должен быть вещественной квадратной разреженной матрицей

Ссылки: D. Ruiz и B. Ucar, Алгоритм сохранения симметрии для масштабирования матриц, отчет INRIA RR-7552

См. также
IncompleteLUT
void compute (const MatrixType &mat)
void computeRef (MatrixType &mat)
VectorXd & LeftScaling ()
VectorXd & RightScaling ()
void setTolerance (double tol)

compute()

шаблон<typename _MatrixType >
void Eigen::IterScaling< _MatrixType >::compute ( const MatrixType & mat )
inline

Вычислить левые и правые диагональные матрицы для масштабирования входной матрицы mat

FIXME Этот алгоритм будет изменён таким образом, что диагональные элементы будут переставлены на диагонали.

См. также
LeftScaling() RightScaling()

computeRef()

шаблон<typename _MatrixType >
void Eigen::IterScaling< _MatrixType >::computeRef ( MatrixType & mat )
inline

Вычислить левые и правые векторы для масштабирования векторов. Входная матрица масштабируется вычисленными векторами на выходе.

См. также
compute()

LeftScaling()

шаблон<typename _MatrixType >
VectorXd& Eigen::IterScaling< _MatrixType >::LeftScaling ( )
inline

Получить вектор для масштабирования строк матрицы

RightScaling()

шаблон<typename _MatrixType >
VectorXd& Eigen::IterScaling< _MatrixType >::RightScaling ( )
inline

Получить вектор для масштабирования столбцов матрицы

setTolerance()

шаблон<typename _MatrixType >
void Eigen::IterScaling< _MatrixType >::setTolerance ( double tol )
inline

Установить толерантность для сходимости алгоритма итеративного масштабирования


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

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

Spec-Zone.ru

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