MATLAB Function Reference | ![]() ![]() |
Syntax
T = schur(A) T = schur(A,flag) [U,T] = schur(A,...)
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
:
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:
H
= [ -149 -50 -154
537 180 546
-27 -9 -25 ]
schur(H
)
ans =
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
schur
uses LAPACK routines to compute the Schur form of a matrix:
See Also
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, Third Edition, SIAM, Philadelphia, 1999.
![]() | scatter3 | script | ![]() |