* Was ist GAP ? * GAP-Homepage * Manual & Tutorial: * Frei runterladbar für Windows und andere Systeme * GAP starten * GAP beenden (quit; ctrl-c; ctrl-d); =============================================================================== * Rechnen in GAP: (9 - 7) * (5 + 6); 12345/25; 3^132; 17 mod 3; Factorial(20)^2; Gcd(1234, 5678); IsPrimeInt(234237); FactorsInt(234237); * Fehlerchen: Semikolon vergessen: 6*7 Syntaxfehler: 6*(7+1; =============================================================================== Gruppen eingeben, damit rechnen gap> ## Permutationen werden in runden Klammern eingegeben, z.B. gap> x := (1,2); (1,2) gap> y := (2,3); (2,3) gap> ## und mittels * multipliziert (hintereinanderausgefuehrt) gap> x*y; (1,3,2) Permutation auf Zahl wirken lassen mit ^ (NICHT mit *): 1 ^ (1,2); 1 * (1,2); * CyclicGroup; SymmetricGroup; AlternatingGroup; DihedralGroup G0 := CyclicGroup(6); G1 := SymmetricGroup(3); Size(G1); G2 := AlternatingGroup(3); Size(G2); G3 := DihedralGroup(6); Size(G3); * Permutationsgruppen allgemein G := Group((1,2,4), (2,5,6)); Size(G); G = AlternatingGroup(5); * Arbeiten mit Gruppen Size(G); GeneratorsOfGroup(G); IsAbelian(G); Centre(G); * Arbeiten mit Elementen: Order(G.1); Order(G.1 * G.2); Order(G.1 ^ G.2); Centralizer(G, G.1); * Untergruppen; Index H := Subgroup(G, [ (1,2,4) ]); Size(H); Normalizer(G, H); IsSubgroup(G, H); IsNormal(G, H); IsSubgroup(SymmetricGroup(6), G); ConjugacyClass(G, (1,2,4)); ConjugacyClasses(G); ConjugacyClassSubgroups(G, H); ConjugacyClassesSubgroups(G); =============================================================================== * Hilfesystem, z.B.: ?SymmetricGroup ?Size * Pfeil hoch / runter * Tab =============================================================================== Eigene Programme * Listen [ 12, 1, 7, -4 ]; [7..10]; * Ausgabe mit Print & Display Display("Hallo"); Print("Hallo"); Print("Hallo\n"); i := 6; Print("Hallo: ", i, "\n"); * for-Schleife for i in [7..10] do Display(i); od; * while: i := 7; while i > 1 do Print("i = ", i, "\n"); i := i - 1; od; * if if i >= 2 and i <= 4 then Print("x"); fi; if i < 7 or i > 12 then Print("a"); elif i = 9 then Print("b"); else Print("c"); fi; =============================================================================== * BahnStab-Algorithmus implementieren * Kommentare mit # * Datei einlesen Read("bahnstab.gap"); * Testen: a := (1,2,3,4,5,6,7,8,10,11); b := (3,7,11,8)(4,10,5,6); G := Group(a, b); Größe von G bestimmen durch iteriertes Stabilisatoren-Berechnung! (Siehe Abschnitt 1.6.3) =============================================================================== * mit freien Gruppen und endliche Präsentierungen arbeiten F := FreeGroup(2); rels := [F.1^2, F.1^F.2*F.1]; G := F / rels; * Nebenklassenabzählung H := Subgroup(G, [G.2^2]); ct := CosetTable(G, H);; Display(TransposedMat(ct)); * abelsche Invarianten ausrechnen: AbelianInvariants(G); * Abgeleitete Gruppe G': DerivedSubgroup(G) =============================================================================== Matrizen: Listen von Listen A := [[1,1,2],[2,3,4]]; B := [[5,6],[7,8]]; Determinant(B); SmithNormalFormIntegerMat(A); a := [[-1,0],[0,1]]; b := [[1,1],[0,1]]; G := Group(a, b); IsSubgroup(GL(2,Integers), G); IsSubgroup(SL(2,Integers), G); ===============================================================================