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