Schur Decomposition

lean4-prooflinear-algebravisualization
A=QTQ,T upper triangular,  Q unitaryA = Q T Q^*,\quad T \text{ upper triangular},\; Q \text{ unitary}

Statement

For every ACn×nA \in \mathbb{C}^{n \times n} there exists a unitary matrix QQ (i.e.\ QQ=IQ Q^* = I) and an upper triangular matrix TT such that

A=QTQ.A = Q T Q^*.

The diagonal entries of TT are precisely the eigenvalues of AA (with multiplicity). When AA is normal (AA=AAA A^* = A^* A) the triangular form TT is actually diagonal, recovering the Spectral TheoremSpectral TheoremA=QΛQT  (real symmetric case)A = Q \Lambda Q^T \;\text{(real symmetric case)}Every real symmetric matrix is orthogonally diagonalizableRead more →.

Visualization

Take A=(0110)A = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}, the standard rotation by 90°90°. Over R\mathbb{R} it has no eigenvalues, but over C\mathbb{C} it has eigenvalues ±i\pm i.

Eigenvalues of A: λ₁ = i,  λ₂ = -i
Eigenvectors (columns of Q):
  q₁ = (1/√2)(1, -i)ᵀ,   q₂ = (1/√2)(1, i)ᵀ

Schur form T = QᴴAQ:
  T = ( i    *  )     (* = off-diagonal entry, value 0 here since A is normal)
      ( 0   -i  )

Because AA is unitary (hence normal), the Schur form is diagonal:

T=(i00i),Q=12(11ii).T = \begin{pmatrix} i & 0 \\ 0 & -i \end{pmatrix}, \qquad Q = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ -i & i \end{pmatrix}.
StepValue
Aq1A q_1iq1i \, q_1 (eigenvector)
Aq2A q_2iq2-i \, q_2 (eigenvector)
QAQQ^* A Qdiag(i,i)=T\text{diag}(i, -i) = T

Proof Sketch

  1. Base case. Pick any eigenvalue λ1\lambda_1 and unit eigenvector q1q_1. Extend to an orthonormal basis {q1,,qn}\{q_1, \ldots, q_n\} of Cn\mathbb{C}^n.
  2. Block reduction. Relative to this basis, AA has the block form (λ10A)\begin{pmatrix} \lambda_1 & * \\ 0 & A' \end{pmatrix} where AA' is (n1)×(n1)(n-1)\times(n-1).
  3. Induction. Apply the construction to AA'. By induction, AA' is unitarily similar to an upper triangular matrix TT', which assembles into T=(λ10T)T = \begin{pmatrix} \lambda_1 & * \\ 0 & T' \end{pmatrix}.
  4. Diagonal for normal matrices. If AA is normal, Tej2=Tej2\|T e_j\|^2 = \|T^* e_j\|^2 for every standard basis vector forces all off-diagonal entries to zero, giving a diagonal TT.

Connections

  • Spectral TheoremSpectral TheoremA=QΛQT  (real symmetric case)A = Q \Lambda Q^T \;\text{(real symmetric case)}Every real symmetric matrix is orthogonally diagonalizableRead more → — Schur decomposition restricted to normal matrices is exactly the spectral theorem; the diagonal form records eigenvalues
  • Cayley–Hamilton TheoremCayley–Hamilton TheorempA(A)=0  where  pA(λ)=det(λIA)p_A(A) = 0 \;\text{where}\; p_A(\lambda) = \det(\lambda I - A)Every square matrix satisfies its own characteristic polynomialRead more → — the characteristic polynomial of AA equals that of its Schur form TT (since det(AλI)=det(TλI)\det(A - \lambda I) = \det(T - \lambda I)); Cayley–Hamilton then applies equally to TT
  • Jordan Canonical FormJordan Canonical FormA=PJP1,J=iJni(λi)A = P J P^{-1},\quad J = \bigoplus_i J_{n_i}(\lambda_i)Every square matrix over an algebraically closed field is similar to a direct sum of Jordan blocks.Read more → — Schur triangularises without ordering eigenspaces; Jordan goes further, revealing the nilpotent structure inside each eigenspace

Lean4 Proof

import Mathlib.Analysis.Matrix.Spectrum

/-- Schur decomposition for Hermitian matrices (the normal case):
    the star-algebra automorphism by the conjugate of the eigenvector
    unitary diagonalizes A.  This is `conjStarAlgAut_star_eigenvectorUnitary`
    in Mathlib — a direct one-line alias. -/
theorem hermitian_schur
    {𝕜 : Type*} [RCLike 𝕜]
    {n : Type*} [Fintype n] [DecidableEq n]
    {A : Matrix n n 𝕜} (hA : A.IsHermitian) :
    Unitary.conjStarAlgAut 𝕜 _ (star hA.eigenvectorUnitary) A =
      Matrix.diagonal (RCLike.ofReal ∘ hA.eigenvalues) :=
  hA.conjStarAlgAut_star_eigenvectorUnitary