Minimal and Characteristic Polynomials and Eigenvalues

The functions in this section deal with minimal and characteristic polynomials.

MinimalPolynomial(A: parameters) : Mtrx -> RngUPolElt
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the minimal polynomial of A. This is defined to be the unique monic univariate polynomial f(x) of minimal degree such that f(A) = 0, and f(x) always divides the characteristic polynomial of A. The coefficient ring R is currently restricted to being a field or the integer ring Z.

Setting the parameter Proof to false suppresses proof of correctness.

CharacteristicPolynomial(A: parameters) : Mtrx -> RngUPolElt
    Al: MonStg                          Default: "Modular"
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the characteristic polynomial of A. This is defined to be the monic univariate polynomial Det(x - A)∈R[x] where R[x] is the univariate polynomial ring over R. R may be any commutative ring.

The parameter Al allows the user to specify which algorithm that is to be employed. The algorithm "Modular" (the default) may be used for matrices over Z and Q---in such a case the parameter Proof can also be used to suppress proof of correctness.

The algorithm "Hessenberg", available for matrices over fields, works by first reducing the matrix to Hessenberg form. The algorithm "Interpolation", available for matrices over Z and Q, works by evaluating the characteristic matrix of a at various points and then interpolating. The algorithm "Trace", available for matrices over fields, works by calculating the traces of powers of a.

Since V2.8, none of these algorithms are now recommended for matrices over Z or Q, as the new p-adic modular algorithm over the integers is extremely fast.

MinimalAndCharacteristicPolynomials(A: parameters) : Mtrx -> RngUPolElt, RngUPolElt
MCPolynomials(A) : Mtrx -> RngUPolElt, RngUPolElt
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the minimal and characteristic polynomials of A. For some rings, both polynomials can be computed at the same time, so in such cases it will be more efficient to use this function than to call MinimalPolynomial and CharacteristicPolynomials separately.

Setting the parameter Proof to false suppresses proof of correctness.

FactoredMinimalPolynomial(A: parameters) : Mtrx -> [ <RngUPolElt, RngIntElt>]
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the factorization of the minimal polynomial of A. This is equivalent to Factorization(MinimalPolynomial(A)), but may be faster than that for some coefficient rings (in particular, Z and Q). Setting the parameter Proof to false suppresses proof of correctness.
FactoredCharacteristicPolynomial(A: parameters) : Mtrx -> [ <RngUPolElt, RngIntElt>]
    Al: MonStg                          Default: "Modular"
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the factorisation of the characteristic polynomial of A. This function returns the same result as the command Factorisation(CharacteristicPolynomial(A)), but may be faster than that for some coefficient rings (in particular, Z and Q). The parameters are as for the function CharacteristicPolynomial above (setting the parameter Proof to false suppresses proof of correctness).
FactoredMinimalAndCharacteristicPolynomials(A: parameters) : Mtrx -> [<RngUPolElt, RngIntElt>], [<RngUPolElt, RngIntElt>]
FactoredMCPolynomials(A: parameters) : Mtrx -> [<RngUPolElt, RngIntElt>], [<RngUPolElt, RngIntElt>]
    Al: MonStg                          Default: "Modular"
    Proof: BoolElt                      Default: true
Given a square matrix A over a ring R, return the factorizations of the minimal and characteristic polynomials of A, respectively. For some rings, both polynomials can be computed and factored at the same time, so in such cases it will be more efficient to use this function than to call the above functions separately. Setting the parameter Proof to false suppresses proof of correctness.
Eigenvalues(A) : Mtrx -> { <FldElt, RngIntElt> }
Given a square matrix A over a ring R, return the eigenvalues of A as a set of pairs, each of which gives the value of a distinct eigenvalue and its multiplicity. Factorization of polynomials over the base ring R must be possible.
Eigenspace(A, e) : AlgMatElt, FldElt -> ModTup
Given a square matrix A over a ring R, and an element e of R, return the eigenspace of A corresponding to e, which is Nullspace(A - e). If the ring element e is not a eigenvalue for the matrix A then the trivial nullspace is returned.
V2.28, 13 July 2023