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()
| inline |
Вычислить левые и правые диагональные матрицы для масштабирования входной матрицы mat
FIXME Этот алгоритм будет изменён таким образом, что диагональные элементы будут переставлены на диагонали.
- См. также
- LeftScaling() RightScaling()
computeRef()
| inline |
Вычислить левые и правые векторы для масштабирования векторов. Входная матрица масштабируется вычисленными векторами на выходе.
- См. также
- compute()
LeftScaling()
| inline |
Получить вектор для масштабирования строк матрицы
RightScaling()
| inline |
Получить вектор для масштабирования столбцов матрицы
setTolerance()
| inline |
Установить толерантность для сходимости алгоритма итеративного масштабирования
Документация для этого класса была сгенерирована из следующего файла:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1IterScaling.html