HyperMath

schur

schur

Previous topic Next topic No expanding text in this topic  

schur

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

Schur decomposition.

Syntax

U, T = schur(A)

U, T = schur(A, flag)

Argument

Name

Description

 

A

A square matrix (n-by-n); real or complex.

 

flag

A string; 'real' (default) or 'complex'.

Outputs

Name

Description

 

U

Unitary matrix.

 

T

Upper triangular matrix.

Example

Syntax

 

H = [-28      -10     -26; 

    -150     -51    -155;

     538     181     547;];

U,T  = schur(H);

print("U = ", U);

print("T = ", T);

 

Result

 

U = [Matrix] 3 x 3

-0.044641  0.78892   0.61288

-0.27273   0.58056  -0.76718

0.96105   0.2014   -0.18924

T = [Matrix] 3 x 3

470.65     665.11    90.557

    0    -1.3228    0.36103

    0    -3.9104   -1.3228

Comments

The schur function computes the Schur decomposition of A defined by
T = U` * A * U where U is a unitary matrix (U`* U is identity) and the returned matrix T is a block upper triangular matrix in real Schur form. 

The elements on the main diagonal of this matrix T are 1x1 or 2x2 blocks.

If A is complex, T returned is an upper triangular matrix in complex Schur form.

By default, with a real matrix, it is a real Schur decomposition.  To force a complex decomposition, the flag complex can be added.

The Schur decomposition can usually be used to compute the eigenvalues of a square matrix.

The schur function uses LAPACK functions (dgees, zgees).

See Also:

eig