EigenHessenbergSchurQ
Вычисляет собственные значения матрицы Хессенберга 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::EigenHessenbergSchurQ( |
Вычисления для типа matrix<float>
bool matrixf::EigenHessenbergSchurQ( |
Вычисления для типа matrix<complex>
bool matrixc::EigenHessenbergSchurQ( |
Вычисления для типа matrix<complexf>
bool matrixcf::EigenHessenbergSchurQ( |
Параметры
Q
[in] Ортогональная матрица Q, полученная методом ReflectHessenbergToQ. Матрица Q может быть матрицей нулевого размера. В этом случае разложению подвергается сама матрица Хессенберга H, а не исходная матрица A. Если используется матрица Q, то вычисляется разложение исходной матрицы A, приведенной к форме Хессенберга (см. ReduceToHessenberg).
eigen_values
[out] Вектор собственных значений.
schur_t
[out] Верхнетреугольная матрица Шура (форма Шура для входной матрицы).
schur_z
[out] Матрица векторов Шура.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Реальные (не комплексные) матрицы могут иметь комплексное решение. Поэтому входной вектор собственных значений должен быть комплексным. В случае комплексного решения код ошибки устанавливается в 4019 (ERR_MATH_OVERFLOW). В противном случае нужно учитывать только реальные части комплексных значений вектора собственных значений.