| MATLAB Function Reference | Search  Help Desk |
| schur | Examples See Also |
Syntax
[U,T] = schur(A) T = schur(A)
Description
Theschur command computes the Schur form of a matrix.
[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)). A must be square.
T = schur(A)
returns just the Schur matrix T.
Remarks
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. If the matrixA is real, schur returns the real Schur form. If A is complex, schur returns the complex Schur form. The function rsf2csf converts the real form to the complex form.
Examples
H is a 3-by-3 eigenvalue test matrix:
H =
-149 -50 -154
537 180 546
-27 -9 -25
Its Schur form is
schur(H) =
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] Garbow, B. S., J. M. Boyle, J. J. Dongarra, and C. B. Moler, Matrix Eigensystem Routines - EISPACK Guide Extension, Lecture Notes in Computer Science, Vol. 51, Springer-Verlag, 1977. [2] Moler, C.B. and G. W. Stewart, "An Algorithm for Generalized Matrix Eigenvalue Problems," SIAM J. Numer. Anal., Vol. 10, No. 2, April 1973. [3] Smith, B. T., 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, Vol. 6, second edition, Springer-Verlag, 1976.