Spectral Theorem
The crown jewel of linear algebra: orthogonal diagonalization of normal operators
Historical Context
The spectral theorem has its roots in Cauchy's 1829 proof that real symmetric matrices have real eigenvalues and orthogonal eigenvectors. Hilbert extended this to infinite-dimensional spaces in his work on integral equations (1906), coining the term "spectrum" by analogy with the optical spectrum—eigenvalues of the hydrogen atom Hamiltonian produce the observed spectral lines.
The finite-dimensional spectral theorem for normal matrices was completed by the work of Schur (1909) and Toeplitz (1918). In quantum mechanics, the spectral theorem guarantees that observables (self-adjoint operators) have real measurement values, and the spectral decomposition gives the probability of each measurement outcome. Von Neumann's rigorous formulation (1932) extended the theorem to unbounded operators on Hilbert spaces.
2.1 Spectral Theorem for Symmetric Matrices
Theorem (Real Spectral Theorem)
If $A \in \mathbb{R}^{n \times n}$ is symmetric ($A = A^T$), then:
- All eigenvalues of $A$ are real
- Eigenvectors corresponding to distinct eigenvalues are orthogonal
- There exists an orthogonal matrix $Q$ such that $A = Q\Lambda Q^T$
The proof that eigenvalues are real follows from the identity $\lambda \|v\|^2 = \langle Av, v \rangle = \langle v, Av \rangle = \bar{\lambda}\|v\|^2$, forcing $\lambda = \bar{\lambda}$. Orthogonality of eigenvectors for distinct eigenvalues follows from $\lambda_1 \langle v_1, v_2 \rangle = \langle Av_1, v_2 \rangle = \langle v_1, Av_2 \rangle = \lambda_2 \langle v_1, v_2 \rangle$, so $(\lambda_1 - \lambda_2)\langle v_1, v_2 \rangle = 0$.
2.2 Normal Operators
Theorem (Complex Spectral Theorem)
A matrix $A \in \mathbb{C}^{n \times n}$ is unitarily diagonalizable ($A = U\Lambda U^*$ with$U$ unitary) if and only if $A$ is normal: $A^*A = AA^*$.
Normal matrices include: symmetric/Hermitian ($A = A^*$), skew-symmetric ($A = -A^*$), orthogonal/unitary ($A^*A = I$), and diagonal matrices. Non-normal matrices can be highly sensitive to perturbations—their eigenvalues may shift dramatically under small changes, a phenomenon quantified by the condition number of the eigenvector matrix.
2.3 Spectral Decomposition
The spectral decomposition expresses a normal matrix as a sum of orthogonal projections:
where $\lambda_1, \ldots, \lambda_k$ are the distinct eigenvalues and $P_i$ is the orthogonal projection onto the eigenspace $E_{\lambda_i}$. These projections satisfy:
- $P_i^2 = P_i$ (idempotent) and $P_i^* = P_i$ (self-adjoint)
- $P_iP_j = 0$ for $i \neq j$ (orthogonal)
- $\sum_{i=1}^k P_i = I$ (resolution of identity)
2.4 Functional Calculus
The spectral decomposition enables us to define any function of a normal matrix:
Important examples include the matrix square root $A^{1/2}$ (defined when all eigenvalues are non-negative), the matrix exponential $e^A$, and the matrix logarithm $\log(A)$ (defined when all eigenvalues are positive).
2.5 Applications
Positive definite matrices ($A = A^T$ with all $\lambda_i > 0$) arise as covariance matrices, Hessians of convex functions, and Gram matrices. They define ellipsoids $\{x : x^TAx \leq 1\}$ whose axes align with eigenvectors and whose semi-axis lengths are $1/\sqrt{\lambda_i}$.
The polar decomposition $A = UP$ (unitary times positive semidefinite) is the matrix analogue of $z = e^{i\theta}|z|$ for complex numbers. It decomposes any invertible transformation into a rotation/reflection followed by a stretching along orthogonal axes.
The min-max theorem (Courant-Fischer) characterizes eigenvalues variationally:$\lambda_k = \min_{\dim W = k} \max_{v \in W, \|v\|=1} v^TAv$, giving eigenvalues an optimization-theoretic interpretation fundamental to numerical methods and perturbation theory.
Computational Laboratory
This simulation verifies the spectral theorem for symmetric matrices, constructs the spectral decomposition with projection operators, demonstrates functional calculus, and explores positive definite matrices and the polar decomposition.
Spectral Theorem: Decomposition and Functional Calculus
PythonClick Run to execute the Python code
Code will be executed with Python 3 on the server