Sunday, October 2, 2022
HomeMatlabWhat Is a Schur Decomposition? – Nick Higham

What Is a Schur Decomposition? – Nick Higham

A Schur decomposition of a matrix Ainmathbb{C}^{ntimes n} is a factorization A = QTQ^*, the place Q is unitary and T is higher triangular. The diagonal entries of T are the eigenvalues of A, and they are often made to look in any order by selecting Q appropriately. The columns of Q are known as Schur vectors.

A subspace mathcal{X} of mathbb{C}^{ntimes n} is an invariant subspace of A if Axinmathcal{X} for all xinmathcal{X}. If we partition Q and T conformably we are able to write

notag   A [Q_1,~Q_2] = [Q_1,~Q_2]   begin{bmatrix}   T_{11} & T_{12}        0  & T_{22}    end{bmatrix},

which provides A Q_1 = Q_1 T_{11}, exhibiting that the columns of Q_1 span an invariant subspace of A. Moreover, Q_1^*AQ_1 = T_{11}. The primary column of Q is an eigenvector of A comparable to the eigenvalue lambda_1 = t_{11}, however the different columns usually are not eigenvectors, normally. Eigenvectors will be computed by fixing higher triangular methods involving T - lambda I, the place lambda is an eigenvalue.

Write T = D+N, the place D = mathrm{diag}(lambda_i) and N is strictly higher triangular. Taking Frobenius norms provides |A|_F^2 = |D|_F^2 + |N|_F^2, or

notag        |N|_F^2 = |A|_F^2 - displaystylesum_{i=1}^n |lambda_i|^2.

Therefore |N|_F is impartial of the actual Schur decomposition and it supplies a measure of the departure from normality. The matrix A is regular (that’s, A^*A = AA^*) if and provided that N = 0. So a standard matrix is unitarily diagonalizable: A = QDQ^*.

An necessary utility of the Schur decomposition is to compute matrix features. The relation f(A) = Qf(T)Q^* reveals that computing f(A) reduces to computing a perform of a triangular matrix. Matrix features illustrate what Van Mortgage (1975) describes as “probably the most fundamental tenets of numerical algebra”, particularly “something that the Jordan decomposition can do, the Schur decomposition can do higher!”. Certainly the Jordan canonical kind is constructed on a probably sick conditioned similarity transformation whereas the Schur decomposition employs a superbly conditioned unitary similarity, and the complete higher triangular issue of the Schur kind can do most of what the Jordan kind’s bidiagonal issue can do.

An higher quasi-triangular matrix is a block higher triangular matrix

notag   R =   begin{bmatrix}   R_{11} & R_{12} & dots & R_{1m}          & R_{22} & dots & R_{2m}          &        & ddots& vdots          &        &       &  R_{mm}   end{bmatrix}

whose diagonal blocks R_{ii} are both 1times1 or 2times2. An actual matrix Ainmathbb{R}^{n times n} has a actual Schur decomposition A = QRQ^T through which through which all of the elements are actual, Q is orthogonal, and R is higher quasi-triangular with any 2times2 diagonal blocks having advanced conjugate eigenvalues. If A is regular then the 2times 2 blocks R_{ii} have the shape

R_{ii} = left[begin{array}{@{}rr@{mskip2mu}} a & b                 -b & a end{array}right], quad b ne 0,

which has eigenvalues a pm mathrm{i}b.

The Schur decomposition will be computed by the QR algorithm at a value of about 25n^3 flops for Q and T, or 10n^3 flops for T solely.

In MATLAB, the Schur decomposition is computed with the schur perform: the command [Q,T] = schur(A) returns the true Schur kind if A is actual and in any other case the advanced Schur kind. The advanced Schur kind for an actual matrix will be obtained with [Q,T] = schur(A,'advanced'). The rsf2csf perform converts the true Schur kind to the advanced Schur kind. The= ordschur perform takes a Schur decomposition and modifies it in order that the eigenvalues seem in a specified order alongside the diagonal of T.




Please enter your comment!
Please enter your name here

Most Popular

Recent Comments