When there are very small differences between entries in a diagonal matrix, sometimes JordanDecomposition
does not evaluate and gives an error message:
JordanDecomposition[{{1., 0.}, {0., 1. + 2.*10^(-16)}}]
(* Out: JordanDecomposition[{{1., 0.}, {0., 1.}}] *)
JordanDecomposition::pvec
: Unable to find principal vectors for eigenvalue 1.`.
Weirdly, the documentation for this error message says
This message is generated by a failure in the algorithm for computing
JordanDecomposition
of a symbolic matrix.
although the matrix is clearly numeric. The corresponding symbolic matrix works fine:
JordanDecomposition[{{a, 0}, {0, b}}]
(* Out: {{{1, 0}, {0, 1}}, {{a, 0}, {0, b}}} *)
Is this a bug?
Is there a workaround?
JordanDecomposition[{{1, 0}, {0, 1 + 2*10^(-16)}}]
$\endgroup$