Last updated September 28, 2026 · Report an error
Every square matrix A can be written as A = QTQᵀ, where Q is orthogonal and T is quasi-upper-triangular — fully upper triangular if every eigenvalue is real, with a 2×2 block wherever a complex-conjugate pair sits. This Schur form is what the QR algorithm actually converges to internally on its way to finding eigenvalues.
This calculator computes the real Schur decomposition of any square matrix up to 6×6.
How it works
Enter a square matrix. The tool reduces it to Hessenberg form, then applies repeated QR steps — accumulating the orthogonal transforms into Q — until the off-diagonal entries below the (quasi-)diagonal become negligible, leaving T.
- Click Calculate to see your results.
Examples
A symmetric 2×2 example
For A = [[2,1],[1,2]], Schur decomposition gives a fully upper triangular T with the eigenvalues 3 and 1 on its diagonal, and an orthogonal Q such that Q·T·Qᵀ reconstructs A exactly.
Who should use it
- A numerically robust way to find eigenvalues for any square matrix, including non-diagonalizable ones.
- A building block for other matrix functions and decompositions in numerical software.
Industry applications
- Numerical linear algebra and scientific computing
- Control theory
Advantages
- Exists for every square matrix, unlike eigendecomposition.
- Q is always orthogonal, making it numerically well-behaved.
Limitations
- T isn't necessarily fully diagonal, so reading off eigenvalues from complex-pair blocks needs one extra small step (solving that block's quadratic).
Common mistakes to avoid
- Expecting T to always be fully diagonal — for matrices with complex-conjugate eigenvalue pairs, T is only quasi-upper-triangular (2×2 blocks remain), which is expected behavior in real arithmetic.
Best practices
- Verify your result by multiplying Q·T·Qᵀ back together and confirming it reconstructs your original matrix A.
Tips
- If you just need the eigenvalues themselves (not the full Q and T matrices), the Eigenvalues Calculator (General Matrix) uses the same underlying algorithm and presents the result more directly.