- MatrixBalance
- EigenVectorsBackward
- ReduceToHessenbergBalanced
- ReflectHessenbergBalancedToQ
- EigenHessenbergBalancedSchurQ
EigenHessenbergBalancedSchurQ
Вычисляет собственные значения матрицы Хессенберга H и матриц T и Z из разложения Шура H = Z T Z**T, где T — верхняя квазитреугольная матрица (форма Шура), а Z — ортогональная матрица векторов Шура. Опционально Z может быть перемножена справа с входной ортогональной матрицей Q, что позволяет получить факторизацию Шура матрицы A, которая была приведена к форме Хессенберга H ортогональной матрицей Q:
A = Q*H*Q**T = (QZ)*T*(QZ)**T.
Функция LAPACK HSEQR.
Вычисления для типа matrix<double>
bool matrix::EigenHessenbergBalancedSchurQ(
|
Вычисления для типа matrix<float>
bool matrixf::EigenHessenbergBalancedSchurQ(
|
Вычисления для типа matrix<complex>
bool matrixc::EigenHessenbergBalancedSchurQ(
|
Вычисления для типа matrix<complexf>
bool matrixcf::EigenHessenbergBalancedSchurQ(
|
Параметры
ilo
[in] Индекс нижней границы сбалансированной матрицы. Значение, возвращаемое методом MatrixBalance.
ihi
[in] Индекс верхней границы сбалансированной матрицы. Значение, возвращаемое методом MatrixBalance.
Q
[in] Ортогональная матрица Q, полученная методом ReflectHessenbergBalancedToQ. Матрица Q может быть матрицей нулевого размера. В этом случае разложению подвергается сама матрица Хессенберга H, а не исходная матрица A. Если используется матрица Q, то вычисляется разложение исходной матрицы A, приведенной к форме Хессенберга (см. ReduceToHessenbergBalanced).
eigen_values
[out] Вектор собственных значений.
schur_t
[out] Верхнетреугольная матрица Шура (форма Шура для входной матрицы).
schur_z
[out] Матрица векторов Шура.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Предполагается, что матрица A уже имеет верхнетреугольный вид в строках и столбцах 1:ilo-1 и ihi+1:N. Значения ilo и ihi обычно задаются функцией MatrixBalance и передаются в ReduceToHessenbergBalanced, когда матрица, сбалансированная с помощью MatrixBalance, приводится к форме Хессенберга. В противном случае их следует установить равными 1 и N соответственно.
Реальные (не комплексные) матрицы могут иметь комплексное решение. Поэтому входной вектор собственных значений должен быть комплексным. В случае комплексного решения код ошибки устанавливается в 4019 (ERR_MATH_OVERFLOW). В противном случае нужно учитывать только реальные части комплексных значений вектора собственных значений.