スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GAPで4次対称群の部分群を求める

GAP(Groups, Algorithms and Programming)に4次対称群の部分群をすべて列挙させてみた。

4次対称群 S4 を構成する:

gap> S4 := Group( (1,2,3,4), (1,2) );
Group([ (1,2,3,4), (1,2) ])

ここで、Groupコマンドは、引数に指定した置換を生成元とする群を構成する。

あるいは、あらかじめ用意されたコマンドを用いて構成してもよい:

gap> S4 := SymmetricGroup(4);
Sym( [ 1 .. 4 ] )

S4 の位数を求める:

gap> Size(S4);
24

S4 の元の共役による類(conjugacy classes of elements of the group S4、いわゆる共役類)をすべて列挙する:

gap> Cl := ConjugacyClasses(S4);
[ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2,3)^G, (1,2,3,4)^G ]

ここで, σ^τ=τ^-1*σ*τである。例えば、

gap> (1, 2)^(1, 3, 2);
(1,3)
gap> (1, 3, 2)^-1 * (1, 2) * (1, 3, 2);
(1,3)

S4 の元をすべて列挙する:

gap> Flat(List(Cl, Elements));
[ (), (3,4), (2,3), (2,4), (1,2), (1,3), (1,4), (1,2)(3,4), (1,3)(2,4),
  (1,4)(2,3), (2,3,4), (2,4,3), (1,2,3), (1,2,4), (1,3,2), (1,3,4), (1,4,2),
  (1,4,3), (1,2,3,4), (1,2,4,3), (1,3,4,2), (1,3,2,4), (1,4,3,2), (1,4,2,3) ]

ここで、Listコマンドは、第1引数に指定したリストの各成分に第2引数に指定した関数を作用させてできるリストを返す。また、Flatコマンドはリストを平らにする。

gap> List([1, 2, 3], x->x^2);
[1, 4, 9]
gap> Flat([1, [2, 3]]);
[1, 2, 3]

なお、GAPには元を列挙するElementsコマンドも用意されている:

gap> Elements(S4);
[ (), (3,4), (2,3), (2,3,4), (2,4,3), (2,4), (1,2), (1,2)(3,4), (1,2,3),
  (1,2,3,4), (1,2,4,3), (1,2,4), (1,3,2), (1,3,4,2), (1,3), (1,3,4),
  (1,3)(2,4), (1,3,2,4), (1,4,3,2), (1,4,2), (1,4,3), (1,4), (1,4,2,3),
  (1,4)(2,3) ]

S4 の部分群の共役による類(conjugacy classes of subgroups of the group S4)をすべて列挙する:

gap> Cls := ConjugacyClassesSubgroups(S4);
[ Group( () )^G, Group( [ (1,3)(2,4) ] )^G, Group( [ (3,4) ] )^G,
  Group( [ (2,4,3) ] )^G, Group( [ (1,4)(2,3), (1,3)(2,4) ] )^G,
  Group( [ (1,2)(3,4), (3,4) ] )^G, Group( [ (1,2)(3,4), (1,3,2,4) ] )^G,
  Group( [ (3,4), (2,4,3) ] )^G, Group( [ (1,3)(2,4), (1,4)(2,3), (1,2) ] )^G,
  Group( [ (1,3)(2,4), (1,4)(2,3), (2,4,3) ] )^G,
  Group( [ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ] )^G ]

S4 の部分群をすべて列挙する:

gap> Flat(List(Cls, Elements));
[ Group(()), Group([ (1,2)(3,4) ]), Group([ (1,3)(2,4) ]),
  Group([ (1,4)(2,3) ]), Group([ (3,4) ]), Group([ (2,3) ]), Group([ (2,4) ]),
  Group([ (1,2) ]), Group([ (1,3) ]), Group([ (1,4) ]), Group([ (2,4,3) ]),
  Group([ (1,2,3) ]), Group([ (1,4,2) ]), Group([ (1,3,4) ]),
  Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,2)(3,4), (3,4) ]),
  Group([ (1,4)(2,3), (2,3) ]), Group([ (1,3)(2,4), (2,4) ]),
  Group([ (1,2)(3,4), (1,3,2,4) ]), Group([ (1,3)(2,4), (1,4,3,2) ]),
  Group([ (1,4)(2,3), (1,2,4,3) ]), Group([ (3,4), (2,4,3) ]),
  Group([ (3,4), (1,3,4) ]), Group([ (1,2), (1,2,3) ]),
  Group([ (1,2), (1,4,2) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]),
  Group([ (1,2)(3,4), (1,3)(2,4), (1,4) ]),
  Group([ (1,4)(2,3), (1,2)(3,4), (1,3) ]),
  Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]),
  Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ]) ]

一般に、有限群 G の部分群をすべて列挙するには、次のように入力すればよい:

gap > G = Group( 生成元 ); 
gap > Flat(List(ConjugacyClassesSubgroups(G), Elements));

参考URL

GAP:FAQ - Computing - How do I get the elements of my group?
GAP:FAQ - Computing - How do I get the subgroups of my group?

【theme : 数学
【genre : 学問・文化・芸術

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。