Endliche und abelsche Gruppen - Sage Tutorial

Skip to content
Back to top
View this page
Edit this page

# Endliche und abelsche Gruppen

Sage unterstützt das Rechnen mit Permutationsgruppen, endlichen klassischen Gruppen (wie z.B. \(SU(n,q)\)), endlichen Matrixgruppen (mit Ihren eigenen Erzeugern), und abelschen Gruppen (sogar unendlichen). Vieles davon ist mit Hilfe der GAP-Schnittstelle implementiert.

Zum Beispiel können Sie, um eine Permutationsgruppe zu erzeugen, die Liste der Erzeuger wie folgt angeben.

Sage

    sage: G = PermutationGroup(['(1,2,3)(4,5)', '(3,4)'])
    sage: G
    Permutation Group with generators [(3,4), (1,2,3)(4,5)]
    sage: G.order()
    120
    sage: G.is_abelian()
    False
    sage: G.derived_series()           # random-ish output
    [Permutation Group with generators [(1,2,3)(4,5), (3,4)],
     Permutation Group with generators [(1,5)(3,4), (1,5)(2,4), (1,3,5)]]
    sage: G.center()
    Subgroup generated by [()] of (Permutation Group with generators [(3,4), (1,2,3)(4,5)])
    sage: G.random_element()           # random output
    (1,5,3)(2,4)
    sage: print(latex(G))
    \langle (3,4), (1,2,3)(4,5) \rangle

Python

    >>> from sage.all import *
    >>> G = PermutationGroup(['(1,2,3)(4,5)', '(3,4)'])
    >>> G
    Permutation Group with generators [(3,4), (1,2,3)(4,5)]
    >>> G.order()
    120
    >>> G.is_abelian()
    False
    >>> G.derived_series()           # random-ish output
    [Permutation Group with generators [(1,2,3)(4,5), (3,4)],
     Permutation Group with generators [(1,5)(3,4), (1,5)(2,4), (1,3,5)]]
    >>> G.center()
    Subgroup generated by [()] of (Permutation Group with generators [(3,4), (1,2,3)(4,5)])
    >>> G.random_element()           # random output
    (1,5,3)(2,4)
    >>> print(latex(G))
    \langle (3,4), (1,2,3)(4,5) \rangle

Sie können in Sage auch die Tabelle der Charaktere (im LaTeX-Format) erhalten:

Sage

    sage: G = PermutationGroup([[(1,2),(3,4)], [(1,2,3)]])
    sage: latex(G.character_table()) # random
    \left(\begin{array}{rrrr}
    1 & 1 & 1 & 1 \\
    1 & -\zeta_{3} - 1 & \zeta_{3} & 1 \\
    1 & \zeta_{3} & -\zeta_{3} - 1 & 1 \\
    3 & 0 & 0 & -1
    \end{array}\right)

[Python]

    >>> from sage.all import *
    >>> G = PermutationGroup([[(Integer(1),Integer(2)),(Integer(3),Integer(4))], [(Integer(1),Integer(2),Integer(3))]])
    >>> latex(G.character_table()) # random
    \left(\begin{array}{rrrr}
    1 & 1 & 1 & 1 \\
    1 & -\zeta_{3} - 1 & \zeta_{3} & 1 \\
    1 & \zeta_{3} & -\zeta_{3} - 1 & 1 \\
    3 & 0 & 0 & -1
    \end{array}\right)

Sage beinhaltet auch klassische und Matrixgruppen über endlichen Körpern:

Sage

    sage: MS = MatrixSpace(GF(7), 2)
    sage: gens = [MS([[1,0],[-1,1]]),MS([[1,1],[0,1]])]
    sage: G = MatrixGroup(gens)
    sage: G.conjugacy_classes_representatives()
    (
    [1 0]  [0 6]  [0 4]  [6 0]  [0 6]  [0 4]  [0 6]  [0 6]  [0 6]  [4 0]
    [0 1], [1 5], [5 5], [0 6], [1 2], [5 2], [1 0], [1 4], [1 3], [0 2],

    [5 0]
    [0 3]
    )
    sage: G = Sp(4,GF(7))
    sage: G
    Symplectic Group of degree 4 over Finite Field of size 7
    sage: G.random_element()             # random output
    [5 5 5 1]
    [0 2 6 3]
    [5 0 1 0]
    [4 6 3 4]
    sage: G.order()
    276595200

Python

    >>> from sage.all import *
    >>> MS = MatrixSpace(GF(Integer(7)), Integer(2))
    >>> gens = [MS([[Integer(1),Integer(0)],[-Integer(1),Integer(1)]]),MS([[Integer(1),Integer(1)],[Integer(0),Integer(1)]])]
    >>> G = MatrixGroup(gens)
    >>> G.conjugacy_classes_representatives()
    (
    [1 0]  [0 6]  [0 4]  [6 0]  [0 6]  [0 4]  [0 6]  [0 6]  [0 6]  [4 0]
    [0 1], [1 5], [5 5], [0 6], [1 2], [5 2], [1 0], [1 4], [1 3], [0 2],
    <BLANKLINE>
    [5 0]
    [0 3]
    )
    >>> G = Sp(Integer(4),GF(Integer(7)))
    >>> G
    Symplectic Group of degree 4 over Finite Field of size 7
    >>> G.random_element()             # random output
    [5 5 5 1]
    [0 2 6 3]
    [5 0 1 0]
    [4 6 3 4]
    >>> G.order()
    276595200

Sie können auch mit (endlichen oder unendlichen) abelschen Gruppen rechnen.

Sage

    sage: F = AbelianGroup(5, [5,5,7,8,9], names='abcde')
    sage: (a, b, c, d, e) = F.gens()
    sage: d * b**2 * c**3
    b^2*c^3*d
    sage: F = AbelianGroup(3,[2]*3); F
    Multiplicative Abelian group isomorphic to C2 x C2 x C2
    sage: H = AbelianGroup([2,3], names="xy"); H
    Multiplicative Abelian group isomorphic to C2 x C3
    sage: AbelianGroup(5)
    Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z
    sage: AbelianGroup(5).order()
    +Infinity

[Python]

    >>> from sage.all import *
    >>> F = AbelianGroup(Integer(5), [Integer(5),Integer(5),Integer(7),Integer(8),Integer(9)], names='abcde')
    >>> (a, b, c, d, e) = F.gens()
    >>> d * b**Integer(2) * c**Integer(3)
    b^2*c^3*d
    >>> F = AbelianGroup(Integer(3),[Integer(2)]*Integer(3)); F
    Multiplicative Abelian group isomorphic to C2 x C2 x C2
    >>> H = AbelianGroup([Integer(2),Integer(3)], names="xy"); H
    Multiplicative Abelian group isomorphic to C2 x C3
    >>> AbelianGroup(Integer(5))
    Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z
    >>> AbelianGroup(Integer(5)).order()
    +Infinity