Computation of transformation matrix for jordan normal form: how to choose eigenvectors

During this semester at university we we're introduced to the jordan normal form of a matrix. While we never wrote down an explicit algorithm of how to find the matrix $B$, such that $B^{-1}AB$ is a jordan matrix, examples seemed to suffice to explain such an algorithm. Except, that is just what I thought. Here is the problem:

If there is jordan block of size greater then $1$ corresponding to the eigenvalue $\lambda$ of $A$, then we can find corresponding generalized eigenvectors (columns of $B$) by finding solutions to the equations:

$$(A-\lambda Id)v_1 = 0$$ $$(A-\lambda Id)v_2 = v_1$$ $$\dots$$

It seems "by accident" I always picked some $v_1$, s.t. everything worked it out and $B$ was as desired. However, it seems like it matters, which $v_1$ we pick. The question is:

How do I pick $v_1$ correctly? What about $v_2,v_3,\dots$: Does it matter, which ones I pick here? Is there a better way to do it?

• – Flaudre Nov 7 '16 at 14:30

This is the general concept:

Let $A$ be a Matrix with Eigenvalues $\lambda_1\dots,\lambda_n$ for an Eigenvalue $\lambda := \lambda_j$ define $G = A-\lambda \mathbb{I}$ Then $KerG\subset KerG^{2}\subset \dots \subset KerG^{d-1} = KerG^d$ (For some smallest $d$ the kernal doesn't change)

(1) Calculate the basis $B^{i}$ of $G^{i}$ starting from $i= 1$ upto $i =d$ such that $B^{i+1}$ always extends $B^{i}$ (The superscripts are just notation, the only place where I mean an actual power are for the $G$'s)

(1.1) To expand on the extending: Calculate $B^{i+1}$ and if necessary rewrite $B^{i+1}$ sucht that all the basisvectors in $B^{i+1}$ are exactly those in $B^i$ plus some new ones. (making the vectors match exactly is sometimes left out, as it is obvious which vectors extend but it is still done if only in the back of the head)

(2) Call the vectors that extend $B^{d}$: $v^d_{1},\dots,v^d_{s_d}$. And set $W_d = span\{v^d_{1},\dots,v^d_{s_d}\}$ (Those vectors are the $v_1$ you where referring to, i think, and no it does not matter which ones you choose they only have to expand $B^d$ in the correct way)

Observe that $G (W_d) := span\{G v^d_{1},\dots,G v^d_{s_d}\}$ are linear independent and $\not\in Ker G^{d-2}$

(4) In $Ker G^{d-1}$ choose all basisvectors $v^{d-1}_{1},\dots,v^{d-1}_{s_{d-1}}$ that are not in $Ker G^{d-2} \oplus G (W_d)$ and call the span of them $W_{d-1}$

Do this until you get to $Ker G$:

(5) Choose basisvectors of $Ker G$ that are not in $G(W_2)$: $W_1 := span\{v^1_{1},\dots,v^1_{s_1}\}$

(6) Now calculate the column vectors of the transformation matrix B: For each $W_i$, $i\in \{1,\dots,d\}$: you get $s_i * i$ vectors: $v^{i}_{1},\dots ,v^{i}_{s_i}, G v^{i}_{1},\dots ,G v^{i}_{s_i}, \dots \dots, G^{i-1} v^{i}_{1},\dots ,G^{i-1} v^{i}_{s_i}$

(7) Repeat (1-6) for all Eigenvalues and finally $B$ is the matrix of all the column vectors calculated in (6's)