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