WiMa-Praktikum II - Computeralgebra

Thema dieses Praktikums ist das  Lösen der sogenannten Einheitengleichung. Dabei sei R ein endlich erzeugter kommutativer Ring. Dann ist die Gruppe E der Einheiten von R eine endlich erzeugte abelsche Gruppe. Wir betrachten die Gleichung

              u + v = 1,      mit u,v in E.

Nach einem berühmten Satz von Siegel besitzt diese Gleichung höchstens endlich viele Lösungen. Ziel des Praktikums ist die Implementation verschiedener Algorithmen zur Bestimmung sämtlicher Lösungen der Einheitengleichung. Das wichtigste Hilfsmittel dazu sind sogenannte Gitterreduktionsalgorithmen, wie z.B. der LLL- oder der Fincke-Pohst-Algorithmus.

 

Für die Projekte werden wir das Computeralgebrasystems Sage verwenden.

Eine genauere Beschreibung (die regelmäßig aktualisiert wird) finden Sie hier.

 

Anmeldung bitte hier unter Angabe von Name, Matrikelnummer, Studiengang, Semesterzahl und Liste der bisher gehörten Vorlesungen.

 

Dozent:

Stefan Wewers

Übungsleiter:

Julian Rüth

Termine:

NN

Voraussetzungen:

Elemente der Algebra, zusätzlich empfehlenswert: Master Algebra oder Algebraische Zahlentheorie

Zielgruppe und Prüfungsrelevanz:

Master:

Mathematik: Computerpraktikum

Wirtschaftsmathematik: WiMa-Praktikum II.

In den Masterstudiengängen kann man bis zu 4 unbenotete LPs als Wahlpflicht einbringen, also z.B. dieses Praktikum. Dieses wird dann dem Modul Vertiefung Algebra/Zahlentheorie zugeordnet.

Bachelor:

In den Bachelorstudiengängen kann man bis zu 4 unbenotete LPs als Wahlpflicht einbringen, also z.B. dieses Praktikum. Dieses wird dann dem Modul Wahlpflicht Algebra/Zahlentheorie zugeordnet.

Literatur:

  NN

Übungsblätter

Sage im Pool

die Terminals im Pool sind etwas ungünstig konfiguriert. Dies führt zu verschiedenen Problemen bei der Darstellung der Dokumentation in Sage. Deshalb sollte man vor dem Start von Sage folgende Kommandos ausführen:

export PAGER="/usr/bin/less -R"
unset LANG LC_ALL
LC_CTYPE=en_US export LC_CTYPE

Außerdem sollte man im Terminal unter "Terminal" die Codepage auf UTF-8 umstellen.

In der neuesten Version von Sage kann man nun IntegerLattices verwenden.
Beispiel:

sage: from sage.modules.free_module_integer import IntegerLattice
sage: L=IntegerLattice([[1,2],[3,4]])
sage: L.shortest_vector(3)
[(1, 0), (-1, 0), (0, 2)]

Die wesentlichen Kommandos beim Umgang mit git waren:

git add --patch
git commit
git push
git pull

Die Terminals im Pool machen auch bei git Probleme, deshalb (idealerweise in .bashrc) folgende Kommandos ausführen, bevor man mit git arbeiten will:

export EDITOR=vim
unset VISUAL

Sollte es zu Problemen kommen, reichen diese Kommandos vermutlich nicht mehr aus. Es gibt sehr viele gute Anleitungen zu git im Netz; einfacher ist es, ihr schreibt eine Mail an Julian, in der ihr das Problem beschreibt.