Mathics 7.0 – die Open-Source-Alternative zu Mathematica
(github.com/Mathics3)Zusammenfassung des Updates für Mathics3/mathics-core
-
Neue Funktionen und Verbesserungen
- Es wurde an der Unterstützung für Lazy Loading integrierter Funktionen gearbeitet.
- Python-Code und -Stil wurden modernisiert, Typannotationen hinzugefügt und Rechtschreibfehler beseitigt.
- Verwendung der neuesten Versionen von SymPy und Python.
- Neue integrierte Funktionen hinzugefügt:
$MaxLengthIntStringConversion,Elements,ComplexExpand,ConjugateTranspose,LeviCivitaTensor,RealAbs,RealSign,RealValuedNumberQ.
-
Dokumentation
- Formatprobleme in PDF-Dateien wurden behoben.
- Der Abstand der Nummerierung in Kapitel- und Abschnittsverzeichnissen wurde vergrößert.
- Der Leerraum rund um integrierte Definitionen wurde erweitert.
- Rechtschreibfehler wurden korrigiert.
- Der Code zum Ausführen von
doctestsund zum Erzeugen von LaTeX-Dokumenten wurde überarbeitet, damit schrittweise Updates integrierter Funktionen möglich sind.
-
Kompatibilität
Plotzeigt während der Auswertung keine Meldungen mehr an.Range[]kann jetzt auch negative Werte verarbeiten.- Die Unterstützung für
DirectedInfinityundIndeterminatewurde verbessert. - Im Mathics-Django-Interface werden Tooltipps für Fehlermeldungen angezeigt.
$CharacterEncodingkann nun innerhalb einer Sitzung geändert werden.
-
Interne Struktur
eval_absundeval_signwurden ausAbsundSignherausgelöst und zumathics.eval.arithmetichinzugefügt.- Die maximale Stellenzahl von Zeichenketten ist auf 7000 gesetzt und kann über die Umgebungsvariable
MATHICS_MAX_STR_DIGITSangepasst werden. - Reelle Vergleiche basieren nun auf der internen Implementierung von
RealSign. - In Python 3.11 steuert
$MaxLengthIntStringConversiondie maximale Größe bei Umwandlungen zwischen großen Ganzzahlen und Zeichenketten.
-
Fehlerbehebungen
Definitionsist mitpicklekompatibel.- Die Unterstützung für
Quantity-Ausdrücke wurde verbessert. - Die Hintergrundoptionen von
GraphicsundGraphics3Dfunktionieren. - Probleme bei numerischen Vergleichen von Ausdrücken mit Zeichenketten wurden behoben.
- Ein Problem bei der Verarbeitung von Unendlichkeit in
Switch[]wurde behoben. - Ein Problem bei der Verarbeitung von
SparseArrayinOuter[]wurde behoben. ArrayQ[]erkennt nunSparseArray.- Ein Problem bei der Behandlung der Ausnahme
BoxExpressionErrorwurde behoben. - Probleme bei der Ableitungsauswertung von
True,False,List[]wurden behoben. - Das Paket
Combinatoricawurde korrigiert. - Ein Problem mit der Funktionsweise von
Exit[]wurde behoben. BaseFormist in$OutputFormsaufgeführt.
-
API-Änderungen
- Der neue Funktionsaufruf
import_and_load_builtins()ist erforderlich. - Dies ist zur Unterstützung von Lazy Loading für integrierte Module nötig.
- Der neue Funktionsaufruf
-
Paket-Updates
- Unterstützung für Python 3.11.
- Unterstützung für Sympy 1.12.
1 Kommentare
Hacker-News-Kommentar
Ich verfolge dieses Projekt seit einigen Jahren, und für Leute, die sich für Open-Source-Computeralgebrasysteme interessieren, gibt es eine Vielzahl ausgereifter Lösungen
Persönlich mag ich den LISPy-Stil von Mathematica, aber die eigentliche Stärke von MMA liegt in seiner riesigen Bibliothek
Wolfram Cloud ist für den privaten Gebrauch kostenlos verfügbar, und Wolfram Engine ist eine Möglichkeit, Mathematica kostenlos über die Kommandozeile zu nutzen
Eine kurze Einführung in Mathics gibt es hier
Mathematica kann auf dem Raspberry Pi kostenlos genutzt werden, und die meisten Universitäten verfügen über eine Campuslizenz
(F)OSS-Mathematiksoftware spielt weiterhin eine wichtige Rolle
Ich habe kein großes Interesse an Projekten, die versuchen, die Funktionen von Mathematica zu replizieren, aber solche Projekte setzen Wolfram Research unter Druck, die Grundfunktionen kontinuierlich zu verbessern
Softwareingenieure neigen dazu, nicht für Software bezahlen zu wollen
Einer der unbequemen Aspekte von Mathematica ist, dass alle Funktionen in denselben Namespace gedrängt sind und es kein Overloading mit unterschiedlichen Parametrisierungsoptionen gibt