# InnerEigenPackage F¶

- F: Field

This is a package for the exact computation of eigenvalues and eigenvectors. This package works for matrices with coefficients from a field over which we can factor polynomials. Eigenvalues in base field are always explicitly computed while the other are expressed in terms of their minimal polynomial.

- characteristicPolynomial: Matrix F -> SparseUnivariatePolynomial F
`characteristicPolynomial(m)`

returns the characteristic polynomial of the matrix`m`

- eigenvalues: (Matrix F, SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial F) -> List Union(F, SparseUnivariatePolynomial F)
`eigenvalues(m, fac)`

returns the eigenvalues of the matrix`m`

. Eigenvalues in base field are given explicitely, other are represented by mininal polynomial. fac is a factorizer for polynomials over`F`

.

- eigenvalues: Matrix F -> List Union(F, SparseUnivariatePolynomial F) if F has PolynomialFactorizationExplicit
`eigenvalues(m)`

returns the eigenvalues of the matrix`m`

.

- eigenvector: (Union(F, SparseUnivariatePolynomial F), Matrix F) -> List Vector SparseUnivariatePolynomial F
`eigenvector(eigval, m)`

returns the eigenvectors belonging to the eigenvalue`eigval`

for the matrix`m`

.

- eigenvectors: (Matrix F, SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial F) -> List Record(eigval: Union(F, SparseUnivariatePolynomial F), eigmult: NonNegativeInteger, eigvec: List Vector SparseUnivariatePolynomial F)
`eigenvectors(m, fac)`

returns the eigenvalues and eigenvectors for the matrix`m`

. The eigenvalues in base field and corresponding eigenvectors are explicitely computed, while the other eigenvalues are given via their minimal polynomial and the corresponding eigenvectors are expressed in terms of a “generic” root of such a polynomial. fac is a factorizer for polynomials over`F`

.

- eigenvectors: Matrix F -> List Record(eigval: Union(F, SparseUnivariatePolynomial F), eigmult: NonNegativeInteger, eigvec: List Vector SparseUnivariatePolynomial F) if F has PolynomialFactorizationExplicit
`eigenvectors(m)`

returns the eigenvalues and eigenvectors for the matrix`m`

. The eigenvalues in base field and corresponding eigenvectors are explicitely computed, while the non rational ones are given via their minimal polynomial and the corresponding eigenvectors are expressed in terms of a “generic” root of such a polynomial.

- generalizedEigenvector: (Record(eigval: Union(F, SparseUnivariatePolynomial F), eigmult: NonNegativeInteger, eigvec: List Vector SparseUnivariatePolynomial F), Matrix F) -> List Vector SparseUnivariatePolynomial F
`generalizedEigenvector(eigen, m)`

returns the generalized eigenvectors of the matrix relative to the eigenvalue`eigen`

, as returned by the function eigenvectors.

- generalizedEigenvector: (Union(F, SparseUnivariatePolynomial F), Matrix F, NonNegativeInteger, NonNegativeInteger) -> List Vector SparseUnivariatePolynomial F
`generalizedEigenvector(alpha, m, k, g)`

returns the generalized eigenvectors of the matrix relative to the eigenvalue`alpha`

. The integers`k`

and`g`

are respectively the algebraic and the geometric multiplicity of the eigenvalue`alpha`

.

- generalizedEigenvectors: (Matrix F, SparseUnivariatePolynomial F -> Factored SparseUnivariatePolynomial F) -> List Record(eigval: Union(F, SparseUnivariatePolynomial F), geneigvec: List Vector SparseUnivariatePolynomial F)
`generalizedEigenvectors(m, fac)`

returns the generalized eigenvectors of the matrix`m`

. fac is a factorizer for polynomials over`F`

.

- generalizedEigenvectors: Matrix F -> List Record(eigval: Union(F, SparseUnivariatePolynomial F), geneigvec: List Vector SparseUnivariatePolynomial F) if F has PolynomialFactorizationExplicit
`generalizedEigenvectors(m)`

returns the generalized eigenvectors of the matrix`m`

.