MATLAB Function Reference    
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

schur uses LAPACK routines 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)

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.


  scatter3 script