schur

Purpose

Schur decomposition.

Synopsis

[U,T] = schur(A)
T = schur(A)

Description

schur computes the Schur form of a matrix. The complex Schur form of a matrix is upper triangular with the eigenvalues of the matrix on the diagonal. The real Schur form has the real eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks on the diagonal.

[U,T] = schur(A) produces a Schur matrix T, and a unitary matrix U so that A = U*T*U' and U'*U = eye(size(A)).

T = schur(A) returns just the Schur matrix T.

If the matrix A is real, schur returns the real Schur form. If imag(A) is nonzero, schur returns the complex Schur form. The function rsf2csf converts the real form to the complex form.

Examples

The matrix gallery(3) is a 3-by-3 eigenvalue test matrix:

 gallery(3) = 
          
    -149    -50   -154
     537    180    546
     -27     -9    -25
Its Schur form is

 schur(gallery(3)) =
          
    1.0000    7.1119   815.8706
         0    2.0000   -55.0236
         0         0     3.0000
The eigenvalues, which in this case are 1, 2, and 3, are on the diagonal. The fact that the off-diagonal elements are so large indicates that this matrix has poorly conditioned eigenvalues; small changes in the matrix elements produce relatively large changes in its eigenvalues.

Algorithm

For real matrices, schur uses the EISPACK routines ORTRAN, ORTHES, and HQR2. ORTHES converts a real general matrix to Hessenberg form using orthogonal similarity transformations. ORTRAN accumulates the transformations used by ORTHES. HQR2 finds the eigenvalues of a real upper Hessenberg matrix by the QR method.

The EISPACK subroutine HQR2 has been modified to allow access to the Schur form, ordinarily just an intermediate result, and to make the computation of eigenvectors optional.

When schur is used with a complex argument, the solution is computed using the QZ algorithm by the EISPACK routines QZHES, QZIT, QZVAL, and QZVEC. They have been modified for complex problems and to handle the special case B = I.

For detailed descriptions of these algorithms, see the EISPACK Guide.

See Also

 eig, hess, qz, rsf2csf

References

[1] B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, Y. Ikebe, V. C. Klema, and C. B. Moler, Matrix Eigensystem Routines - EISPACK Guide, Lecture Notes in Computer Science, volume 6, second edition, Springer-Verlag, 1976.

[2] B. S. Garbow, J. M. Boyle, J. J. Dongarra, and C. B. Moler, Matrix Eigensystem Routines - EISPACK Guide Extension, Lecture Notes in Computer Science, volume 51, Springer-Verlag, 1977.

[3] C.B. Moler and G. W. Stewart, "An Algorithm for Generalized Matrix Eigenvalue Problems," SIAM J. Numer. Anal., Vol. 10, No. 2, April 1973.

(c) Copyright 1994 by The MathWorks, Inc.