Invariant Subspaces & Triangularization

Schur decomposition

Schur's theorem is the unsung workhorse of matrix theory: every complex square matrix A can be turned into an upper-triangular matrix by an orthonormal change of basis. No matrix is too wild — you may not be able to diagonalize it, but you can always triangularize it, and you can do so with a unitary matrix, the numerically gentlest kind of change of basis.

Formally, for any A in C^(n x n) there is a unitary Q (so Q^* Q = I) and an upper-triangular T with A = Q T Q^*. The diagonal entries of T are the eigenvalues of A, in whatever order you arranged the unitary. The proof peels off one eigenvector at a time, orthonormalizes, and recurses on a smaller block — invariance plus Gram-Schmidt, nothing more.

Why it matters: because Q is unitary the transformation is perfectly conditioned, so Schur form, not Jordan form, is what numerical algorithms (the QR algorithm) actually compute. Jordan form is exact but discontinuous and unstable to round-off; Schur form is stable and almost as informative. When A is normal (A A^* = A^* A) the triangular T is in fact diagonal — that special case is the spectral theorem.

A = Q T Q^*, Q^* Q = I, T upper-triangular, diag(T) = eigenvalues

Unitary similarity to upper-triangular always exists over C; the diagonal reads off the eigenvalues in your chosen order.

Over the reals you get the real Schur form: block-upper-triangular with 1x1 blocks for real eigenvalues and 2x2 blocks for conjugate complex pairs, using only orthogonal (real) similarity.

Also called
Schur triangularizationSchur form舒尔三角化