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:
Ü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
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.