Schur Decomposition Calculator
Calculate schur decomposition instantly with our math tool. Shows detailed work, formulas used, and multiple solution methods.
Formula
A = Q * T * Q^T
Where A is the original matrix, Q is an orthogonal (unitary) matrix, T is upper triangular with eigenvalues on its diagonal, and Q^T is the transpose of Q. For real matrices with complex eigenvalues, the real Schur form uses a quasi-upper-triangular T with 2x2 blocks.
Worked Examples
Example 1: 2x2 Real Eigenvalue Schur Decomposition
Problem: Find the Schur decomposition of A = [[4, 1], [2, 3]].
Solution: Eigenvalues: trace = 7, det = 10, discriminant = 49 - 40 = 9\nlambda1 = (7 + 3)/2 = 5, lambda2 = (7 - 3)/2 = 2\nEigenvector for lambda1=5: (5-3, 2) = (2, 2), normalized: (1/sqrt2, 1/sqrt2)\nQ = [[1/sqrt2, -1/sqrt2], [1/sqrt2, 1/sqrt2]]\nT = Q^T * A * Q = [[5, -1], [0, 2]]
Result: Eigenvalues: 5, 2 | T is upper triangular | Spectral radius: 5
Example 2: 2x2 Complex Eigenvalue Case
Problem: Find the Schur decomposition of A = [[0, -1], [1, 0]] (rotation matrix).
Solution: Eigenvalues: trace = 0, det = 1, discriminant = 0 - 4 = -4\nlambda = 0 +/- i (complex conjugate pair)\nReal Schur form: T is a 2x2 block [[0, -1], [1, 0]] (already in real Schur form)\nQ = identity matrix (A is already in quasi-triangular form)\nSpectral radius = 1
Result: Eigenvalues: 0+i, 0-i | Real Schur form = A itself | Spectral radius: 1
Frequently Asked Questions
What is the Schur decomposition of a matrix?
The Schur decomposition factors any square matrix A into the product Q * T * Q-conjugate-transpose, where Q is a unitary (or orthogonal for real matrices) matrix and T is an upper triangular matrix. The diagonal entries of T are the eigenvalues of A. This decomposition always exists for any square matrix, unlike eigendecomposition which requires a full set of linearly independent eigenvectors. The Schur form is computationally stable and is the basis for most practical eigenvalue algorithms. It reveals the eigenvalues without requiring explicit eigenvector computation, making it a fundamental tool in numerical linear algebra.
How does Schur decomposition differ from eigendecomposition?
Eigendecomposition writes A = P * D * P-inverse where D is diagonal with eigenvalues, but it only works when A has n linearly independent eigenvectors (is diagonalizable). Many matrices, like defective matrices with repeated eigenvalues, cannot be eigendecomposed. Schur decomposition always exists for any square matrix. The tradeoff is that T is upper triangular rather than diagonal, so the off-diagonal entries are generally non-zero. For normal matrices (where A commutes with its conjugate transpose), the Schur form T is actually diagonal, making the Schur decomposition equivalent to eigendecomposition.
What is the real Schur form?
When working with real matrices that have complex eigenvalues, the real Schur form avoids complex arithmetic by using a quasi-upper-triangular matrix. Instead of complex diagonal entries, pairs of complex conjugate eigenvalues appear as 2x2 blocks on the diagonal. Each 2x2 block has the form [[a, b], [-c, a]] representing eigenvalues a plus or minus sqrt(bc) times i. The orthogonal matrix Q and the quasi-triangular T are both real. This real Schur form is preferred in numerical computations because it avoids the overhead and potential instability of complex floating-point arithmetic while still capturing all eigenvalue information.
What is the QR algorithm and how does it compute Schur decomposition?
The QR algorithm is the standard iterative method for computing the Schur decomposition. It repeatedly factors the matrix as A = QR (QR decomposition) and then forms the next iterate as RQ. Under suitable conditions, this sequence converges to the upper triangular Schur form T, and the accumulated product of the Q matrices gives the unitary factor. In practice, the matrix is first reduced to upper Hessenberg form (which preserves eigenvalues) to speed up each QR step. With shifts (using the Wilkinson or Francis shift strategies), convergence is typically cubic, making the algorithm both reliable and efficient.
What are the applications of Schur decomposition?
Schur decomposition is widely used in control theory for analyzing stability of dynamical systems, since the eigenvalues on the diagonal of T determine system behavior. It is used to compute matrix functions like the matrix exponential, logarithm, and square root by applying the scalar function to the triangular factor. In solving Sylvester and Lyapunov equations, both matrices are first Schur-decomposed to reduce the problem to triangular form. Signal processing uses it for subspace-based methods like MUSIC and ESPRIT. It also appears in multivariate statistics for principal component analysis and canonical correlation analysis.
How do you verify a Schur decomposition is correct?
To verify, compute Q * T * Q-conjugate-transpose and check that it equals the original matrix A (up to numerical precision). Also verify that Q is unitary by checking that Q-conjugate-transpose times Q equals the identity matrix. The diagonal elements of T should match the eigenvalues of A. For real Schur form, check that T is quasi-upper-triangular with at most 2x2 blocks on the diagonal. The Frobenius norm of the residual (A minus Q*T*Q-transpose) should be close to machine epsilon times the norm of A. These checks are standard in numerical software testing.