Spec-Zone.ru › Eigen3

Eigen::CompleteOrthogonalDecomposition

template<typename _MatrixType>
class Eigen::CompleteOrthogonalDecomposition< _MatrixType >

Полное ортогональное разложение (COD) матрицы.

Параметры
MatrixType тип матрицы, для которой вычисляется COD.

Этот класс выполняет раскрывающее ранг полное ортогональное разложение матрицы A на матрицы P, Q, T и Z, такие что

\[ \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \begin{bmatrix} \mathbf{T} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} \end{bmatrix} \, \mathbf{Z} \]

с использованием преобразований Хаусхолдера. Здесь P — матрица перестановок, Q и Z — унитарные матрицы, а T — верхняя треугольная матрица размера ранг-на-ранг. A может иметь недостаток ранга.

Этот класс поддерживает механизм разложения на месте.

См. также
MatrixBase::completeOrthogonalDecomposition()
Inheritance graph
MatrixType::RealScalar absDeterminant () const
const PermutationType & colsPermutation () const
CompleteOrthogonalDecomposition ()
Конструктор по умолчанию. Подробнее...
template<typename InputType >
CompleteOrthogonalDecomposition (const EigenBase< InputType > &matrix)
Создаёт полное ортогональное разложение из заданной матрицы. Подробнее...
template<typename InputType >
CompleteOrthogonalDecomposition (EigenBase< InputType > &matrix)
Создаёт полное ортогональное разложение из заданной матрицы. Подробнее...
CompleteOrthogonalDecomposition (Index rows, Index cols)
Конструктор по умолчанию с предварительной выделенной памятью. Подробнее...
Index dimensionOfKernel () const
const HCoeffsType & hCoeffs () const
HouseholderSequenceType householderQ (void) const
ComputationInfo info () const
Указывает, было ли полное ортогональное разложение выполнено успешно. Подробнее...
bool isInjective () const
bool isInvertible () const
bool isSurjective () const
MatrixType::RealScalar logAbsDeterminant () const
const MatrixType & matrixQTZ () const
const MatrixType & matrixT () const
MatrixType matrixZ () const
RealScalar maxPivot () const
Index nonzeroPivots () const
const Inverse< CompleteOrthogonalDecomposition > pseudoInverse () const
Index rank () const
CompleteOrthogonalDecomposition & setThreshold (const RealScalar &threshold)
CompleteOrthogonalDecomposition & setThreshold (Default_t)
template<typename Rhs >
const Solve< CompleteOrthogonalDecomposition, Rhs > solve (const MatrixBase< Rhs > &b) const
RealScalar threshold () const
const HCoeffsType & zCoeffs () const
- Публичные члены-функции, унаследованные от Eigen::SolverBase< CompleteOrthogonalDecomposition< _MatrixType > >
AdjointReturnType adjoint () const
CompleteOrthogonalDecomposition< _MatrixType > & derived ()
const CompleteOrthogonalDecomposition< _MatrixType > & derived () const
const Solve< CompleteOrthogonalDecomposition< _MatrixType >, Rhs > solve (const MatrixBase< Rhs > &b) const
SolverBase ()
ConstTransposeReturnType transpose () const
- Публичные члены-функции, унаследованные от Eigen::EigenBase< Derived >
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
Derived & derived ()
const Derived & derived () const
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
EIGEN_CONSTEXPR Index размер () const EIGEN_NOEXCEPT
template<typename Rhs >
void применитьZСопряжённуюСлеваВместо (Rhs &rhs) const
template<bool Conjugate, typename Rhs >
void применитьZСлеваВместо (Rhs &rhs) const
void вычислитьВместо ()
- Публичные типы, унаследованные от Eigen::EigenBase< Derived >
typedef Eigen::Index Index
Тип интерфейса индексов. Подробнее...

CompleteOrthogonalDecomposition() [1/4]

template<typename _MatrixType >
Eigen::CompleteOrthogonalDecomposition< _MatrixType >::CompleteOrthogonalDecomposition ( )
inline

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

Конструктор по умолчанию полезен в тех случаях, когда пользователь намерен выполнять разложения с помощью CompleteOrthogonalDecomposition::compute(const* MatrixType&).

CompleteOrthogonalDecomposition() [2/4]

template<typename _MatrixType >
Eigen::CompleteOrthogonalDecomposition< _MatrixType >::CompleteOrthogonalDecomposition ( Index строки,
Index столбцы
)
inline

Конструктор по умолчанию с предварительной выделением памяти.

Подобно конструктору по умолчанию, но с предварительной выделением памяти для внутренних данных в соответствии с заданным размером проблемы.

См. также
CompleteOrthogonalDecomposition()

CompleteOrthogonalDecomposition() [3/4]

template<typename _MatrixType >
template<typename InputType >
Eigen::CompleteOrthogonalDecomposition< _MatrixType >::CompleteOrthogonalDecomposition ( const EigenBase< InputType > & матрица )
inlineexplicit

Создаёт полное ортогональное разложение из заданной матрицы.

Этот конструктор вычисляет полное ортогональное разложение матрицы матрица, вызывая метод compute(). Будет использоваться значение порога по умолчанию для определения ранга. Это краткая форма:

CompleteOrthogonalDecomposition<MatrixType> cod(matrix.rows(),
                                                matrix.cols());
cod.setThreshold(Default);
cod.compute(matrix);
См. также
compute()

CompleteOrthogonalDecomposition() [4/4]

template<typename _MatrixType >
template<typename InputType >
Eigen::CompleteOrthogonalDecomposition< _MatrixType >::CompleteOrthogonalDecomposition ( EigenBase< InputType > & матрица )
inlineexplicit

Создаёт полное ортогональное разложение из заданной матрицы.

Этот перегруженный конструктор предназначен для разложения inplace, когда MatrixType является Eigen::Ref.

См. также
CompleteOrthogonalDecomposition(const EigenBase&)

absDeterminant()

template<typename MatrixType >
MatrixType::RealScalar Eigen::CompleteOrthogonalDecomposition< MatrixType >::absDeterminant
Возвращает
абсолютное значение определителя матрицы, для которой *this — полное ортогональное разложение. Оно имеет линейную сложность (то есть O(n), где n — размерность квадратной матрицы), так как полное ортогональное разложение уже вычислено.
Примечание
Только для квадратных матриц.
Предупреждение
определитель может быть очень большим или очень маленьким, поэтому для матриц достаточно большого размера существует риск переполнения/потерь точности. Один из способов обойти это — использовать logAbsDeterminant() вместо него.
См. также
logAbsDeterminant(), MatrixBase::determinant()

применитьZСопряжённуюСлеваВместо()

template<typename MatrixType >
template<typename Rhs >
void Eigen::CompleteOrthogonalDecomposition< MatrixType >::применитьZСопряжённуюСлеваВместо ( Rhs & rhs ) const
protected

Перезаписывает rhs значением \( \mathbf{Z}^* * \mathbf{rhs} \).

применитьZСлеваВместо()

template<typename MatrixType >
template<bool Conjugate, typename Rhs >
void Eigen::CompleteOrthogonalDecomposition< MatrixType >::применитьZСлеваВместо ( Rhs & rhs ) const
protected

Перезаписывает rhs значением \( \mathbf{Z} * \mathbf{rhs} \) или \( \mathbf{\overline Z} * \mathbf{rhs} \), если Conjugate установлено в true.

colsPermutation()

template<typename _MatrixType >
const PermutationType& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::colsPermutation ( ) const
inline
Возвращает
константную ссылку на матрицу перестановки столбцов

вычислитьВместо()

template<typename MatrixType >
void Eigen::CompleteOrthogonalDecomposition< MatrixType >::вычислитьВместо
protected

Выполняет полное ортогональное разложение заданной матрицы матрица. Результат факторизации хранится в *this, а ссылка на *this возвращается.

См. также
класс CompleteOrthogonalDecomposition, CompleteOrthogonalDecomposition(const MatrixType&)

dimensionOfKernel()

template<typename _MatrixType >
Index Eigen::CompleteOrthogonalDecomposition< _MatrixType >::dimensionOfKernel ( ) const
inline
Возвращает
размерность ядра матрицы, для которой *this — полное ортогональное разложение.
Примечание
Этот метод должен определить, какие главные элементы следует считать отличными от нуля. Для этого используется значение порога, которое можно контролировать, вызвав setThreshold(const RealScalar&).

hCoeffs()

template<typename _MatrixType >
const HCoeffsType& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::hCoeffs ( ) const
inline
Возвращает
постоянную ссылку на вектор коэффициентов Хаусхолдера, используемых для представления фактора Q.

Только для продвинутого использования.

householderQ()

template<typename MatrixType >
CompleteOrthogonalDecomposition< MatrixType >::HouseholderSequenceType Eigen::CompleteOrthogonalDecomposition< MatrixType >::householderQ ( void ) const
Возвращает
матрицу Q как последовательность преобразований Хаусхолдера

info()

template<typename _MatrixType >
ComputationInfo Eigen::CompleteOrthogonalDecomposition< _MatrixType >::info ( ) const
inline

Сообщает, была ли успешна полная ортогональная декомпозиция.

Примечание
Эта функция всегда возвращает Success. Она предоставлена для совместимости с другими процедурами факторизации.
Возвращает
Success

isInjective()

template<typename _MatrixType >
bool Eigen::CompleteOrthogonalDecomposition< _MatrixType >::isInjective ( ) const
inline
Возвращает
true, если матрица, для которой *this является разложением, представляет инъективное линейное отображение, т. е. имеет тривиальное ядро; иначе false.
Примечание
Данному методу необходимо определить, какие главные элементы следует считать отличными от нуля. Для этого используется пороговое значение, которое можно контролировать, вызвав setThreshold(const RealScalar&).

isInvertible()

template<typename _MatrixType >
bool Eigen::CompleteOrthogonalDecomposition< _MatrixType >::isInvertible ( ) const
inline
Возвращает
true, если матрица, для которой *this является полным ортогональным разложением, обратима.
Примечание
Данному методу необходимо определить, какие главные элементы следует считать отличными от нуля. Для этого используется пороговое значение, которое можно контролировать, вызвав setThreshold(const RealScalar&).

isSurjective()

template<typename _MatrixType >
bool Eigen::CompleteOrthogonalDecomposition< _MatrixType >::isSurjective ( ) const
inline
Возвращает
true, если матрица, для которой *this является разложением, представляет сюръективное линейное отображение; иначе false.
Примечание
Данному методу необходимо определить, какие главные элементы следует считать отличными от нуля. Для этого используется пороговое значение, которое можно контролировать, вызвав setThreshold(const RealScalar&).

logAbsDeterminant()

template<typename MatrixType >
MatrixType::RealScalar Eigen::CompleteOrthogonalDecomposition< MatrixType >::logAbsDeterminant
Возвращает
натуральный логарифм абсолютного значения определителя матрицы, для которой *this является полным ортогональным разложением. Имеет только линейную сложность (т. е. O(n), где n — размерность квадратной матрицы), так как полное ортогональное разложение уже вычислено.
Примечание
Только для квадратных матриц.
Этот метод полезен для работы с риском переполнения/потери точности при вычислении определителя.
См. также
absDeterminant(), MatrixBase::determinant()

matrixQTZ()

template<typename _MatrixType >
const MatrixType& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::matrixQTZ ( ) const
inline
Возвращает
ссылку на матрицу, где хранится полное ортогональное разложение

matrixT()

template<typename _MatrixType >
const MatrixType& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::matrixT ( ) const
inline
Возвращает
ссылку на матрицу, где хранится полное ортогональное разложение.
Предупреждение
Строго нижняя часть и
cols() - rank() 
правые столбцы этой матрицы содержат внутренние значения. Следует ссылаться только на верхнюю треугольную часть. Чтобы получить её, используйте
matrixT().template triangularView<Upper>() 
. Для вырожденных по рангу матриц используйте
matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>()

matrixZ()

template<typename _MatrixType >
MatrixType Eigen::CompleteOrthogonalDecomposition< _MatrixType >::matrixZ ( ) const
inline
Возвращает
матрицу Z.

maxPivot()

template<typename _MatrixType >
RealScalar Eigen::CompleteOrthogonalDecomposition< _MatrixType >::maxPivot ( ) const
inline
Возвращает
абсолютное значение наибольшего главного элемента, т. е. наибольший диагональный коэффициент R.

nonzeroPivots()

template<typename _MatrixType >
Index Eigen::CompleteOrthogonalDecomposition< _MatrixType >::nonzeroPivots ( ) const
inline
Возвращает
количество ненулевых главных элементов в полном ортогональном разложении. Здесь ненулевой понимается в точном смысле, а не в приближенном. Хотя это понятие само по себе не очень интересно, но оно полезно при реализации алгоритмов.
См. также
rank()

pseudoInverse()

template<typename _MatrixType >
const Inverse<CompleteOrthogonalDecomposition> Eigen::CompleteOrthogonalDecomposition< _MatrixType >::pseudoInverse ( ) const
inline
Возвращает
псевдообратную матрицу, для которой *this является полным ортогональным разложением.
Предупреждение
: Не вычисляйте this->pseudoInverse()*rhs для решения систем линейных уравнений. Эффективнее и числово устойчивее вызвать this->solve(rhs).

rank()

template<typename _MatrixType >
Index Eigen::CompleteOrthogonalDecomposition< _MatrixType >::rank ( ) const
inline
Возвращает
ранг матрицы, для которой *this является полным ортогональным разложением.
Примечание
Данному методу необходимо определить, какие главные элементы следует считать ненулевыми. Для этого используется пороговое значение, которое можно контролировать, вызвав setThreshold(const RealScalar&).

setThreshold() [1/2]

template<typename _MatrixType >
CompleteOrthogonalDecomposition& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::setThreshold ( const RealScalar & threshold )
inline

Позволяет задать порог, используемый определенными методами, такими как rank(), которым необходимо определить, когда главные элементы следует считать ненулевыми. Должен быть вызван перед вызовом compute().

При необходимости получения значения порога, Eigen вызывает threshold(). По умолчанию используется формула для автоматического определения разумного порога. После вызова данного метода setThreshold(const RealScalar&) будет использоваться ваше значение.

Параметры
threshold Новое значение для порога.

Главный элемент будет считаться ненулевым, если его абсолютное значение строго больше, чем \( \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \), где maxpivot — наибольший главный элемент.

Если вы хотите вернуться к поведению по умолчанию, вызовите setThreshold(Default_t)

setThreshold() [2/2]

template<typename _MatrixType >
CompleteOrthogonalDecomposition& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::setThreshold ( Default_t )
inline

Позволяет вернуться к поведению по умолчанию, позволяя Eigen использовать собственную формулу для определения порога.

Вы должны передать специальный объект Eigen::Default в качестве параметра.

qr.setThreshold(Eigen::Default); 

См. документацию к setThreshold(const RealScalar&).

solve()

template<typename _MatrixType >
template<typename Rhs >
const Solve<CompleteOrthogonalDecomposition, Rhs> Eigen::CompleteOrthogonalDecomposition< _MatrixType >::solve ( const MatrixBase< Rhs > & b ) const
inline

Этот метод вычисляет решение X с минимальной нормой для задачи наименьших квадратов

\[\mathrm{minimize} \|A X - B\|, \]

где A — матрица, полное ортогональное разложение которой представлено в *this.

Параметры
b правые части решаемой задачи.
Возвращает
решение.

threshold()

template<typename _MatrixType >
RealScalar Eigen::CompleteOrthogonalDecomposition< _MatrixType >::threshold ( ) const
inline

Возвращает порог, который будет использоваться определёнными методами, такими как rank().

См. документацию к setThreshold(const RealScalar&).

zCoeffs()

template<typename _MatrixType >
const HCoeffsType& Eigen::CompleteOrthogonalDecomposition< _MatrixType >::zCoeffs ( ) const
inline
Возвращает
постоянную ссылку на вектор коэффициентов Хаусхолдера, используемых для представления фактора Z.

Только для продвинутых применений.


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

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

Spec-Zone.ru

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