QZ factorization for generalized eigenvalues
[AA,BB,Q,Z] = qz(A,B)
[AA,BB,Q,Z,V,W] = qz(A,B)
qz(A,B,flag)
The qz
function
gives access to intermediate results in the computation of generalized
eigenvalues.
[AA,BB,Q,Z] = qz(A,B)
for
square matrices A
and B
, produces
upper quasitriangular matrices AA
and BB
,
and unitary matrices Q
and Z
such
that Q*A*Z = AA
,
and Q*B*Z = BB
.
For complex matrices, AA
and BB
are
triangular.
[AA,BB,Q,Z,V,W] = qz(A,B)
also
produces matrices V
and W
whose
columns are generalized eigenvectors.
qz(A,B,flag)
for real matrices A
and B
,
produces one of two decompositions depending on the value of flag
:
| Produces a possibly complex decomposition with a triangular |
| Produces a real decomposition with a quasitriangular |
If AA
is triangular, then the diagonal elements a
= diag(AA)
and b = diag(BB)
are the generalized
eigenvalues that satisfy
A*V*b = B*V*a b'*W'*A = a'*W'*B
The eigenvalues produced by lambda = eig(A,B)
are
the ratios of the diagonal elements a
and b
,
such that lambda = a./b
.
If AA
is not triangular, it is necessary
to further reduce the 2-by-2 blocks to obtain the eigenvalues of the
full system.