[GAP Forum] Accessing information in character tables
Thomas Breuer
thomas.breuer at math.rwth-aachen.de
Fri Sep 18 09:41:24 BST 2009
Dear GAP Forum,
Ravi Kulkarni wrote:
> I need to calculate det(1-tg) for g in a finite group (say C2 x S4).
> Is there some way to programatically access the information in the
> power maps that are
> displayed with each character table?
> Right now, I am doing it by hand - printing the table and then looking
> up the conjugacy class of
> powers of g manually - but I keep feeling there should be a better way
> to do it...
> Any suggestions would be most welcome please...
Power maps of a character table can be accessed with `PowerMap',
see the GAP Reference Manual (type ?PowerMap in GAP).
Concerning the specific question about computing determinants,
let G be a group, rho be an ordinary matrix representation of G,
chi be the character afforded by rho, t be an indeterminate,
and g be an element in G.
Then det( rho(1) - t * rho(g) ) can be computed from the values of chi
plus the power map information, using that this determinant is
the product of ( 1 - t x ) where x ranges over the eigenvalues of rho(g).
In GAP, one can use the function `EigenvaluesChar' for computing
the multiplicities of the roots of unity in question as eigenvalues;
again, see the GAP Reference Manual.
Here is an example:
1. Create a small group, take one of its representations,
compute class representatives in the image group of the representation,
and compute the character.
gap> g:= DirectProduct( Group( (1,2) ), SymmetricGroup( 4 ) );;
gap> rep:= IrreducibleRepresentations( g )[10];;
gap> tbl:= CharacterTable( g );;
gap> ccl:= List( ConjugacyClasses( tbl ), c -> Representative( c )^rep );;
gap> chi:= List( ccl, Trace );
[ 3, -1, 0, -1, 1, -3, 1, 0, 1, -1 ]
2. Compute the multiplicities of eigenvalues from the character.
gap> ev:= List( [ 1 .. Length( chi ) ],
> i -> EigenvaluesChar( tbl, chi, i ) );
[ [ 3 ], [ 2, 1 ], [ 1, 1, 1 ], [ 2, 1 ], [ 1, 0, 1, 1 ], [ 3, 0 ], [ 1, 2 ],
[ 1, 0, 1, 0, 1, 0 ], [ 1, 2 ], [ 1, 1, 1, 0 ] ]
3. Create an indeterminate.
gap> t:= Indeterminate( Rationals, "t" );
t
4. Write a small GAP function that computes the determinant from the
eigenvalues data.
gap> detfromev:= function( evs, t )
> local det, i;
> det:= 1;
> for i in [ 1 .. Length( evs ) ] do
> det:= det * ( 1 - t * E( Length( evs ) )^i )^evs[i];
> od;
> return det;
> end;;
5. Compute the determinants.
gap> dets:= List( ev, x -> detfromev( x, t ) );
[ -t^3+3*t^2-3*t+1, -t^3-t^2+t+1, -t^3+1, -t^3-t^2+t+1, -t^3+t^2-t+1,
t^3+3*t^2+3*t+1, t^3-t^2-t+1, t^3+1, t^3-t^2-t+1, t^3+t^2+t+1 ]
6. Compute the determinants directly from the matrices,
in order to check the result.
gap> id:= One( ccl[1] );
[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]
gap> List( ccl, x -> Determinant( id - x * t ) ) = dets;
true
All the best,
Thomas
More information about the Forum
mailing list