Jordan canonical form and rational canonical form for 10 x 10 matrix Suppose I have the $10 \times 10$ matrix $M$ given by 
$$M= \begin{bmatrix} 
2 & 2 & 11 & 18 & -11 & 3 & 28 & 21 & -8 & 4\\ 
13 & 1 & -34 & -50 & 51 & -3 & -75 & -75 & 27 & 3 \\
-9 & 3 & 30 & 33 & -42 & 5 & 52 & 62 & -23 & 3\\
1 & 3 & 4 & 3 & -7 & 5 & 3 & 14 & -3 & 5\\
-9 & 2 & 21 & 19 & -30 & 2 & 31 & 43 & -15 & 1\\
-5 & 3 & 12 & 6 & -19 & 4 & 10 & 27 & -8 & 3\\
3 & -3 & -13 & -13 & 18 & -3 & -18 & -29 & 10 & -5\\
-4 & 0 & 10 & 13 & -14 & 0 & 20 & 21 & -8 & 0\\
2 & -3 & -6 & 2 & 7 & -1 & 2 & -10 & 3 & -4\\
2 & -3 & -11 & -7 & 13 & -2 & -12 & -20 & 8 & -5\\
\end{bmatrix}.$$
Now I know that the characteristic polynomial of $M$ is $(x+1)^3 (x-2)^7$. I had to do some nullity calculations to figure out the minimal polynomial, which turns out to be $(x+1)^2 (x-2)^3$. Putting my matrix $M$ into Maple gave me the Jordan canonical form and rational canonical form of $M$. But I really did not get the grasp of how I could use nullspaces to get these canonical forms. What would be the step-by-step methods here to find them only using nullspaces, rather than just simply plugging it into Maple?
 A: You can determine the Jordan normal form as follows:
Let $A$ be an $n\times n$ matrix with different eigenvalues $\lambda_1,\lambda_2,...,\lambda_k$.
For each $1 \le i \le k$, look at the generalized Eigenspaces $$Ker(A-\lambda_i Id) \subseteq Ker(A-\lambda_i Id)^2 \subseteq Ker(A-\lambda_i Id)^3 \subseteq ...$$
Let $s$ be the least integer such that $Ker(A-\lambda_i Id)^s = Ker(A-\lambda_i Id)^{s+1}$. One can see that this is the multiplicity of $\lambda_i$ in the minimal polynomial of $A$.
Now choose a $v \in Ker(A-\lambda_i Id)^s \setminus Ker(A-\lambda_i Id)^{s-1}$and add the elements $((A-\lambda_i)^{s-1}(v),(A-\lambda_i)^{s-2}(v)...,(A-\lambda_i)(v),v)$ to your Jordan basis $B$ (These elements will give you a Jordan block of size s). Repeat this process with vectors which are not in the linear hull of $B$ together with $Ker(A-\lambda_i)^{s-1}$ until $B \cup Ker(A-\lambda_i)^{s-1} \supseteq Ker(A-\lambda_i)^s$. Then proceed by finding the greatest $k$ smaller than $s$ with  $Ker(A-\lambda_i Id)^k \setminus Span(Ker(A-\lambda_i Id)^{k-1} \cup B)\ne \emptyset$ choose a $u \in Ker(A-\lambda_i Id)^k \setminus Span(Ker(A-\lambda_i Id)^{k-1} \cup B)$ and add $((A-\lambda_i)^{k-1}(u),(A-\lambda_i)^{k-2}(u)...,(A-\lambda_i)(u),u)$ to $B$ (giving you a Jordan block of size k). 
Repeat that until $B$ contains a basis for $Ker(A-\lambda_i Id)^s$, then do the same for every other eignvector and, finally, you have got your Jordan Basis. (Of course, you obtain your Jordan matrix as $B^-1AB^1$ where $B$ is your basis transformation matrix.) 
