Accelerating the pace of engineering and science

• Trials

# schur

Schur decomposition

## 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:

 'complex' T is triangular and is complex if A is real and 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 when A is real.

If A is complex, schur returns the complex Schur form in matrix T and flag is ignored. 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 ]```

Its Schur form is

```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.