9.2 Generalized Schur Decomposition
Given two complex matrices, and , there exist two unitary matrices, and , such that and are both upper triangular matrices. This decomposition is called the generalized Schur decomposition. Although the decomposition is not unique, it yields the same generalized eigenvalues that can be obtained by dividing the diagonal entries of by the corresponding diagonal entries of . The eigenvalues are finite when all the diagonal entries of are nonzero. By convention, the eigenvalues corresponding to zero diagonal entries of are . If both and are real, the complex eigenvalues occur in conjugate pairs. In this case, is a real quasiupper triangular matrix. Each block on the diagonal of corresponds to a complex conjugate pair of eigenvalues, and the scalar diagonal entries correspond to the real eigenvalues. Such a decomposition is called the generalized real Schur decomposition. Only one function, called GeneralizedSchurDecomposition, is used to compute both the generalized Schur decomposition and the generalized real Schur decomposition.
The function GeneralizedSchurDecompositionOrdered gives a generalized Schur decomposition such that the generalized eigenvalues appear in a certain order, specified by the ordering function pred.
By default, the ordering is done so that the generalized eigenvalues are in canonical order. An important application of the ordered generalized Schur decomposition is to solve algebraic Riccati equations (see Section 3.2.2).
The generalized Schur decomposition.
Both GeneralizedSchurDecomposition and GeneralizedSchurDecompositionOrdered accept the option RealBlockForm. Note, however, that the default values of this option in these two functions are different. Furthermore, GeneralizedSchurDecompositionOrdered currently accepts only the setting RealBlockForm False, that is, it only computes the complex decomposition.
Option for the generalized Schur decomposition.
Make sure the application is loaded.
In[1]:=
Here is an arbitrary matrix pair .
In[2]:=
In[3]:=
This finds the generalized real Schur decomposition for the matrix pair .
In[4]:=
This verifies the transforming matrices and are real orthogonal.
In[5]:=
Out[5]=
In[6]:=
Out[6]=
is a quasiupper triangular matrix.
In[7]:=
Out[7]=
The matrix is upper triangular.
In[8]:=
Out[8]=
The decomposition is valid.
In[9]:=
Out[9]=
In[10]:=
Out[10]=
The realvalued generalized eigenvalues can be found by dividing the corresponding entries on the diagonals of T and S matrices.
In[11]:=
Out[11]=
The complex conjugate pair of generalized eigenvalues is extracted from the diagonal block.
In[12]:=
Out[12]=
This finds the generalized (complex) Schur decomposition for the matrix pair .
In[13]:=
This verifies that the transforming matrices and are unitary.
In[14]:=
Out[14]=
In[15]:=
Out[15]=
Now both matrices and are triangular.
In[16]:=
Out[16]=
In[17]:=
Out[17]=
The decomposition is still valid.
In[18]:=
Out[18]=
In[19]:=
Out[19]=
The generalized eigenvalues can be obtained by dividing the diagonal entries of and .
In[20]:=
Out[20]=
The same result is obtained using GeneralizedEigenvalues.
In[21]:=
Out[21]=
In[22]:=
Out[22]=
This sorting function makes the eigenvalues with negative real parts appear first.
In[23]:=
This reorders the generalized Schur decomposition using the specified criteria.
In[24]:=
This verifies that the generalized eigenvalues with negative real parts appear first.
In[25]:=
Out[25]=
The eigenvalues with smaller magnitudes appear first using this sorting function.
In[26]:=
This computes the ordered generalized Schur decomposition for the pair using the specified criteria.
In[27]:=
This verifies that the generalized eigenvalues with smaller magnitudes appear first.
In[28]:=
Out[28]=
