MATLAB Function Reference Previous page   Next Page
schur

Schur decomposition

Syntax

Description

The schur command computes the Schur form of a matrix.

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

T = schur(A,flag) for real matrix A, returns a Schur matrix T in one of two forms depending on the value of flag:

'complex'
T is triangular and is complex if A has complex eigenvalues.
'real'
T has the real eigenvalues on the diagonal and the complex eigenvalues in 2-by-2 blocks on the diagonal. 'real' is the default.

If A is complex, schur returns the complex Schur form in matrix T. The complex Schur form is upper triangular with the eigenvalues of A on the diagonal.

The function rsf2csf converts the real Schur form to the complex Schur form.

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

Examples

H is a 3-by-3 eigenvalue test matrix:

Its Schur form is

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

Input of Type Double

If A has type double, schur uses the LAPACK routines listed in the following table to compute the Schur form of a matrix:

Matrix A
Routine
Real symmetric
DSYTRD, DSTEQR
DSYTRD, DORGTR, DSTEQR (with output U)
Real nonsymmetric
DGEHRD, DHSEQR
DGEHRD, DORGHR, DHSEQR (with output U)
Complex Hermitian
ZHETRD, ZSTEQR
ZHETRD, ZUNGTR, ZSTEQR (with output U)
Non-Hermitian
ZGEHRD, ZHSEQR
ZGEHRD, ZUNGHR, ZHSEQR (with output U)

Input of Type Single

If A has type single, schur uses the LAPACK routines listed in the following table to compute the Schur form of a matrix:

Matrix A
Routine
Real symmetric
SSYTRD, SSTEQR
SSYTRD, SORGTR, SSTEQR (with output U)
Real nonsymmetric
SGEHRD, SHSEQR
SGEHRD, SORGHR, SHSEQR (with output U)
Complex Hermitian
CHETRD, CSTEQR
CHETRD, CUNGTR, CSTEQR (with output U)
Non-Hermitian
CGEHRD, CHSEQR
CGEHRD, CUNGHR, CHSEQR (with output U)

See Also

eig, hess, qz, rsf2csf

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide (http://www.netlib.org/lapack/lug/lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999.


Previous page  Scattergroup Properties script Next page

© 1994-2005 The MathWorks, Inc.