QZ-разложение для обобщенных собственных значений
[AA,BB,Q,Z] = qz(A,B)
[AA,BB,Q,Z,V,W] = qz(A,B)
qz(A,B,flag)
Функция qz
предоставляет доступ к промежуточным результатам в вычислении обобщенных собственных значений.
[AA,BB,Q,Z] = qz(A,B)
для квадратных матриц A
и B
, производит верхние квазитреугольные матрицы AA
и BB
и унитарные матрицы Q
и Z
, таким образом что Q*A*Z = AA
и Q*B*Z = BB
. Для комплексных матриц AA
и BB
являются треугольными.
[AA,BB,Q,Z,V,W] = qz(A,B)
также производит матрицы V
и W
, столбцы которого являются обобщенными собственными векторами.
qz(A,B,flag)
для действительных матриц A
и B
, производит одно из двух разложений в зависимости от значения flag
:
| Производит возможно комплексное разложение с треугольным |
| Производит действительное разложение с квазитреугольным |
Если AA
является треугольным, то диагональные элементы, a = diag(AA)
и b = diag(BB)
являются обобщенными собственными значениями, которые удовлетворяют
A*V*b = B*V*a b'*W'*A = a'*W'*B
Собственные значения, произведенные lambda = eig(A,B)
, являются отношениями диагональных элементов a
и b
, такой что lambda = a./b
.
Если AA
не является треугольным, необходимо далее уменьшать блоки 2 на 2, чтобы получить собственные значения полной системы.