21. Eigenspaces; algebraic vs. geometric multiplicity

📖 Reading · 9 min
💡 Every code box below is live — edit it and hit Run.

§19.1 stated diagonalizability requires n independent eigenvectors, and that a repeated eigenvalue can fail to supply enough. This lesson makes "enough" precise with two numbers attached to every eigenvalue, and shows exactly when they disagree — the single obstruction to diagonalization.

Eigenspaces

For eigenvalue \lambda, the eigenspace is

E_\lambda=\operatorname{Null}(A-\lambda I)

— every eigenvector for \lambda, together with \vec0 (thrown back in to make it a genuine subspace, per §17.4's null-space construction; recall \vec0 itself is never called an eigenvector). E_\lambda is a subspace of \mathbb{R}^n by the usual null-space argument.

Two multiplicities

  • Algebraic multiplicity (\operatorname{am}): how many times \lambda appears as a root of the characteristic polynomial (§19.0) — e.g. (\lambda-2)^3(\lambda-5)=0 gives \lambda=2 algebraic multiplicity 3.
  • Geometric multiplicity (\operatorname{gm}): \dim E_\lambda — how many independent eigenvectors \lambda actually supplies.

The fundamental inequality: 1\le\operatorname{gm}(\lambda)\le\operatorname{am}(\lambda) for every eigenvalue. The lower bound holds because an eigenvalue, by definition, has some eigenvector. The upper bound is a genuine theorem (not proved here, but usable): geometric multiplicity can never exceed algebraic — an eigenvalue can never have more independent eigenvectors than its multiplicity as a characteristic-polynomial root suggests, only fewer.

The diagonalizability test, precisely

A is diagonalizable \iff \operatorname{gm}(\lambda)=\operatorname{am}(\lambda) for every eigenvalue \lambda. When every eigenvalue's multiplicities match, the eigenspaces' dimensions sum to n (since the algebraic multiplicities always sum to n, by the Fundamental Theorem of Algebra from §19.0), producing exactly n independent eigenvectors in total — one basis per eigenspace, and eigenvectors from different eigenspaces are automatically independent of each other (§19.3 uses this fact directly). If even one eigenvalue has \operatorname{gm}<\operatorname{am}, there's a shortfall — too few eigenvectors to fill out P, and A cannot be diagonalized. This case is called defective, and §19.4's Jordan form is exactly the repair.

Distinct eigenvalues are the special case \operatorname{am}=1 for every \lambda — since 1\le\operatorname{gm}\le\operatorname{am}=1 forces \operatorname{gm}=1 too, automatically satisfying the test. This is why §19.1 could state "distinct eigenvalues \Rightarrow diagonalizable" without checking geometric multiplicity separately: with \operatorname{am}=1 everywhere, there's no room for a gap to open up.

Doing it in Python

import sympy as sp

A = sp.Matrix([[5, 1], [0, 5]])   # repeated eigenvalue, defective
lam = sp.Symbol('lambda')

charpoly = A.charpoly(lam)
print("characteristic polynomial:", charpoly.as_expr())

for val, am in A.eigenvals().items():
    gm = len((A - val*sp.eye(2)).nullspace())
    print(f"lambda={val}: algebraic={am}, geometric={gm}")

print("diagonalizable:", A.is_diagonalizable())
characteristic polynomial: lambda**2 - 10*lambda + 25
lambda=5: algebraic=2, geometric=1
diagonalizable: False

A contrasting example where the multiplicities match despite a repeated eigenvalue:

import sympy as sp

A = sp.Matrix([[5, 0], [0, 5]])   # repeated eigenvalue, NOT defective
lam = sp.Symbol('lambda')

for val, am in A.eigenvals().items():
    gm = len((A - val*sp.eye(2)).nullspace())
    print(f"lambda={val}: algebraic={am}, geometric={gm}")

print("diagonalizable:", A.is_diagonalizable())
lambda=5: algebraic=2, geometric=2
diagonalizable: True

Worked example

Find the eigenspaces of A=\begin{pmatrix}4&1&0\\0&4&0\\0&0&2\end{pmatrix} and determine whether A is diagonalizable.

A is upper-triangular, so eigenvalues are the diagonal entries: \lambda=4 (algebraic multiplicity 2, appearing twice on the diagonal) and \lambda=2 (algebraic multiplicity 1).

\lambda=4: (A-4I)\vec v=\vec0: \begin{pmatrix}0&1&0\\0&0&0\\0&0&-2\end{pmatrix}\vec v=\vec0\Rightarrow v_2=0,\,v_3=0, v_1 free. E_4=\operatorname{span}\{(1,0,0)\}geometric multiplicity 1.

\lambda=2: geometric multiplicity is automatically 1 (an eigenvalue with algebraic multiplicity 1 always has geometric multiplicity exactly 1, by the fundamental inequality's two bounds meeting).

\boxed{\operatorname{gm}(4)=1<2=\operatorname{am}(4)\ \Longrightarrow\ A\text{ is NOT diagonalizable}}

Sanity check. The shortfall is entirely due to the "1" sitting in position (1,2) of A — off the diagonal, in the block belonging to the repeated eigenvalue 4. Zero that single entry out and A becomes diagonal already (\operatorname{gm}(4) would jump to 2, matching its algebraic multiplicity) — confirming the defect comes from exactly that coupling between the first two coordinates, not from the eigenvalues themselves.

Your turn

1. A matrix has characteristic polynomial (\lambda-1)^2(\lambda-3). What is \operatorname{am}(1)? What are the possible values of \operatorname{gm}(1)?

2. Is A=\begin{pmatrix}3&0&0\\0&3&0\\0&0&3\end{pmatrix} diagonalizable? Compute \operatorname{am} and \operatorname{gm} for its eigenvalue.

3. True or false: geometric multiplicity can exceed algebraic multiplicity.

Solutions

1. \operatorname{am}(1)=2 (it's a double root). By the fundamental inequality, 1\le\operatorname{gm}(1)\le2 — so \operatorname{gm}(1)\in\{1,2\}, and both actually occur for different matrices sharing this characteristic polynomial (compare the two worked-Python examples above, both with \operatorname{am}=2 but different \operatorname{gm}).

2. \lambda=3 is the only eigenvalue, with \operatorname{am}=3. A-3I=0 (the zero matrix), whose null space is all of \mathbb{R}^3\operatorname{gm}=3 too. \operatorname{gm}=\operatorname{am}, so yes, diagonalizable (trivially — A is already diagonal, in fact a scalar multiple of I, so every nonzero vector is an eigenvector).

3. False. This is exactly the fundamental inequality's upper bound: \operatorname{gm}(\lambda)\le\operatorname{am}(\lambda) always — a theorem, not just an empirical pattern. Geometric multiplicity can fall short of algebraic (the defective case) or match it exactly, but never exceed it.

Check yourself in code

For A=\begin{pmatrix}2&1&0\\0&2&1\\0&0&2\end{pmatrix}, find the algebraic and geometric multiplicity of its only eigenvalue and report whether A is diagonalizable.

Print exactly this:

lambda=2: algebraic=3, geometric=1
diagonalizable: False
import sympy as sp

A = sp.Matrix([[2, 1, 0], [0, 2, 1], [0, 0, 2]])

for val, am in A.eigenvals().items():
    gm = len((A - val*sp.eye(3)).nullspace())
    print(f"lambda={val}: algebraic={am}, geometric={gm}")
# print whether A is diagonalizable, using A.is_diagonalizable()
import sympy as sp

A = sp.Matrix([[2, 1, 0], [0, 2, 1], [0, 0, 2]])

for val, am in A.eigenvals().items():
    gm = len((A - val*sp.eye(3)).nullspace())
    print(f"lambda={val}: algebraic={am}, geometric={gm}")

print("diagonalizable:", A.is_diagonalizable())

Every eigenvalue carries two multiplicities: algebraic (root multiplicity in the characteristic polynomial) and geometric (\dim E_\lambda, the actual eigenvector count) — always 1\le\operatorname{gm}\le\operatorname{am}. A is diagonalizable exactly when these match for every eigenvalue; a shortfall anywhere makes A defective.

Next: similar matrices — the precise relationship D=P^{-1}AP generalizes to, and the quantities (trace, determinant, eigenvalues, rank) that stay invariant no matter which basis a matrix is viewed through.