Can I use QZ decomposition on a single square matrix in Matlab? Like,


1 Answer 1


As far as I know, QZ decomposition is given for two matrices, so that for $A,B\in \mathbb F^{n \times n}$: $$ A=QSZ^*, B=QTZ^* \tag{1} \label{QZ} $$ where $Q,Z^*$ are unitary, and $S,T$ are upper-triangular, and $\mathbb F$ is the field (real $\mathbb R$ or complex $\mathbb C$). QZ decomposition is usually called generalized Schur decomposition.

For a single matrix $A\in\mathbb F^{n\times n}$, one would simply computes Shur decomposition: $$ A=Q_\text{Schur}UQ^*_\text{Schur} \tag{2} \label{Schur} $$ where $Q_\text{Schur}$ is unitary, and $U$ is upper triangular.

So the Schur decomposition $\eqref{Schur}$, allows "more restricted" decomposition of $A$, since there is no matrix $B$, which presence would result in a generalized QZ decomposition $\eqref{QZ}$ and a presence of $Z$.

In Matlab, Schur decomposition $\eqref{Schur}$ can be computed, as follows:

[Q,U] = schur(A,...)

Take a look at Matlab function help for some additional computation options. Notice a confusion between Wikipedia and this post notation choice, compared to the Matlab help page.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.