QZ-разложение для обобщенных собственных значений
[AA,BB,Q,Z] = qz(A,B)
[AA,BB,Q,Z,V,W] = qz(A,B)
qz(A,B,flag)
The 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, чтобы получить собственные значения полной системы.