[GAP Forum] matrix-conjugation problem. matrices given in numbers

Jack Schmidt jack at ms.uky.edu
Wed Jan 10 23:00:18 GMT 2007


You can use RepresentativeAction to find an element Y that does the
conjugation.  Here is a sample GAP session that chooses some random X_i
and G_i in GL(2,5), asks GAP to find a Y that conjugates them, and then
checks that GAP did what you think it should.

gap> h:=GL(2,5);
GL(2,5)
gap> x:=[PseudoRandom(h),PseudoRandom(h)];
[ [ [ Z(5)^3, 0*Z(5) ], [ Z(5)^0, Z(5)^0 ] ],
   [ [ Z(5)^2, 0*Z(5) ], [ Z(5)^2, Z(5)^3 ] ] ]
gap> g:=OnTuples(x,PseudoRandom(h));
[ [ [ Z(5), Z(5)^3 ], [ Z(5), Z(5) ] ],
   [ [ Z(5)^3, 0*Z(5) ], [ Z(5), Z(5)^2 ] ] ]

gap> y:=RepresentativeAction(h, x, g, OnTuples);
[ [ Z(5)^3, Z(5)^2 ], [ Z(5)^0, Z(5)^0 ] ]

gap> y^-1 * x[1] * y = g[1];
true
gap> y^-1 * x[2] * y = g[2];
true


If your matrices are given as integer matrices, be sure to multiply them
by the appropriate finite field matrix to turn them into finite field
matrices:

gap> myx := [[2,0],[0,1]];
[ [ 2, 0 ], [ 0, 1 ] ]
gap> x1 := myx*One(h);
[ [ Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0 ] ]

You can convert the answer back to a more familiar form using the
Display command as well:

gap> Display(y);
  3 4
  1 1


If q=p^n is a proper prime power, then elements will be displayed as
powers of a primitive element with minimal polynomial
ConwayPolynomial(p,n)


For large examples, you may wish to find Y_1 (using basically the same
procedure) first for X_1 and G_1, then try the cosets of the centralizer
of X_1 to find Y=C*Y_1, where C is in the centralizer of X_1 and X_2^C =
G* = G_2^(Y_1^-1).

The following took about 20 seconds (and the previous method took longer
than a few minutes, so was canceled):

gap> h:=GL(2,251);
GL(2,251)
gap> x:=[PseudoRandom(h),PseudoRandom(h)];
[ [ [ Z(251)^64, Z(251)^48 ], [ Z(251)^207, Z(251)^25 ] ],
   [ [ Z(251)^62, Z(251)^201 ], [ Z(251)^60, Z(251)^36 ] ] ]
gap> g:=OnTuples(x,PseudoRandom(h));
[ [ [ Z(251)^219, Z(251)^62 ], [ Z(251)^207, Z(251)^90 ] ],
   [ [ Z(251)^161, Z(251)^190 ], [ Z(251)^149, Z(251)^245 ] ] ]

gap> y1:=RepresentativeAction(h, x[1], g[1] );
[ [ Z(251)^0, Z(251)^17 ], [ 0*Z(251), Z(251)^0 ] ]
gap> hc:=Centralizer(h, x[1]);
<group of 2x2 matrices in characteristic 251>
gap> c:=RepresentativeAction(hc, x[2], g[2]^(y1^-1) );
[ [ Z(251)^187, Z(251)^91 ], [ Z(251)^0, Z(251)^92 ] ]
gap> y:=c*y1;
[ [ Z(251)^187, Z(251)^98 ], [ Z(251)^0, Z(251)^69 ] ]

gap> y^-1 * x[1] * y = g[1];
true
gap> y^-1 * x[2] * y = g[2];
true

Joachim Schittenhelm wrote:
> Hi members,
> 
> i got an equation Problem.
> 
> given:
> 4 matrices X_1,G_1, X_2, G_2 in GL(n,q)
> 
> needed:
> matrix Y (<>0), so that X_i is the conjugation of G_i by Y
> 
> matrices X_i, G_i are given like this:
> [[2,0],[0,1]]
> entries are numbers modulo q
> 
> is this somehow solvable in GAP?
> 
> 
> Greetings
> 
> Joachim



More information about the Forum mailing list