Hi,

I am looking for algorithms that can perform a diagonalization, in a symbolic way, of a given matrix. I need to find a similarity transformation, if it exists. Desired features of the algorithms are: 1) Not using symbolic software like MATHEMATICA, MAPLE, etc. I need to program the algorithms in C++. 2) Not necessarily general. They may be limited to relatively simple cases, for example the case when eigenvalues of the matrix cannot be expressed analytically may not be covered, or they may be restricted to some simple class of expressions for the elements of the similarity matrix. 3) Described in scientific publications. I need references.

I would appreciate any pointers.

Leslaw

Mathematicaand Maple sidestep the problem of "symbolic expression" of roots by using a data structure containing the minimal integer-coefficient polynomial that corresponds to those roots, and an index. For actual general expressions for roots of polynomials with degree`$\geq 5$`

, you need theta functions. Which is a pretty deep rabbit hole... – J. M. Dec 16 '11 at 12:31