It's really really had to compute the Jordan normal form numerically, so that's not a great route to go down. (To see this, note that the set of diagonalisable matrices is dense in the set of square matrices, so rounding error will make it hard to find non-trivial Jordan blocks even if they should be there)
Can you give the maths of what you need? The link to that book doesn't work.
There are some tricks you can use (eg, can you write this as a generalised eigenproblem with an SPD pencil), but you need to work out the structure. For non-normal matrices, the eigenvalues aren't necessarily a very smooth function of the matrix (it comes down to pseudospectra).