Matrix Balance

 

В этом разделе представлены функции, повышающие численную устойчивость и точность вычисления собственных значений за счет преобразования общих матриц в сбалансированные формы. Балансировка матрицы включает перестановку и масштабирование строк и столбцов для уменьшения нормы матрицы и выделения собственных значений. Такое преобразование значительно улучшает работу последующих алгоритмов.

Функции из этого раздела будут особенно полезны при подготовке матриц к эффективным и точным вычислениям собственных значений и разложениям Шура.

Функция

Выполняемое действие

MatrixBalance

Балансирует общую вещественную или комплексную квадратную матрицу A. Сначала выполняется перестановка A с помощью преобразования подобия для выделения собственных значений в первых 1 до ILO-1 и последних IHI+1 до N элементов на диагонали. Затем выполняется диагональное преобразование подобия для строк и столбцов от ILO до IHI, чтобы сделать нормы строк и столбцов максимально близкими. Оба шага являются опциональными. Балансировка может уменьшить 1-норму матрицы и повысить точность вычисленных собственных значений и/или собственных векторов. Функция LAPACK GEBAL.

EigenVectorsBackward

Формирует правые или левые собственные векторы вещественной или комплексной общей матрицы с помощью обратного преобразования, примененного к собственным векторам сбалансированной матрицы, полученной функцией MatrixBalance. Функция LAPACK GEBAK.

ReduceToHessenbergBalanced

Преобразует вещественную или комплексную общую сбалансированную матрицу A размера n на n к верхней форме Хессенберга H с помощью ортогонального преобразования подобия: Q**T * A * Q = H. Функция LAPACK GEHRD.

ReflectHessenbergBalancedToQ

Генерирует ортогональную матрицу Q, которая определяется как произведение элементарных отражений от ReduceToHessenbergBalanced: Q = H(ilo) H(ilo+1). . . H(ihi-1). Функция LAPACK ORGHR.

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.