RadicalEigenPackage

radeigen.spad line 1 [edit on github]

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: Matrix Fraction Polynomial Integer -> List Record(radval: Expression Integer, radmult: Integer, radvect: List Matrix Expression Integer)

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