Dear Dima,

One way is to set up a map from the vector space to the module.
In your example:

gap> regmats := [
 [ [ 0, 2, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 0, 2 ], [ 0, 0, 1, 1 ] ],
 [ [ -2, 0, -4, -4 ], [ 0, 0, 0, 4 ], [ 1, 1, 0, 2 ], [ 0, -1, 0, -2 ] ],
 [ [ 0, 0, 0, 8 ], [ -2, 0, -4, 0 ], [ 0, -2, 0, -4 ], [ 1, 0, 0, 0 ] ],
$0 ] ], $ ] ] ];
[ [ [ 0, 2, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 0, 2 ], [ 0, 0, 1, 1 ] ],
  [ [ -2, 0, -4, -4 ], [ 0, 0, 0, 4 ], [ 1, 1, 0, 2 ], [ 0, -1, 0, -2 ] ],
  [ [ 0, 0, 0, 8 ], [ -2, 0, -4, 0 ], [ 0, -2, 0, -4 ], [ 1, 0, 0, 0 ] ],
  [ [ 0, 0, 4, 0 ], [ 1, -2, 2, -4 ], [ -1, 0, -2, 0 ], [ -1/2, 1, 0, 0 ] ],
  [ [ 1, -2, 0, -4 ], [ 0, 0, 2, 0 ], [ 0, 1, 1, 0 ], [ -1/2, 0, -1, 0 ] ] ]
gap> es := First(Eigenspaces(Rationals,
TransposedMat(regmats[1])),x->Dimension(x)=2);
<vector space of dimension 2 over Rationals>
gap> A := AlgebraWithOne(Rationals, regmats);
<algebra-with-one over Rationals, with 5 generators>
gap> W:= Rationals^4;
( Rationals^4 )
gap> M:=LeftAlgebraModule(A,\*,W);
<left-module over <algebra-with-one over Rationals, with 5 generators>>
gap> f:= LeftModuleHomomorphismByImages( W, M, Basis(W), Basis(M) );
CanonicalBasis( ( Rationals^4 ) ) -> Basis( <
4-dimensional left-module over <algebra-with-one over Rationals, with
5 generators>>, [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ],
  [ 0, 0, 0, 1 ] ] )
gap> V:=SubAlgebraModule(M,[Image( f, Basis(es)[1] )]);
<left-module over <algebra-with-one over Rationals, with 5 generators>>
gap> MatrixOfAction(Basis(V),regmats[1]);
[ [ 2, 2 ], [ 0, -1 ] ]

Does that help you?

Best wishes,

Willem


On Thu, Aug 19, 2010 at 4:40 PM, Asst. Prof. Dmitrii (Dima) Pasechnik <d...@ntu.edu.sg> wrote:
Dear all,

I need to construct the action of a matrix algebra A on an A-invariant
subspace,
which is spanned by an eigenvector of one of matrix generators.
And I get a weird type clash that I don't know how to get around:

regmats := [
 [ [ 0, 2, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 0, 2 ], [ 0, 0, 1, 1 ] ],
 [ [ -2, 0, -4, -4 ], [ 0, 0, 0, 4 ], [ 1, 1, 0, 2 ], [ 0, -1, 0, -2 ] ],
 [ [ 0, 0, 0, 8 ], [ -2, 0, -4, 0 ], [ 0, -2, 0, -4 ], [ 1, 0, 0, 0 ] ],
 [ [ 0, 0, 4, 0 ], [ 1, -2, 2, -4 ], [ -1, 0, -2, 0 ], [ -1/2, 1, 0, 0 ] ],
 [ [ 1, -2, 0, -4 ], [ 0, 0, 2, 0 ], [ 0, 1, 1, 0 ], [ -1/2, 0, -1, 0 ] ] ];
es := First(Eigenspaces(Rationals,
TransposedMat(regmats[1])),x->Dimension(x)=2);
A := AlgebraWithOne(Rationals, regmats);
M:=LeftAlgebraModule(A,\*,Rationals^4);
V:=SubAlgebraModule(M,[Basis(es)[1]]);

and I get at the last line:

Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `SubAlgebraModule' on 2 arguments called\
 from
<function>( <arguments> ) called from read-eval-loop
Entering break read-eval-print loop ...
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk>

while
gap> Basis(es)[1];
[ 1, 1, 0, 0 ]
and also
gap> BM:=Basis(M);
Basis( <4-dimensional left-module over <algebra-with-one over Rationals, with
5 generators>>, [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ],
 [ 0, 0, 0, 1 ] ] )
gap>  V:=SubAlgebraModule(M,[BM[1]+BM[2]]);
<left-module over <algebra-with-one over Rationals, with 5 generators>>
gap> MatrixOfAction(Basis(V),regmats[1]);
[ [ 2, 2 ], [ 0, -1 ] ]

does what it should.

But I do not understand how to write GAP code to compute the decomposition of
my vector Basis(es)[1] in the basis BM of M !

Many thanks in advance,
Dmitrii Pasechnik

CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you.

Towards A Sustainable Earth: Print Only When Necessary

_______________________________________________
Support mailing list
supp...@gap-system.org
http://mail.gap-system.org/mailman/listinfo/support





_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to