What Is a Schur Decomposition?
source link: https://nhigham.com/2022/05/11/what-is-a-schur-decomposition/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
What Is a Schur Decomposition?
A Schur decomposition of a matrix is a factorization , where is unitary and is upper triangular. The diagonal entries of are the eigenvalues of , and they can be made to appear in any order by choosing appropriately. The columns of are called Schur vectors.
A subspace of is an invariant subspace of if for all . If we partition and conformably we can write
which gives , showing that the columns of span an invariant subspace of . Furthermore, . The first column of is an eigenvector of corresponding to the eigenvalue , but the other columns are not eigenvectors, in general. Eigenvectors can be computed by solving upper triangular systems involving , where is an eigenvalue.
Write , where and is strictly upper triangular. Taking Frobenius norms gives , or
Hence is independent of the particular Schur decomposition and it provides a measure of the departure from normality. The matrix is normal (that is, ) if and only if . So a normal matrix is unitarily diagonalizable: .
An important application of the Schur decomposition is to compute matrix functions. The relation shows that computing reduces to computing a function of a triangular matrix. Matrix functions illustrate what Van Loan (1975) describes as “one of the most basic tenets of numerical algebra”, namely “anything that the Jordan decomposition can do, the Schur decomposition can do better!”. Indeed the Jordan canonical form is built on a possibly ill conditioned similarity transformation while the Schur decomposition employs a perfectly conditioned unitary similarity, and the full upper triangular factor of the Schur form can do most of what the Jordan form’s bidiagonal factor can do.
An upper quasi-triangular matrix is a block upper triangular matrix
whose diagonal blocks are either or . A real matrix has a real Schur decomposition in which in which all the factors are real, is orthogonal, and is upper quasi-triangular with any diagonal blocks having complex conjugate eigenvalues. If is normal then the blocks have the form
which has eigenvalues .
The Schur decomposition can be computed by the QR algorithm at a cost of about flops for and , or flops for only.
In MATLAB, the Schur decomposition is computed with the schur
function: the command [Q,T] = schur(A)
returns the real Schur form if is real and otherwise the complex Schur form. The complex Schur form for a real matrix can be obtained with [Q,T] = schur(A,'complex')
. The rsf2csf
function converts the real Schur form to the complex Schur form. The= ordschur
function takes a Schur decomposition and modifies it so that the eigenvalues appear in a specified order along the diagonal of .
References
- Nicholas J. Higham, Functions of Matrices: Theory and Computation, Society for Industrial and Applied Mathematics, Philadelphia, PA, USA, 2008.
- C. F. Van Loan, A Study of the Matrix Exponential, Numerical Analysis Report No. 10, University of Manchester, UK, 1975.
Related Blog Posts
Posted on May 11, 2022May 11, 2022 by Nick HighamPosted in what-is
Related
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK