# Exact jordan form of large matrix

Hi, I have a, say, 301x301 matrix, M in QQbar. I'm interested in computing, exactly, its JNF M = p * jf * ~p. The built in function computes p and jf with no problem for smaller matrices, but it seems to be stuck on M. I suspect that this is because the eigenvalues have very large expressions in terms of +,*,radicals, etc. Am I right about that? My understanding is that JNF is O(n^3), if we assume the basic operations are constant time. If the representation of terms is very large, we cannot assume constant time.

I was wondering if it was possible, instead, to express the terms of p, jf, and ~p as roots of polynomials, i.e. "root of f near c" ---where f is a polynomial represented by a list of coefficients and c is some approximation of the true value of the root with sufficient precision to differentiate it from the other roots of f. I suspect that in general this representation of terms will be much more space and time efficient. I think I've seen mathematica represent numbers in this way.

Is such a feature already available? Thanks!

edit retag close merge delete

Sort by ยป oldest newest most voted

Elements of QQbar are not stored as an expression involving radicals (those are not symbolic expressions), but with their minimal polynomial and some box around the correct root as you suggests (lazily).

Note that this representation does not allow constant-time operations since the degree of the polynomial might grow and the location of the root might require more and more precision.

more