Search Knowledge

© 2026 LIBREUNI PROJECT

Mathematics / Linear Algebra

Canonical Forms & Jordan Normal Form

Canonical Forms and the Jordan Normal Form

Diagonalization is the most convenient way to understand a linear operator, as it decomposes the action of a matrix into independent scaling operations along its eigenvectors. However, many matrices are deficient, meaning they do not possess a complete basis of eigenvectors. The Jordan Canonical Form (JCF) provides the ultimate generalization: it is the “closest” a non-diagonalizable matrix can get to being diagonal.

1. When Diagonalization Fails

A matrix is diagonalizable if and only if for every eigenvalue , the algebraic multiplicity (its multiplicity as a root of the characteristic polynomial ) equals its geometric multiplicity (the dimension of the eigenspace ).

When , the matrix is deficient. Geometrically, this means the operator “shears” the space in a way that collapses dimensions, preventing the existence of an eigenbasis. To resolve this, we must look beyond the kernels of to the kernels of higher powers .

2. Generalized Eigenvectors and Chains

We define the generalized eigenspace associated with as: For a matrix of size , this sequence of kernels stabilizes at . Thus, . The dimension of is exactly .

A Jordan chain of length is a sequence of vectors such that:

Equivalently, but .

3. The Jordan Block

A Jordan block is a upper triangular matrix with the eigenvalue on the diagonal and s on the superdiagonal:

The action of on the basis formed by a Jordan chain exactly corresponds to the structure of a Jordan block.

4. The Jordan Canonical Form Theorem

Theorem: Let be an matrix over an algebraically closed field (like ). Then is similar to a block diagonal matrix : where is the Jordan Canonical Form of . This form is unique up to the permutation of the Jordan blocks.

5. Minimal Polynomial and JCF

The minimal polynomial is the unique monic polynomial of least degree such that . While the characteristic polynomial tells us the total dimensions of generalized eigenspaces, the minimal polynomial tells us the size of the largest Jordan block for each eigenvalue ().

  • is diagonalizable has no repeated roots.
  • All Jordan blocks for are .

6. Computing the JCF

Determining the block structure involves calculating the ranks of powers of the shifted matrix . Let . The number of Jordan blocks of size at least for is given by: The number of Jordan blocks of exactly size is: (setting ).

7. Applications: Differential Equations

For a system , the solution is . If is non-diagonalizable, we compute the matrix exponential via the JCF: The exponential of a Jordan block is:

This explains the appearance of terms like in the solutions of ODEs with repeated roots in the characteristic equation.

8. Rational Canonical Form

If the field is not algebraically closed (e.g., ), a matrix might not have JCF over . The Rational Canonical Form (or Frobenius Normal Form) decomposes the space into cyclic subspaces based on the invariant factors of the matrix, using companion matrices on the blocks. This form works over any field.

Python Implementation: Computing JCF with SymPy

SymPy provides a robust way to compute the Jordan Normal Form and the similarity transform .

import sympy as sp

# Define a non-diagonalizable matrix
A = sp.Matrix([
    [5,  4,  2,  1],
    [0,  1, -1, -1],
    [-1, -1, 3,  0],
    [1,  1, -1,  2]
])

# Compute Jordan Form
# P is the transition matrix, J is the Jordan Form
P, J = A.jordan_form()

print("Jordan Canonical Form (J):")
sp.pprint(J)

print("\nSimilarity Transform Matrix (P):")
sp.pprint(P)

# Verify A = P * J * P^-1
assert A == P * J * P.inv()
print("\nVerification successful: A = PJP^-1")

Conceptual Check

If a matrix A has characteristic polynomial (x-3)^5 and minimal polynomial (x-3)^2, what is the largest possible size of a Jordan block for λ=3?

Conceptual Check

What does the geometric multiplicity of an eigenvalue λ represent in terms of Jordan blocks?

Conceptual Check

Consider a Jordan block J_k(λ). What is the rank of (J_k(λ) - λI)?