- EigenSolver
- EigenSolverX
- EigenSolverSchur
- EigenSolver2
- EigenSolver2X
- EigenSolver2Schur
- EigenSolver2Blocked
- EigenSolver2SchurBlocked
- EigenHessenbergSchurQ
- EigenVectorsTriangularZ
- EigenVectorsTriangularZBlocked
EigenVectorsTriangularZBlocked
Вычисляет собственные векторы верхней квазитреугольной или комплексной верхнетреугольной матрицы, полученной с помощью функций EigenHessenbergSchurQ или EigenSolverSchur.
A = Q * T * Q**H, где T — верхняя квазитреугольная матрица (форма Шура), а Q — ортогональная матрица векторов Шура.
Функция LAPACK TREVC3. Это блочная версия метода TREVC (уровень 3 OpenBLAS). Работает быстрее, но может быть менее точной.
Вычисления для типа matrix<double>
bool matrix::EigenVectorsTriangularZBlocked(
|
Вычисления для типа matrix<float>
bool matrixf::EigenVectorsTriangularZBlocked(
|
Вычисления для типа matrix<complex>
bool matrixc::EigenVectorsTriangularZBlocked(
|
Вычисления для типа matrix<complexf>
bool matrixcf::EigenVectorsTriangularZBlocked(
|
Параметры
side
[in] Значение из перечисления ENUM_EIG_VECTORS, определяющее, какие собственные векторы вычислять: только левые, только правые или оба.
shur_z
[in] Ортогональная матрица векторов Шура, вычисленная функциями EigenHessenbergSchurQ или EigenSolverSchur. Может быть матрицей нулевого размера. В этом случае обратное преобразование не выполняется.
left_eigenvectors
[out] Матрица левых собственных векторов.
right_eigenvectors
[out] Матрица правых собственных векторов.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Правый собственный вектор x и левый собственный вектор y матрицы T, соответствующие собственному значению w, определяются как:
T*x = w*x, (y**H)*T = w*(y**H)
где y**H — сопряженно-транспонированный вектор y.
Собственные значения не передаются в эту функцию явно, а считываются непосредственно из диагональных блоков T.
Функция возвращает матрицы X и/или Y правых и левых собственных векторов T, либо произведения Q*X и/или Q*Y, где Q — входная ортогональная матрица. Если Q — ортогональный множитель, который преобразует матрицу A в форму Шура T, то Q*X и Q*Y — это матрицы правых и левых собственных векторов исходной матрицы A.
ENUM_EIG_VECTORS
Перечисление, определяющее необходимость вычисления собственных векторов.
Идентификатор |
Описание |
|---|---|
EIGVECTORS_N |
Не может использоваться для этого метода. |
EIGVECTORS_L |
Вычисляются только левые собственные векторы. |
EIGVECTORS_R |
Вычисляются только правые собственные векторы. |
EIGVECTORS_LR |
Вычисляются левые и правые собственные векторы, собственные значения вычисляются всегда. |