Fixed Spaces for Group Elements

145 Views Asked by At

what is the GAP code for finding the fixed space? A list of row vectors that form a base of the vector space $V$ such that $v M = v$ for all $v$ in $V$ and all matrices $M$ in the list $mats$.

1

There are 1 best solutions below

3
On

I.e. the common eigenspace (for Eigenvalue 1) of the generators:

For this, you simply calculate the nullspace bases of the generators:

null:=List(GeneratorsOfGroup(g),x->NullspaceMat(x-x^0));

(Instead of GeneratorsOfGroup(g) you could use mats)

For getting the intersection it is easiest to go to vector spaces:

vs:=List(null,x->VectorSpace(Rationals,x));
ise:=Intersection(vs);
BasisVectors(Basis(ise));

(Minor caveat: If any of the vector spaces is trivial, the list of basis vectors is empty. In this case, VectorSpace cannot divine what dimension the vectors live in. To allow this situation, VectorSpace takes an optional third argument, a zero vector. So the safest coding would be:

zero:=Zero(g.1[1]);  # Zero vector of type first row of first matrix generator
vs:=List(null,x->VectorSpace(Rationals,x,zero));

. A similar issue arises for other algebraic structures, and their constructors thus allow an optional extra argument of the appropriate identity element.)

The intersection is calculated using Zassenhaus' Sum-intersection algorithm, so on a matrix level you also could have called:

SumIntersectionMat(null[1],null[2]);

(but if you have more than two, you would have processed them in iterative pairs, so the vector spaces are more convenient.)