Sage Tutorial - uni- · PDF filesehen, geben Sie sage -optional ein, ... RI, GAP, Singular, Maxima, KASH, Magma, Maple und Mathematica zur Verfügung. Sage ist dazu gedacht,

Embed Size (px)

Citation preview

  • Sage TutorialRelease 5.11

    The Sage Group

    15. 08. 2013

  • Inhaltsverzeichnis

    1 Einleitung 31.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Wie man Sage benutzen kann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Langfristige Ziele von Sage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2 Eine begleitende Tour 72.1 Zuweisung, Gleichheit und Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Funktionen, Einrckungen, und Zhlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Elementare Algebra und Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5 Plotten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6 Hufige Probleme mit Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.7 Wichtige Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.8 Lineare Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.9 Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.10 Endliche und abelsche Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.11 Zahlentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.12 Etwas weiter fortgeschrittene Mathematik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    3 Die interaktive Kommandozeile 473.1 Ihre Sage Sitzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2 Ein- und Ausgaben loggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.3 Einfgen ignoriert Eingabeaufforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4 Befehle zur Zeitmessung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.5 Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523.6 Rckwrtssuche und Tab-Vervollstndigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.7 Integriertes Hilfesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.8 Speichern und Laden von individuellen Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.9 Speichern und Laden kompletter Sitzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.10 Die Notebook Umgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    4 Schnittstellen 614.1 GP/PARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.2 GAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    i

  • 4.3 Singular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.4 Maxima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    5 Sage, LaTeX und ihre Freunde 675.1 berblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2 Grundlegende Nutzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.3 Anpassen der LaTeX-Generierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.4 Anpassen der LaTeX-Verarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.5 Ein Beispiel: Kombinatorische Graphen mit tkz-graph . . . . . . . . . . . . . . . . . . . . . . . . . 725.6 Eine vollfunktionsfhige TeX-Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.7 Externe Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    6 Programmierung 756.1 Sage-Dateien Laden und Anhngen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.2 Kompilierten Code erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.3 eigenstndige Python/Sage Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.4 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.5 Listen, Tupel, und Folgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.6 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.7 Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.8 Iteratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.9 Schleifen, Funktionen, Kontrollstrukturen und Vergleiche . . . . . . . . . . . . . . . . . . . . . . . 836.10 Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    7 SageTeX nutzen 87

    8 Nachwort 898.1 Warum Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.2 Ich mchte einen Beitrag zu Sage leisten. Wie kann ich dies tun? . . . . . . . . . . . . . . . . . . . 918.3 Wie zitiere ich Sage? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    9 Anhang 939.1 Binre arithmetische Operatorrangfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    10 Literaturverzeichnis 95

    11 Indizes und Tabellen 97

    Literaturverzeichnis 99

    ii

  • Sage Tutorial, Release 5.11

    Sage ist eine freie, Open-Source-Software, die Forschung und Lehre in Algebra, Geometrie, Zahlentheorie, Krypto-graphie, numerischen Berechnungen und verwandten Gebieten untersttzt. Sowohl das Entwicklungsmodell von Sageals auch die Technologie in Sage zeichnen sich durch eine extrem starke Betonung von Offenheit, Gemeinschaft, Ko-operation und Zusammenarbeit aus. Wir bauen das Auto und erfinden nicht das Rad neu. Das Ziel von Sage ist es, eineaktiv gepflegte, freie Open-Source-Alternative zu Magma, Maple, Mathematica und Matlab zu entwickeln.

    Dieses Tutorial ist die beste Mglichkeit mit Sage in wenigen Stunden vertraut zu werden. Sie knnen es im HTML-oder PDF-Format lesen oder im Sage-Notebook. Dazu klicken Sie zuerst auf Help und Tutorial, um innerhalbvon Sage interaktiv mit dem Tutorial zu arbeiten.

    Diese Arbeit ist lizenziert unter einer Creative Commons Attribution-Share Alike 3.0 Lizenz.

    Inhaltsverzeichnis 1

    http://creativecommons.org/licenses/by-sa/3.0/

  • Sage Tutorial, Release 5.11

    2 Inhaltsverzeichnis

  • KAPITEL 1

    Einleitung

    Um dieses Tutorial vollstndig durchzuarbeiten sollten 3 bis 4 Stunden gengen. Sie knnen es im HTML oder PDFFormat lesen oder im Sage Notebook. Dazu klicken Sie zuerst auf Help und Tutorial, um innerhalb von Sageinteraktiv mit dem Tutorial zu arbeiten.

    Obwohl groe Teile von Sage mithilfe von Python implementiert sind, ist kein tieferes Verstndnis von Python not-wendig um dieses Tutorial lesen zu knnen. Sie werden Python zu einem gewissen Zeitpunkt lernen wollen (Pythonkann sehr viel Spass bereiten) und es gibt viele ausgezeichnete freie Quellen, wozu auch [PyT] und [Dive] gehren.Wenn Sie nur kurz etwas in Sage ausprobieren mchten, ist dieses Tutorial der richtige Ort um damit anzufangen. ZumBeispiel:

    sage: 2 + 24sage: factor(-2007)-1 * 3^2 * 223

    sage: A = matrix(4,4, range(16)); A[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11][12 13 14 15]

    sage: factor(A.charpoly())x^2 * (x^2 - 30*x - 80)

    sage: m = matrix(ZZ,2, range(4))sage: m[0,0] = m[0,0] - 3sage: m[-3 1][ 2 3]

    sage: E = EllipticCurve([1,2,3,4,5]);sage: EElliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5over Rational Fieldsage: E.anlist(10)[0, 1, 1, 0, -1, -3, 0, -1, -3, -3, -3]sage: E.rank()1

    3

  • Sage Tutorial, Release 5.11

    sage: k = 1/(sqrt(3)*I + 3/4 + sqrt(73)*5/9); k36/(20*sqrt(73) + 36*I*sqrt(3) + 27)sage: N(k)0.165495678130644 - 0.0521492082074256*Isage: N(k,30) # 30 "bits"0.16549568 - 0.052149208*Isage: latex(k)\frac{36}{20 \, \sqrt{73} + 36 i \, \sqrt{3} + 27}

    1.1 Installation

    Falls Sie Sage auf Ihrem Computer nicht installiert haben und nur ein paar Befehle ausfhren mchten, knnen Sie esonline unter http://www.sagenb.org benutzen.

    Schauen Sie sich den Sage Installation Guide an, um Anleitungen zur Installation von Sage auf Ihrem Computer zuerhalten. Hier geben wir nur ein paar Kommentare ab.

    1. Die herunterladbare Sage-Datei wurde nach der batteries included Philosophie zusammengestellt. In anderenWorten, obwohl Sage Python, IPython, PARI, GAP, Singular, Maxima, NTL, GMP und so weiter benutzt, ms-sen Sie diese Programme nicht separat installieren, da diese in der Sage-Distribution enthalten sind. Jedochmssen Sie, um bestimmte Sage Zusatzfunktionen, zum Beispiel Macaulay oder KASH, nutzen zu knnen, die-se entsprechenden optionalen Pakete installieren, oder zumindest die relevanten Programme auf ihrem Computerschon installiert haben. Macaulay und KASH sind Sage-Pakete (um eine Liste aller verfgbaren Sage-Pakete zusehen, geben Sie sage -optional ein, oder rufen Sie die Download Seite auf der Sage Webseite auf).

    2. Die vorkompilierte Binrversion von Sage (zu finden auf der Sage-Webseite) ist vielleicht einfacher und schnel-ler zu installieren als die Quellcode-Version. Sie mssen die Datei nur en