JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

From diagonalization to the real spectral theorem

Vol I told you which operators diagonalize. This guide reveals a class that always does — and does it with an orthonormal eigenbasis: real symmetric operators. That perfect behavior is the real spectral theorem.

Where Volume I left diagonalization

Volume I gave you diagonalization: an operator A is diagonalizable when it has an eigenbasis, so A = P D P^-1. But two things were left unsettled. First, not every operator diagonalizes at all — defective ones don't. Second, even when P exists, its columns are usually just *some* basis: not orthogonal, so P^-1 is an awkward inverse rather than a clean transpose.

The spectral theorem fixes both defects at once for a special class of operators. For these operators an orthonormal basis of eigenvectors *always* exists, so the change-of-basis matrix is an orthogonal matrix Q with Q^-1 = Q^T. Diagonalization becomes A = Q D Q^T — geometry-preserving, numerically stable, and unconditionally guaranteed.

Symmetric means self-adjoint

The special class is the symmetric (real) operators: A = A^T. The reason this matters is that symmetry is the matrix shadow of an inner-product condition. A real operator is *self-adjoint* when <Ax, y> = <x, Ay> for all x, y, and over R^n with the standard dot product that is exactly A = A^T. The spectral theorem for self-adjoint operators is best stated in this inner-product language because it is the symmetry, not the bookkeeping, that does the work.

Why eigenvalues are real (the one-line argument):

  let A v = lambda v,  v != 0.  Take the inner product with v:
      lambda <v, v>  =  <A v, v>  =  <v, A v>  =  conj(lambda) <v, v>
  since <v, v> > 0,  lambda = conj(lambda)  =>  lambda is REAL.

Why eigenvectors are orthogonal across distinct eigenvalues:

  A u = a u,  A w = b w,  a != b:
      a <u, w> = <A u, w> = <u, A w> = b <u, w>
      (a - b) <u, w> = 0   and a != b   =>   <u, w> = 0.
Self-adjointness forces real eigenvalues and orthogonal eigenvectors.

The real spectral theorem, stated and used

Putting it together: a real operator is orthogonally diagonalizable if and only if it is symmetric. That is the real spectral theorem, and the matrix form is the orthogonal eigendecomposition A = Q D Q^T with Q orthogonal and D real diagonal. There is no multiplicity test to pass and no field to worry about — symmetry alone delivers a full orthonormal eigenbasis, even when eigenvalues repeat.

A = [2, 1; 1, 2]            # symmetric:  A = A^T

characteristic poly: det(A - x I) = (2 - x)^2 - 1 = x^2 - 4x + 3
  eigenvalues:  lambda_1 = 3,  lambda_2 = 1   (both real, as promised)

eigenvectors:
  lambda = 3:  (A - 3I) v = 0  ->  v_1 = (1, 1)
  lambda = 1:  (A - 1I) v = 0  ->  v_2 = (1, -1)
  check <v_1, v_2> = 1 - 1 = 0   -> already orthogonal!

normalize and stack into Q:
  q_1 = (1,  1)/sqrt(2),  q_2 = (1, -1)/sqrt(2)
  Q = [ 1/sqrt2,  1/sqrt2 ;  1/sqrt2, -1/sqrt2 ]    (Q^T Q = I)

then  A = Q D Q^T  with  D = diag(3, 1).
A symmetric 2x2 diagonalized orthogonally: A = Q D Q^T.

Notice the eigenvectors came out orthogonal for free. When an eigenvalue repeats, its eigenspace is multi-dimensional and you choose any Gram-Schmidt-orthonormalized basis inside it; eigenspaces for different eigenvalues are already orthogonal, so the pieces fit together into one orthonormal eigenbasis. The subtleties of the real theorem all concern this repeated-eigenvalue freedom — we will see the complex story in Guide 2.