JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Building the Form and Proving It Is Unique

Now we assemble a full Jordan canonical form end to end, build the change-of-basis matrix, and see why the answer is essentially one of a kind.

Assembling A = P J P^-1

Every complex n-by-n matrix is similar to a Jordan canonical form J: there is an invertible P with A = P J P^-1. The columns of P are a Jordan basis — the Jordan chains, written bottom-to-top, eigenvalue by eigenvalue. Read it as a change of basis: in the world of P's columns, A is just the clean block-diagonal J.

Worked example.  A = [5 1 0 0;
                      0 5 0 0;
                      0 0 5 0;
                      0 0 0 3]    (already nearly there to expose the recipe)

Eigenvalue 5: algebraic mult 3.  N = A - 5I has rank 1 on that block group
   -> d_1 = 3 - 1 = 2 blocks ; ranks give partition (2, 1)
Eigenvalue 3: a 1-by-1 block.

      J = [5 1 0 0;
           0 5 0 0;
           0 0 5 0;
           0 0 0 3]

Jordan basis (columns of P), chains bottom-to-top:
   for 5:  chain {u1, u2} with (A-5I)u2 = u1, (A-5I)u1 = 0 ; lone eigvec w
   for 3:  eigenvector z
   P = [ u1 | u2 | w | z ]    and    A = P J P^-1
Block-size partition (2,1) for lambda=5 and a single block for lambda=3 assemble into J; the chains fill the columns of P.

The full recipe

With the previous guides in hand the construction is mechanical. The eigenvalues come from the characteristic polynomial, the block sizes come from rank data, and the basis comes from the chains. Here is the end-to-end loop you run for any complex matrix.

  1. Find eigenvalues from the characteristic polynomial; each contributes a generalized eigenspace that becomes one group of Jordan blocks.
  2. For each lambda, compute ranks of powers of (A - lambda I) and apply the rank-jump formula to get the block-size partition.
  3. Build a Jordan chain for each block (top generalized eigenvector down to an eigenvector); collect all chains as the columns of P.
  4. Write J block-diagonal with one J_k(lambda) per chain, ordered consistently with P. Verify A P = P J.

Why it is essentially unique

The Jordan basis P is far from unique — you can rescale and recombine chains. But J itself is unique up to the order of its blocks. The reason is the previous guide: the eigenvalues and the rank-jump partitions are similarity invariants, and they completely determine the multiset of blocks. This is the uniqueness of the Jordan form.