# SchurDecomposition

yields the Schur decomposition for a numerical matrix m, given as a list {q,t} where q is an orthonormal matrix and t is a block uppertriangular matrix.

SchurDecomposition[{m,a}]

gives the generalized Schur decomposition of m with respect to a.

# Details and Options # Examples

open allclose all

## Basic Examples(1)

Find the Schur decomposition of a real matrix:

## Scope(7)

Find the Schur decomposition of a machine-precision matrix:

Format the results:

Schur decomposition of a complex matrix:

Consider a real-valued matrix with complex eigenvalues:

Compute its Schur decomposition:

All entries in the decomposition are real:

The matrix is block-upper triangular, with entries along the first subdiagonal, but not upper triangular:

makes upper triangular at the cost of complex entries:

Schur decomposition of an arbitrary-precision matrix:

Schur decomposition of sparse matrices:

Schur decomposition a structured matrix of type SymmetrizedArray:

Generalized Schur decomposition for a pair of matrices m and a:

## Options(2)

### Pivoting(1)

m is a 3×3 matrix:

With Pivoting->True, an extra matrix that represents the scaling and permutation is returned:

Verify that m.d is equal to d.q.t.ConjugateTranspose[q]:

### RealBlockDiagonalForm(1)

m is a matrix with two real and two complex eigenvalues:

With , the result is complex upper triangular:

With , there are real 2×2 blocks along the diagonal:

## Applications(1)

m is a matrix that is not diagonalizable:

The Schur decomposition gives equivalence to a triangular matrix:

The eigenvalues, since they are real, occur on the diagonal of t:

## Properties & Relations(3)

m is a matrix with two real and two complex eigenvalues:

Find the Schur decomposition of m:

The real eigenvalues appear on the diagonal of t, the complex as a 2×2 block:

Verify that m is equal to q.t.ConjugateTranspose[q]:

m and a are random 3×3 matrices:

Find the generalized Schur decomposition of m with respect to a:

Verify that m is given by q.s.ConjugateTranspose[p]:

Verify that a is given by q.t.ConjugateTranspose[p]:

m is a symmetric random matrix:

Find the Schur decomposition of m:

t is a diagonal matrix with the eigenvalues of m along the diagonal:

The columns of q are the eigenvectors of m:

## Possible Issues(1)

m is a matrix with exact integer valued entries:

SchurDecomposition only works with approximate numerical matrices: For exact matrices, use JordanDecomposition: