Inhaltsverzeichnis[Ausblenden][Zeigen]
An Mathematik kommt man nicht vorbei, egal ob man studiert oder in Data Science arbeitet.
Man könnte sogar argumentieren, dass Data Science eine Art angewandte Mathematik/Statistik ist. NumPy, SciPy, Scikit-Lernen und TensorFlow sind nur einige der Python-Bibliotheken, die sich quantitativ mit Mathematik befassen.
Allerdings gibt es nur einen Konkurrenten, der sich explizit mit mathematischen Symbolen auseinandersetzt: SymPy.
Lassen Sie uns alles über SymPy herausfinden.
Was ist SymPy?
SymPy ist eine Python-Bibliothek für symbolische Mathematik. Es strebt danach, ein voll funktionsfähiges Computeralgebrasystem (CAS) zu sein, während der Code so einfach wie möglich gehalten wird, um verständlich und leicht erweiterbar zu sein.
Es ist vollständig in Python geschrieben. Es ist einfach zu verwenden, da es sich nur auf mpmath stützt, eine reine Python-Bibliothek für beliebige Fließkomma-Arithmetik.
Als Bibliothek wurde sie mit einem deutlichen Schwerpunkt auf Benutzerfreundlichkeit erstellt. Erweiterbarkeit ist entscheidend für das Design der Anwendungsprogrammschnittstelle (API).
Infolgedessen unternimmt es keinen Versuch, die Python-Sprache zu verbessern. Ziel ist es, dass Benutzer es neben anderen verwenden können Python-Bibliotheken in ihrem Workflow, sei es in einer interaktiven Umgebung oder als programmierte Komponente eines größeren Systems.
SymPy als Bibliothek fehlt eine integrierte Grafik Benutzerschnittstelle (GUI). Die Bibliothek ist:
- Kostenlos, sowohl in Bezug auf Sprache als auch auf Bier, da es unter der BSD-Lizenz lizenziert ist.
- Python-basiert: Es ist vollständig in Python entwickelt und verwendet Python als Sprache.
- Leicht, weil es nur auf mpmath, a pure, angewiesen ist Python-Bibliothek für beliebige Fließkomma-Arithmetik, wodurch es einfach zu verwenden ist.
- Kann in andere Programme integriert und mit benutzerdefinierten Funktionen modifiziert werden, zusätzlich zur Verwendung als interaktives Werkzeug.
Warum SymPy verwenden?
Sage, ein Computeralgebrasystem, verwendet ebenfalls Python als Programmiersprache. Sage hingegen ist riesig und erfordert einen Download von mehr als einem Gigabyte. Es hat den Vorteil, dass es leicht ist.
Abgesehen davon, dass es kompakt ist, hat es keine anderen Abhängigkeiten als Python, sodass es praktisch überall verwendet werden kann.
Außerdem sind die Ziele von Sage und SymPy nicht dieselben. Sage strebt danach, ein voll ausgestattetes mathematisches System zu sein, und dies geschieht durch die Kombination aller wichtigen mathematischen Open-Source-Systeme in einem.
Wenn Sie eine Sage-Funktion wie beispielsweise Integrate verwenden, ruft sie eines der darin enthaltenen Open-Source-Pakete auf. In Wirklichkeit ist es in Sage integriert. SymPy hingegen strebt danach, ein in sich geschlossenes System zu sein, in dem alle Funktionen selbst implementiert sind.
Seine Fähigkeit, als Bibliothek zu fungieren, ist ein wichtiges Merkmal. Viele Computeralgebrasysteme sind für den Einsatz in interaktiven Umgebungen gedacht, lassen sich aber nur schwer automatisieren oder erweitern.
Es kann interaktiv in Python verwendet oder in Ihr eigenes Python-Programm importiert werden. Es hat auch APIs, um es einfach mit Ihren eigenen Routinen zu erweitern.
Installation von SymPy
Verwenden Sie einfach den folgenden Befehl, um in Ihrer Umgebung zu installieren.
SymPy-Symbole
Fangen wir jetzt damit an! Sein grundlegendes Objekt ist ein Symbol. In SymPy können Sie ein Symbol x erzeugen, indem Sie schreiben:
Der obige Code generiert das Symbol x. Die darin enthaltenen Symbole sollen mathematische Symbole emulieren, die unbekannte Werte darstellen.
Als Ergebnis wird die folgende Berechnung unten gezeigt:
Wie oben gezeigt, funktioniert das Symbol x ähnlich wie ein unbekannter Betrag. Wenn Sie viele Symbole erstellen möchten, schreiben Sie sie wie folgt:
In diesem Fall haben Sie zwei Symbole, y und z, gleichzeitig erstellt. Diese Symbole können nun beliebig addiert, subtrahiert, multipliziert und dividiert werden:
SymPy-Funktionen
1. sympify()-Funktion
Die Methode sympify() wandelt einen beliebigen Ausdruck in einen SymPy-Ausdruck um. Es konvertiert Standard-Python-Objekte wie Ganzzahlen.
Strings werden ebenso in ihre Ausdrücke transformiert wie Integer usw.
2. evalf()-Funktion
Diese Funktion wertet einen angegebenen numerischen Ausdruck mit einer Gleitkommagenauigkeit von bis zu 100 Stellen aus.
Die Funktion akzeptiert zusätzlich ein Dictionary-Objekt mit numerischen Werten für Symbole als subs-Argument. Betrachten Sie den folgenden Satz:
Die Fließkommagenauigkeit ist standardmäßig auf 15 Stellen eingestellt. Dies kann jedoch auf eine beliebige Zahl zwischen 1 und 100 geändert werden.
Die folgende Gleichung wird mit einer Genauigkeit von 20 Stellen ausgewertet.
3. Lambdify()-Funktion
Lambdify ist eine Funktion, die ihre Ausdrücke in Python-Funktionen umwandelt. Die Methode evalf() ist ineffizient, wenn ein Ausdruck über einen breiten Wertebereich ausgewertet wird.
Lambdify funktioniert ähnlich wie eine Lambda-Funktion, außer dass es SymPy-Namen in die Namen der bereitgestellten numerischen Bibliothek übersetzt, die im Allgemeinen NumPy ist.
Standardmäßig wird Lambdify auf Implementierungen von mathematischen Standardbibliotheken angewendet.
Eigenschaften
Eine Handvoll der wichtigsten Funktionen der Bibliothek sind hier aufgelistet; Viele weitere sind nicht enthalten, aber Sie können sie sich ansehen hier.
1. Kernfähigkeiten
- Grundlegende Arithmetik: Operatoren +, -, *, / und ** werden unterstützt (Potenz)
- Eine Polynomentwicklung
- Ganzzahlen, rationale Zahlen und Gleitkommazahlen mit beliebiger Genauigkeit
- Trigonometrische, hyperbolische und Exponentialfunktionen, Wurzeln, Logarithmen, Absolutwerte, sphärische Harmonische, Fakultäten und Gammafunktionen, Zetafunktionen, Polynome und Sonderfunktionen
- Symbole, die nicht kommutativ sind
- Passende Muster
2. Berechnung
- Integration: Dieses Verfahren verwendet die erweiterte Risch-Norman-Heuristik
- Unterscheidung.
- Funktionen begrenzen
- Laurent Taylors Serie
3. Polynome
- Gröbner Stiftungen
- Zerlegung von Partialbrüchen
- Division, ggT Resultierende sind Beispiele für Grundrechenarten.
4. Kombinatorik
- Permutationen
- Gray- und Prüfer-Codes
- Kombinationen, Partitionen, Teilmengen
- Polyeder-, Rubik-, symmetrische und andere Permutationsgruppen
5. Diskrete Mathematik
- Zusammenfassungen
- Logische Ausdrücke
- Binomialkoeffizienten
- Zahlentheorie
Anwendungen
1. Gebäuderechner
2. Computeralgebrasysteme
Im Gegensatz zu anderen Computer-Algebra-Systemen müssen Sie darin symbolische Variablen mit der Funktion Symbol() manuell deklarieren.
3. Berechnung
Die Fähigkeit eines symbolischen Berechnungssystems, alle Arten von Berechnungen symbolisch durchzuführen, ist seine größte Stärke.
Es kann Aussagen symbolisch vereinfachen, Ableitungen, Integrale und Grenzwerte berechnen, Gleichungen lösen, mit Matrizen interagieren und vieles mehr.
Als Appetitanreger hier ein Vorgeschmack auf Symbolkraft.
Was können Sie sonst noch mit SymPy machen?
Anstatt ausführlich über zusätzliche Themen zu sprechen, möchte ich Ihnen eine Liste mit Ressourcen zur Verfügung stellen, die Ihnen helfen, Ihre Fähigkeiten zu verbessern:
- Matrizen und Lineare Algebra: Es kann mit Matrizen arbeiten und grundlegende Operationen der linearen Algebra ausführen. Die Sprache ähnelt der Syntax von NumPy. Es gibt jedoch bemerkenswerte Unterschiede. Untersuchen Sie zunächst Matrizen in der Bücherei.
- Expression: Es nutzt einen Ausdrucksbaum, der eine baumbasierte Struktur ist, um Ausdrücke zu verfolgen. Ansehen Ausdrucksbäume wenn Sie mehr über ihr Innenleben erfahren möchten.
- Ableitungen und Integrale: Es kann das meiste von dem erreichen, was Sie in einem Einführungskurs in Analysis lernen würden (abzüglich des Denkens). Sie können damit beginnen, sich unsere Funktion anzusehen Differenzierung in SymPy.
- Beziehung zu NumPy: NumPy und SymPy sind beides mathematikbezogene Bibliotheken. Sie sind dennoch wesentlich verschieden! NumPy arbeitet mit Zahlen, während es mit symbolischen Ausdrücken arbeitet.
- Vereinfachungen: Es ist intelligent genug, um Ausdrücke automatisch zu vereinfachen. Wenn Sie jedoch eine feinkörnigere Kontrolle darüber wünschen, schauen Sie sich seine an Vereinfachungen.
Zusammenfassung
SymPy ist eine mächtige Bibliothek für symbolische Mathematik.
Sie können damit Variablen und Funktionen erstellen, mathematische Aussagen symbolisch erweitern und vereinfachen sowie Gleichungen, Ungleichungen und sogar Gleichungssysteme/Ungleichungen lösen.
Sie können die Funktionen sowohl in den Text des Skripts als auch direkt in das Terminal schreiben (bzw Jupyter-Notizbücher), um eine schnelle Einschätzung und eine bessere grafische Darstellung der durchgeführten Berechnungen zu erhalten.
Sind Sie bereit, mehr von SymPy zu entdecken? Lass es uns in den Kommentaren wissen.
Hinterlassen Sie uns einen Kommentar