# Non-inductive proof of the spectral theorem (for normal matrices)

Here we present a non-inductive proof of the spectral theorem for normal matrices (which doesn’t use, for instance, proposition 8.6.4 in Artin’s Algebra). (But it does seem to be the same as the proof in Herstein’s Topics in algebra.) It is motivated by a similar direct proof (presented in my class) for Hermitian operators with ${n}$ distinct eigenvalues.

We work in matrix form, so we need to prove that there exists an orthonormal basis of ${\mathbb{C}^n}$ consisting of eigenvectors of a normal matrix ${A}$.

First we show that ${A}$ has no generalized eigenvectors of order ${2}$ (or higher). Fix ${\lambda\in\mathbb{C}}$, and define ${A' = A-\lambda I}$. Since ${I = I^*}$ commutes with every ${n\times n}$ matrix, ${A'}$ is normal. It suffices to show that ${A'X=0}$ whenever ${A'^2 X = 0}$ (here ${X\in\mathbb{C}^n}$ is a vector). Suppose the latter holds. Since ${A',A'^*}$ commute,

$\displaystyle \lvert A'^*A' X\rvert^2 = [X^* A'^*A'] [A'^*A' X] = [X^*(A'^*)^2] [A'^2 X] = 0 \implies A'^*A' X = 0,$

from which it similarly follows that

$\displaystyle \lvert A'X \rvert^2 = [X^*A'^*] [A'X] = X^* (A'^*A' X) = 0 \implies A'X = 0,$

as desired.

Hence ${A}$ has all Jordan blocks of size ${1}$ (${A}$ is diagonalizable). Let ${\lambda_1,\ldots,\lambda_k}$ be the distinct eigenvalues of ${A}$, with corresponding eigenspaces ${E_{\lambda_1},\ldots,E_{\lambda_k}}$, so that ${\mathbb{C}^n = \bigoplus_{i=1}^{k} E_{\lambda_i}}$.

We now prove that the ${E_{\lambda_i}}$ are pairwise orthogonal. Let ${r,s}$ be two distinct indices and take ${X\in E_{\lambda_r}}$, ${Y\in E_{\lambda_s}}$. Let ${A' = A-\lambda_r I}$, so ${A'}$ is normal as before. Then ${A'X = 0}$ (by definition), so

$\displaystyle \lvert A'^* X \rvert^2 = [X^*A'] [A'^*X] = [X^*A'^*] [A'X] = 0\implies A'^*X = 0\implies A^* X = \overline{\lambda_r} X.$

Therefore

$\displaystyle X^* (\lambda_s Y) = X^* (AY) = (A^* X)^* Y = (\lambda_r X^*)Y \implies (\lambda_r-\lambda_s) X^*Y = 0,$

so ${\lambda_r\ne\lambda_s}$ forces ${X^*Y = 0}$, establishing the desired orthogonality.

Finally, we can just choose arbitrary orthonormal bases for the (nondegenerate) individual ${E_{\lambda_i}}$, and merge the resulting ${k}$ bases into a single orthonormal basis of eigenvectors for ${A}$, so we’re done.