Main Content


QZ factorization for generalized eigenvalues


[AA,BB,Q,Z] = qz(A,B)
[AA,BB,Q,Z,V,W] = qz(A,B)


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 AA. For compatibility with earlier versions, 'complex' is the default.


Produces a real decomposition with a quasitriangular AA, containing 1-by-1 and 2-by-2 blocks on its diagonal.

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.

Extended Capabilities

Version History

Introduced before R2006a

See Also