Diagonalising Commutative Algebras over a Field

The functions in this group apply to (elements of) matrix algebras whose coefficient rings are fields which allow the construction of splitting fields of univariate polynomials over them. Specifically, the base field must be the rationals, a number field, a finite field, or an algebraically closed field.

CommonEigenspaces(Q) : [AlgMatElt] -> [**], [[FldElt]]
The common eigenspaces of the sequence Q of pairwise-commuting matrices. If the first sequence returned is V and the second is E, then E[i][j] is the eigenvalue of Q[i] corresponding to the common eigenspace V[j].
CommonEigenspaces(A) : AlgMat -> [**], [[FldElt]]
The common eigenspaces of the commutative matrix algebra A. If the first sequence returned is V and the second is E, then E[i][j] is the eigenvalue of A.i corresponding to the common eigenspace V[j].
Diagonalisation(Q) : [AlgMatElt] -> [AlgMatElt], AlgMatElt
Diagonalization(Q) : [AlgMatElt] -> [AlgMatElt], AlgMatElt
The diagonalisation of the sequence Q of pairwise-commuting matrices. That is, a sequence of diagonal matrices of the form [P * Q[1] * P - 1, P * Q[2] * P - 1, ... ]. The second value returned is the matrix P. Note that the returned values may have a larger base field than the input.
Diagonalisation(A) : AlgMat -> AlgMat, AlgMatElt
Diagonalization(A) : AlgMat -> AlgMat, AlgMatElt
The diagonalisation of the commutative matrix algebra A. That is, an algebra with diagonal generators [P * A.1 * P - 1, P * A.2 * P - 1, ... ]. The second value returned is the matrix P.

Example AlgMat_Diagonalization (H90E9)

> M := MatrixAlgebra(Rationals(),2);
> x := M![0,1,-2,0];
> y := M![0,3,-6,0];
> CommonEigenspaces([x,y]);
[*
    Vector space of degree 2, dimension 1 over Number Field with defining
    polynomial $.1^2 + 2 over the Rational Field
    Generators:
    (      1 1/2*r.1)
    Echelonized basis:
    (      1 1/2*r.1),
    Vector space of degree 2, dimension 1 over Number Field with defining
    polynomial $.1^2 + 2 over the Rational Field
    Generators:
    (       1 -1/2*r.1)
    Echelonized basis:
    (       1 -1/2*r.1)
*] [
    [
        -r.1,
        -3*r.1
    ],
    [
        r.1,
        3*r.1
    ]
]
> Diagonalisation(sub<M|x,y>);
Matrix Algebra of degree 2 with 2 generators over Number Field with defining
polynomial $.1^2 + 2 over the Rational Field
[       1  1/2*r.1]
[       1 -1/2*r.1]
V2.28, 13 July 2023