What a Jordan block looks like
A Jordan block J_k(lambda) is a k-by-k matrix with lambda on the diagonal, 1 on the superdiagonal (the slot just above the diagonal), and 0 everywhere else. A 1-by-1 block is just [lambda] — an ordinary eigenvalue. The bigger the block, the more 'coupling' there is between basis vectors.
J_1(5) = [5]
J_3(5) = [5 1 0;
0 5 1;
0 0 5]
Write J_3(5) = 5*I + N where N = [0 1 0;
0 0 1;
0 0 0]
N is nilpotent: N shifts basis vectors down the chain,
N e3 = e2, N e2 = e1, N e1 = 0, and N^3 = 0.Building a Jordan chain
A Jordan chain of length k is a sequence v_k, v_(k-1), ..., v_1 of generalized eigenvectors where each maps to the previous one under (A - lambda I): (A - lambda I)v_j = v_(j-1), and the bottom one v_1 is a genuine eigenvector with (A - lambda I)v_1 = 0. The top vector v_k (the one of highest rank) generates the whole chain by repeated application of (A - lambda I).
- Pick a top vector v_k in ker(A - lambda I)^k that is NOT in ker(A - lambda I)^(k-1) — a true rank-k generalized eigenvector.
- Set v_(k-1) = (A - lambda I)v_k, then v_(k-2) = (A - lambda I)v_(k-1), and keep applying the map.
- The chain stops at v_1 = (A - lambda I)v_2, which is an eigenvector. The k vectors v_1, ..., v_k are automatically linearly independent.
- Order the chain bottom-to-top as columns. On this basis the operator acts exactly as the Jordan block J_k(lambda).
The nilpotent skeleton
Subtract lambda and you are left with N = A - lambda I restricted to one generalized eigenspace, which is nilpotent: some power N^m = 0. The whole theory of Jordan blocks for a single eigenvalue is identical to the Jordan form of a nilpotent operator. The length of the longest chain equals the nilpotency index — the smallest m with N^m = 0.
Collecting all chains for all eigenvalues into one ordered basis gives the Jordan basis. In that basis the matrix is block-diagonal with one Jordan block per chain — that block-diagonal matrix is the Jordan canonical form we assemble fully in the next guide.