After not easily finding such a thing from a cursory search of the Maxima documentation, I spent a few hours over the weekend beginning to write a Maxima function to compute, for any given square matrix , an invertible matrix so that

where is the Jordan matrix that displays the eigenvalue/vector structure of .

It took several searches for me to find, but of course there’s already such a function — with a not so easily searched-for name — in the diag package: **ModeMatrix()**

To see just the matrix , **diag** provides** jordan()** and **dispJordan()**