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

# Examples

open allclose all

## Basic Examples(1)

Find the Schur decomposition of a real matrix:

Confirm the decomposition up to numerical rounding:

Format and :

## Scope(12)

### Basic Uses(5)

Find the Schur decomposition of a machine-precision matrix:

Format the results:

Schur decomposition of a complex matrix:

Schur decomposition of an arbitrary-precision 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:

The Schur decomposition of large numerical matrices is computed efficiently:

### Generalized Decomposition(3)

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

Confirm that :

Confirm that :

Generalized Schur decomposition for a pair of complex matrices:

Confirm the decompositions:

Generalized Schur decomposition for a pair of arbitrary-precision matrices:

There is no need to use Chop to verify the decomposition:

### Special Matrices(4)

Schur decomposition of sparse matrices:

Schur decomposition of a structured matrix of type SymmetrizedArray:

IdentityMatrix has a trivial Schur decomposition:

Schur decomposition of HilbertMatrix:

## 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(10)

gives matrices and such that :

In {q,t}=SchurDecomposition[m], q is always a unitary matrix:

If m is real-valued, q is also orthogonal:

In {q,t}=SchurDecomposition[m], t is upper triangular with respect to the first subdiagonal:

t need not be strictly upper triangular:

If the matrix m has complex entries, the t matrix is always strictly upper triangular:

The diagonal entries of t are the eigenvalues of m:

For a real-valued matrix m, the real eigenvalues appear on t's diagonal, the complex ones as 2×2 blocks:

For a real-valued matrix , complex eigenvalues produce 2×2 blocks of the form in the matrix:

The corresponding complex eigenvalues can be recovered from the entries of the block as :

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

In {q,s,p,t}=SchurDecomposition[{m,a},RealBlockDiagonalFormFalse], the ratio of the diagonals of s and t equals the generalized eigenvalues of m with respect to a:

For a real symmetric matrix , the Schur decomposition is composed of eigenvalues and eigenvectors:

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

The columns of are the eigenvectors of :

for a numerical normal matrix :

Up to phase, this coincides with the Jordan decomposition:

The t and j matrices are equal:

To verify that q has eigenvectors as columns, set the first entry of each column to 1. to eliminate phase differences between q and s:

## Possible Issues(1)

SchurDecomposition only works with approximate numerical matrices:

For exact matrices, numericize the entries first:

Alternatively, use JordanDecomposition:

Wolfram Research (1991), SchurDecomposition, Wolfram Language function, https://reference.wolfram.com/language/ref/SchurDecomposition.html (updated 2008).

#### Text

Wolfram Research (1991), SchurDecomposition, Wolfram Language function, https://reference.wolfram.com/language/ref/SchurDecomposition.html (updated 2008).

#### CMS

Wolfram Language. 1991. "SchurDecomposition." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2008. https://reference.wolfram.com/language/ref/SchurDecomposition.html.

#### APA

Wolfram Language. (1991). SchurDecomposition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SchurDecomposition.html

#### BibTeX

@misc{reference.wolfram_2021_schurdecomposition, author="Wolfram Research", title="{SchurDecomposition}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/SchurDecomposition.html}", note=[Accessed: 26-January-2022 ]}

#### BibLaTeX

@online{reference.wolfram_2021_schurdecomposition, organization={Wolfram Research}, title={SchurDecomposition}, year={2008}, url={https://reference.wolfram.com/language/ref/SchurDecomposition.html}, note=[Accessed: 26-January-2022 ]}