Mit SymPy geschlossen integrieren: Symbolische Rechnung am Arbeitsplatz
Die Integrate-Seite von Wolfram zeigt geschlossene Lösungen. SymPy macht das Gleiche mit freiem Python — aus einer Last wird ein Biegemoment in vier Zeilen.
Irgendwo in der Wolfram-Language-Referenz sitzt eine Seite, die leise etwas tut, das ein Arbeitschreibtisch noch zu selten nutzt: Integrate[f,x]. Gib ihr eine rationale Funktion und sie liefert die Stammfunktion in geschlossener Form — die Seite besagt, rationale Funktionen können immer in geschlossener Form integriert werden, manchmal als Summen von Root-Objekten; gib ihr etwas Komplizierteres und sie greift zu Erf, PolyLog, LogIntegral oder Hypergeometric2F1, statt zu kapitulieren. Wenn symbolische Integration fehlschlägt, ruft sie stillschweigend NIntegrate für eine Zahl auf. Die vier Basic Examples der Seite öffnen sich zu 78 Scope-Einträgen und 67 Applications — inklusive Integralen über Regionen: Scheibe, Kugel, ImplicitRegion von Ungleichungen — was eine elegante Art ist zu sagen Volumenermittlung ohne Handrechnung. Bestimmte Integrale tragen Optionen mit echten Defaults — GenerateConditions → Automatic, PrincipalValue → False für Cauchy-Hauptwerte — so meldet das System, wann ein Ergebnis nur unter bestimmten Parametern konvergiert.
Die echte Geschichte ist älter als der Knopf. Symbolische Integration wurde 1968 zum Maschinenproblem, als Robert Risch bewies, dass die Frage, ob eine elementare Funktion eine elementare Stammfunktion hat, entscheidbar ist — es gibt einen Algorithmus, nicht nur eine Tabelle. Jedes ernsthafte Computeralgebrasystem seither, Wolframs eingeschlossen, ist eine Implementierung dieser Abstammung plus Jahrzehnte von Spezialfunktions-Verwaltung. Deshalb ist das jetzt auf einem Laptop möglich und war in den 1970ern eine Mainframe-Kuriosität.
Warum interessiert sich ein Architekt für eine Stammfunktion? Weil die Hälfte der Mengenermittlung ist Integralrechnung im Bauhelm. Die «Fläche zwischen Kurven»-Sektion der Referenz ist eine Fassadenermittlung. Ihre «Rotationskörper»-Beispiele sind der Beton in einer konischen Stütze. Das Integral einer verteilten Last ist die Querkraft; nochmal integrieren und du hast das Biegemoment — keine Tabelle, kein Interpolationsfehler. PAZ hat das Argument vorher gemacht: Unser Universal Glue-Stück rahmt parametrische Praxis als Geometrie, Mathematik und Physik, verklebt durch Berechnung, und das ist dieser Leim im buchstäblichsten Sinne.
←HEUTE: Ein symbolisches Integral, das 1975 einen Mainframe füllte, läuft 2026 kostenlos auf deinem Laptop in einer Textdatei, die dir gehört.
→3012: Das Zurich-3012-Archiv öffnet das .py immer noch; es verlor die Gebäude, deren Mathematik nur auf einem toten Lizenzserver lebte.
Drehpunkt: Ein Ergebnis ist nur so haltbar wie das Format, das seine Herleitung hält — öffne die Mathematik, oder verliere sie mit dem Vendor.
Das offene System, das du 2051 immer noch laufen lässt
Das Werkzeug: SymPy — ein reines Python-Computeralgebrasystem, das 2005 von Ondřej Čertík gestartet wurde und jetzt von einer grossen Open-Source-Gemeinschaft gepflegt wird. Es tut die gleiche Kernarbeit wie Wolframs Integrate: symbolische Differentiation, Integration, Gleichungslösen, alles in lesbarem Python, das du in Notepad öffnest. Es lohnt sich an einem Nachmittag, weil es «dafür brauch ich Mathematica» in drei Zeilen in einer Umgebung verwandelt, in der deine Grasshopper/GHPython- und IfcOpenShell-Skripte bereits leben — und anders als eine Black Box: wenn es verschwindet, hast du den Source noch.
Einrichtung:
python -m venv .venv
# Windows: .venvScriptsactivate macOS/Linux: source .venv/bin/activate
pip install sympy
# Beweis: sollte x**3/3 drucken
python -c "from sympy import integrate, symbols; x=symbols('x'); print(integrate(x**2, x))"
Erste Schritte:
- Öffne eine REPL (
python) und führefrom sympy import *; x = symbols('x')aus. - Tippe
integrate(sin(x)**2, x)— du bekommst eine geschlossene Antwort, keine Dezimalzahl. Verifiziere es wie die Wolfram-Seite unter «Basic Uses»:diff(_, x)sollte den ursprünglichen Integranden zurückgeben. - Mach ein bestimmtes Integral:
integrate(exp(-x**2), (x, 0, oo))gibtsqrt(pi)/2zurück — exakt, mitooals echte Unendlich. - Erst jetzt zum Numerischen: nutze
float(...), wenn du eine Zahl wirklich brauchst. Symbol zuerst, Zahl zuletzt — das ist die ganze Disziplin.
Atelier: Ein Schweizer Computational-Design-Studio, das bereits zwischen Archicad–Speckle–Bonsai synchronisiert, braucht keine zweite Lizenz für Integralrechnung — es braucht, dass die Herleitung innen in der Pipeline lebt, die es bereits in git versioniert. Büros, die ihre Mengenermittlung von Spreadsheets ins symbolische Python-Skript verlegt haben, berichten das Gleiche: die Zahl ist jetzt nachvollziehbar, weil die Formel direkt daneben steht. Dein Montagsschritt: nimm eine wiederholte Handrechnung, die dein Team jeden Projektzyklus macht — ein Lastintegral, einen Rotationskörper, eine Tageslichfläche — und schreib sie als zehnzeilige SymPy-Funktion um, eingecheckt im Repo, damit dein Kolleg nächstes Jahr die Herleitung liest, nicht nur das Resultat.
Hack: Wandle eine verteilte Last ins geschlossene Biegemoment um, ohne eine einzige Tabelle zu öffnen. Eine dreieckige Last auf einem Kragarm, zweimal integriert, ist die ganze Statik-Übung in vier Zeilen — und weil es symbolisch bleibt, kannst du die Lösung für beliebige Länge oder Last direkt ablesen, nicht nur einen Fall.
from sympy import symbols, integrate
x, L, w = symbols('x L w', positive=True)
q = w * x / L # dreieckige Last, von 0 an der Spitze bis w am Auflager
V = integrate(q, (x, 0, x)) # Querkraft
M = integrate(V, (x, 0, x)) # Biegemoment
print(M.subs(x, L)) # -> L**2*w/6 (Moment an der Einspannung)
Ändere q zu jeder Lastfunktion und das Moment aktualisiert sich symbolisch; wenn du eine konkrete Zahl brauchst, nutze float(M.subs({w: 5, L: 3, x: 3})).
Das ist der Teil, den meine Generation auf die harte Tour lernte. Die Gebäude, die schlecht alterten, waren nicht die hässlichen — sondern die, deren Analyse in einem proprietären Format lebte, das dunkel wurde, sodass niemand die Herleitung später einsehen konnte, um die Struktur zu reparieren oder zu erweitern. Wolfrам’s Integrate ist ein wirklich grossartiger Engine und nicht der Bösewicht hier; das Risiko ist der Standard, deine tragende Mathematik irgendwo wohnen zu lassen, wo ein 25-Jähriger sie nicht ohne laufenden Lizenzserver öffnen kann. Wähle deinen Stack dieses Quartal mit einem Test: Wenn der Vendor verschwindet, lässt sich die Datei noch öffnen? Ein einfaches .py besteht. Behalte die Black Box für das, worin sie brillant ist, und halte die Herleitung offen.
Zum Lernen:
- Das Signal: Wolfram Language — Integrate-Referenz (78 Scope-Einträge, 67 Anwendungen, Regionsintegrale, Optionen).
- Wo die Zahl in der AEC landet: IfcOpenShell — exportiere deine berechneten Mengen ins offene IFC-Modell.
- Schweizer Open BIM: EPFL CNPA — Open-Source-IFC-Entwicklung.
- PAZ-Kontext: Universal Glue — Geometrie, Mathematik und Physik, verklebt durch Berechnung.
Öffne eine REPL, bevor dein Kaffee kalt wird, integriere eine Rechnung, die dein Team jeden Projektzyklus von Hand macht, und commit die zehn Zeilen — die Formel überdauert die Lizenz.
QUELLE · ↗
PAZ Kaffi · interdisziplinäre Redaktionsarbeit, geleitet von der PAZ Academy