SageMath (kurz Sage) ist eine freie, quelloffene Software zur Lösung mathematischer Probleme — von Algebra über Zahlentheorie bis Kryptografie. Die erste Version veröffentlichte William A. Stein 2005 als Mathematiker an der University of Washington. SageMath ist in Python programmiert und bündelt viele etablierte Open-Source-Pakete: NumPy/SciPy für numerisches Rechnen, SymPy für Symbolik, Maxima als CAS-Engine, PARI/GP für Zahlentheorie, GAP für Gruppentheorie, Singular für Computeralgebra, R für Statistik und matplotlib für Grafiken — alles in einer gemeinsamen Python-Schnittstelle.

Erste Schritte

sage                        # REPL starten (Python-basiert)
sage datei.sage             # Skript ausführen
sage -n jupyter             # Jupyter-Notebook mit Sage-Kernel
sage --notebook             # klassisches Sage-Notebook (CoCalc-Nachfolger)

Die Sage-Sprache ist Python mit mathematischen Erweiterungen: var('x') deklariert symbolische Variablen, 2+3 rechnet wie gewohnt, 2^10 ist die Potenz (wie in Python-Notation statt ** zusätzlich erlaubt).

Kernbefehle

  • Symbolik: diff(f, x), integral(f, x), limit(f, x=0), taylor(f, x, 0, 5), solve(Gleichung, x)
  • Zahlentheorie: factor(n), is_prime(n), next_prime(n), gcd(a,b), Mod(a, n) (Ringe), EllipticCurve(...)
  • Lineare Algebra: matrix(2, 2, [1,2,3,4]), A.det(), A.inverse(), A.eigenvalues(), A.eigenvectors_right()
  • Grafik: plot(sin(x), (x, 0, 2*pi)), plot3d(f, (x,-2,2), (y,-2,2)), points([(1,2),(3,4)])
  • Strukturen: GF(7) (endlicher Körper), Zmod(n), PolynomialRing(QQ, 'x'), PermutationGroup([...])

Praxis-Tipps

  • Hilfe: help(Befehl) oder Befehl?
  • Alle Objekte haben Python-Methoden: n() für numerischen Wert, latex() für LaTeX-Ausgabe
  • CoCalc (ehemals SageMathCloud) bietet SageMath als Cloud-Notebook mit Collaboration an
  • Dank Python-Anbindung lassen sich Sage-Berechnungen direkt in Data-Science-Pipelines integrieren — ein klarer Vorteil gegenüber klassischen CAS-Umgebungen

Als Python-basiertes System ist SageMath besonders zugänglich für Entwickler. Es ergänzt die klassischen CAS-Werkzeuge Maxima-Befehle und Maple-Befehle um eine moderne Skriptsprache.