RATS 10.1
RATS 10.1

QZ( options )  A B

QZ computes the generalized Schur decomposition of the matrix pair \(({\bf{A}},{\bf{B}})\). This generates a collection of matrices such that \({\bf{Q}}\bf{\Lambda }{\bf{Z'}} = {\bf{A}}\) and \({\bf{Q}}\bf{\Omega }{\bf{Z'}} = {\bf{B}}\), where \({\bf{Q}}\) and \({\bf{Z}}\) are orthogonal matrices \(\left( {{\bf{QQ'}} = {\bf{ZZ'}} = {\bf{I}}} \right)\), \(\bf{\Omega}\) is upper triangular and \(\bf{\Lambda}\) is block upper triangular, where the blocks on the diagonal are \(1 \times 1\) for real generalized eigenvalues and \(2 \times 2\) for complex conjugate pairs. 


Parameters

A, B

The input matrices. These should be square matrices of matching dimensions

Blocking

Unlike the standard eigenvalue routines, it isn’t easy to sort generalized eigenvalues. Instead, if it’s necessary to control positioning, they are partitioned into two sets based upon some criterion. Assuming that the criterion never separates a pair of complex conjugate eigenvalues, the \(\bf{\Lambda}\) and \(\bf{\Omega}\) matrices will retain a block triangular structure, which is generally all that is needed for further work. The blocking is controlled by the combination of the BLOCK and CUTOFF options. The SIZE option allows you to find out how big the “upper” block is.

Options

BLOCK=BELOW/ABOVE/REAL/IMAG

Indicates the criterion used for determining which eigenvalues go into the upper block. BELOW and ABOVE are based upon absolute values, and use the CUTOFF value. BLOCK=BELOW,CUTOFF=1.0 will put all eigenvalues with absolute value less than 1.0 in the upper block. REAL and IMAG partition the eigenvalues into real and complex, moving the indicated group into the upper block.

 

CUTOFF=value or formula giving the cutoff value [1.0 by default]

This supplies the cutoff value for BLOCK=BELOW or BLOCK=ABOVE.

 

The following are used to provide names for the variables computed by QZ:

 

Q=(output) computed Q matrix

Z=(output) Z matrix

LAMBDA=(output) lambda matrix

OMEGA=(output) omega matrix

CVALUES=(output) VECTOR[COMPLEX] of generalized eigenvalues

EVALUES=(output) VECTOR of (the real parts of) the generalized eigenvalues

SIZE=(output) size of the upper block

Example

qz(q=q,z=z,lambda=lambda,omega=omega,block=below,cutoff=1.0/beta) g0 g1

 

does a QZ decomposition of the pair G0, G1 with blocking to put all generalized eigenvalues less than 1.0/beta in absolute value in the top.


 


Copyright © 2025 Thomas A. Doan