schur

Schur decomposition of a square matrix.

Category: Mathematics > Linear Algebra

Syntax

T = schur(A)

Returns the Schur form T.

[U, T] = schur(A)

Also returns the unitary matrix U, so that A = U*T*U'.

[U, T] = schur(A, 'complex')

Converts a real matrix to the complex form, with T upper triangular.

Description

Every square matrix is unitarily similar to a triangular matrix. Unlike the eigenvector matrix, the Schur factor U is always orthogonal, so the decomposition is numerically stable even for defective matrices that have no full set of eigenvectors.

For a real matrix with complex eigenvalues, the real Schur form keeps real arithmetic by using 2-by-2 blocks; a real symmetric matrix gives a diagonal T.

Input arguments

A
Square numeric matrix.
'real' or 'complex'
For a real A, 'real' (default) gives a quasi-triangular T; 'complex' gives a triangular one.

Output arguments

T
Upper-triangular matrix (quasi-triangular in the real case), with the eigenvalues of A on the diagonal or in 2-by-2 diagonal blocks.
U
Orthogonal (unitary) matrix of Schur vectors.

Example

Schur factors of a 2-by-2 matrix

A = [1 2; 3 4];
[U, T] = schur(A);
norm(U*T*U' - A) < 1e-12
sort(diag(T))'
Output
ans = logical
   1
ans = 1×2

   -0.3723    5.3723

See also

rsf2csf eig ordschur qz hess