Computing Jordan Canonical Form I know how to compute Jordan Canonical Form of a nilpotent matrix, but I find a little bit tedious and long my method for computing the JCF of a general triangulable matrix. I'll show you how I compute the JCF, if you think you know a faster way to do it, please tell me.
Let $A\in M_{n\times n}(\mathbb{R}$) be a triangulable matrix, and let $\text{Sp}(A)=\{\lambda_1, \ldots, \lambda_k\}$, with $k\le n$, its spectrum and $p_A(t)=(-1)^k(t-\lambda_1)^{h_1}\cdots (t-\lambda_k)^{h_k}$, with $h_1+\cdots+h_k=n$, its characteristic polynomial. By primary decomposition theorem $\mathbb{R}^n=\text{Ker}(A-\lambda_1I)^{h_1}\oplus\cdots\oplus\text{Ker}(A-\lambda_kI)^{h_k}$ and each addendum is $A$-invariant. Let $W_{\lambda_j}=\text{Ker}(A-\lambda_jI)^{h_j}$. We also know from the theory that $\dim W_{\lambda_j}=h_j$ and that the characteristic polynomial of the restriction of $A$ to $W_{\lambda_j}$ is $\pm (t-\lambda_{j})^{h_j}$.
Now, what I do when I compute JCF, is writing primary decomposition, finding a basis $B_j$ of $W_{\lambda_j}$ and computing $M_j=\mathcal{M}_{B_j}(A)-\lambda_j I\in M_{h_j\times h_j}(\mathbb{R})$. At this point $M_j$ is a nilpotent matrix and I'm happy.
 A: If you only want the JCF, it is completely determined by the Segre characteristics, most of which you can find by just having the characteristic polynomial and minimal polynomial. So the key is that the minimal polynomial gives you the size/order of the largest simple Jordan block associated with a particular eigenvalue, and then with some arithmetic you are usually able to deduce the sizes of other blocks associated with the same eigenvalue. If you cannot deduce all the sizes in this way, then you have to resort to determining the dimension of the relevant eigenspace.
Once you have the JCF then you can calculate the basis (columns of nonsingular matrix $P$) by equating the columns of $AP$ and $PJ$ (since $P^{-1}AP=J$) - so if $P=[X_1,X_2,X_3]$ you will get a series of equations $AX_i=X_j$ for example - it is usually relatively simple to compute from here.
For detail please refer to this book: http://www.amazon.com/Matrices-Linear-Transformations-Edition-Mathematics/dp/0486663280 . It has a very clear description of the method... 
