Package for the computation of eigenvalues and eigenvectors. This package works for matrices with coefficients which are rational functions over the integers. (see Fraction Polynomial Integer). The eigenvalues and eigenvectors are expressed in terms of radicals.

eigenMatrix: Matrix Fraction Polynomial Integer -> Union(Matrix Expression Integer, failed)

`eigenMatrix(m)` returns the matrix `b` such that `b*m*(inverse b)` is diagonal, or “failed” if no such `b` exists.

gramschmidt: List Matrix Expression Integer -> List Matrix Expression Integer

`gramschmidt(lv)` converts the list of column vectors `lv` into a set of orthogonal column vectors of euclidean length 1 using the Gram-Schmidt algorithm.

normalise: Matrix Expression Integer -> Matrix Expression Integer

`normalise(v)` returns the column vector `v` divided by its euclidean norm; when possible, the vector `v` is expressed in terms of radicals.

orthonormalBasis: Matrix Fraction Polynomial Integer -> List Matrix Expression Integer

`orthonormalBasis(m)` returns the orthogonal matrix `b` such that `b*m*(inverse b)` is diagonal. Error: if `m` is not a symmetric matrix.

radicalEigenvalues: Matrix Fraction Polynomial Integer -> List Expression Integer

`radicalEigenvalues(m)` computes the eigenvalues of the matrix `m`; when possible, the eigenvalues are expressed in terms of radicals.

radicalEigenvector: (Expression Integer, Matrix Fraction Polynomial Integer) -> List Matrix Expression Integer

`radicalEigenvector(c, m)` computes the eigenvector(`s`) of the matrix `m` corresponding to the eigenvalue `c`; when possible, values are expressed in terms of radicals.

`radicalEigenvectors(m)` computes the eigenvalues and the corresponding eigenvectors of the matrix `m`; when possible, values are expressed in terms of radicals.