Spec-Zone.ru › Eigen3

Eigen::IncompleteCholesky

template<typename Scalar, int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
class Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >

Изменённый неполный факторизацию Холески с двойным порогом.

Ссылки : C-J. Lin и J. J. Moré, Неполные факторизации Холески с ограниченной памятью, SIAM J. Sci. Comput. 21(1), стр. 24-45, 1999

Шаблонные параметры
Scalar тип скаляров входных матриц
_UpLo Треугольная часть, которая будет использована для вычислений. Может быть Lower или Upper. По умолчанию Lower.
_OrderingType Метод упорядочения для использования, либо AMDOrdering<>, либо NaturalOrdering<>. По умолчанию AMDOrdering<int>, если не определён EIGEN_MPL2_ONLY, в этом случае по умолчанию NaturalOrdering<int>.

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

Он выполняет следующую неполную факторизацию: \( S P A P' S \approx L L' \), где L - нижняя треугольная факторизация, S - диагональная матрица масштабирования, а P - пермутация, уменьшающая заполнение, как вычислено методом упорядочения.

Стратегия сдвига: Пусть \( B = S P A P' S \) - масштабированная матрица, над которой выполняется факторизация, а \( \beta \) - минимальное значение диагонали. Если \( \beta > 0 \), то факторизация выполняется непосредственно над матрицей B. В противном случае, факторизация выполняется над сдвинутой матрицей \( B + (\sigma+|\beta| I \), где \( \sigma \) - начальное значение сдвига, возвращаемое и устанавливаемое методом setInitialShift(). Значение по умолчанию \( \sigma = 10^{-3} \). Если факторизация терпит неудачу, то сдвиг удваивается до тех пор, пока не произойдёт успех или не будет достигнуто максимальное количество попыток (десять). Если факторизация по-прежнему терпит неудачу, как возвращается методом info(), то можно либо увеличить начальный сдвиг, либо использовать другой метод предварительного кондиционирования.

Inheritance graph
template<typename MatrixType >
void analyzePattern (const MatrixType &mat)
Вычисляет вектор перестановки, уменьшающий заполнение, используя структуру разреженности матрицы mat.
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
template<typename MatrixType >
void compute (const MatrixType &mat)
template<typename MatrixType >
void factorize (const MatrixType &mat)
Выполняет численную факторизацию входной матрицы mat. Подробнее...
IncompleteCholesky ()
template<typename MatrixType >
IncompleteCholesky (const MatrixType &matrix)
ComputationInfo info () const
Сообщает, был ли предыдущий вычисление успешным. Подробнее...
const FactorType & matrixL () const
const PermutationType & permutationP () const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
const VectorRx & scalingS () const
void setInitialShift (RealScalar shift)
Установить начальный параметр сдвига \( \sigma \).
- Публичные члены-функции унаследованные от Eigen::SparseSolverBase< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > > >
const Solve< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > >, Rhs > solve (const MatrixBase< Rhs > &b) const
const Solve< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > >, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
SparseSolverBase ()

IncompleteCholesky() [1/2]

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::IncompleteCholesky ( )
inline

Конструктор по умолчанию, оставляющий объект в частично неинициализированном состоянии.

Необходимо вызвать compute() или пару analyzePattern()/factorize(), чтобы сделать его допустимым.

См. также
IncompleteCholesky(const MatrixType&)

IncompleteCholesky() [2/2]

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::IncompleteCholesky ( const MatrixType & matrix )
inline

Конструктор, вычисляющий неполную факторизацию для заданной матрицы matrix.

cols()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
EIGEN_CONSTEXPR Index Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::cols ( void ) const
inline
Возвращает
число столбцов факторизованной матрицы

compute()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
void Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::compute ( const MatrixType & mat )
inline

Вычисляет или перевычисляет неполное холески-разложение входной матрицы mat

Это сокращение для последовательного вызова методов analyzePattern() и factorize().

См. также
analyzePattern(), factorize()

factorize()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
void Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::factorize ( const MatrixType & mat )

Выполняет численное разложение входной матрицы mat.

Метод analyzePattern() или compute() должен быть вызван предварительно с матрицей, имеющей тот же вид.

См. также
compute(), analyzePattern()

info()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
ComputationInfo Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::info ( ) const
inline

Сообщает, был ли предыдущий вызов успешным.

Вызывает утверждение, если *this не был инициализирован через соответствующий конструктор или вызов compute() или analyzePattern().

Возвращает
Success если вычисление прошло успешно, NumericalIssue если матрица, похоже, отрицательна.

matrixL()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
const FactorType& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::matrixL ( ) const
inline
Возвращает
разреженную нижнюю треугольную факторизацию L

permutationP()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
const PermutationType& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::permutationP ( ) const
inline
Возвращает
преобразование P, которое уменьшает заполнение (может быть пустым при естественном порядке)

rows()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
EIGEN_CONSTEXPR Index Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::rows ( void ) const
inline
Возвращает
количество строк разложенной матрицы

scalingS()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
const VectorRx& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::scalingS ( ) const
inline
Возвращает
вектор, представляющий коэффициент масштабирования S

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

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

Spec-Zone.ru

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