Section 1 Jordan Canonical Form
The Jordan Canonical Form of a matrix is a combinatorial computation, once we have the eigenvalues of the matrix. Notice, we are just finding the matrix representation itself, not the basis vectors which provide the representation (aka the similarity transformation).
We begin with a large-ish matrix, to demonstrate the most general situations.
Eigenvalues first, a nontrivial computation. In this example, they are all integers, which is atypical.
We will work with \(\lambda=2\), leaving \(\lambda=-1\) for you to experiment with. With algebraic multiplicity \(\alpha_A(2)=10\), we know the (invariant) generalized eigenspace for \(\lambda=2\) has dimension \(10\). We also know that \(A-2I_{15}\) is a nilpotent matrix. We do not know the index yet, but we know we only have to look as far as the tenth power.
So the kernels of the powers of \(A-2I_{15}\) “top out” at the fifth power, so the index is \(\iota_A(2)=5\).
How much information do we have now about the Jordan blocks owing to this eigenvalue? The nullity of \(A-2I_{15}\) is \(n(A-2I_{15})=4\), so there will be \(4\) Jordan blocks. With an index of \(5\), the largest block will be a \(5\times 5\) Jordan block.
To determine all of the sizes of the blocks, we compute the differences between the dimensions of the kernels. These are the \(s_i\), \(1\leq i\leq p\) in the proof of Jordan canonical form for nilpotent matrices.
From these numbers we can deduce the construction of the basis vectors for the kernels of the powers of \(A-2I_{15}\), where we would begin with the kernel of the fifth power. The Ferrers Diagram of this partition of \(10\) is a display of the transpose of the basis vectors listed at the end of the proof of Jordan canonical form for nilpotent matrices.
We want to reflect this diagram.
So the length of each row is the size of the blocks (a sequence of basis vectors) and we can get this information directly from the list that is the “flipped” partition. So we build the blocks (not forgetting \(\lambda=2\)!)
Let's check. Notice that this is one of the few matrix decompositions in Sage which does not automatically provide the similarity transformation. as the work above shows, we can determine the canonical form without ever computing a basis vector, we need only get nullities by counting non-pivot columns of matrices in reduced row echelon form (of powers of matrices).
Sage will compute the similarity transformation, if asked.
We can also provide a different similarity transformation, since we reverse-engineered this example (though our eigenvalues are in the wrong order).