|
Was ist Mathematica?
Mathematica ist nicht nur: ein System für Computeralgebra, für die Visualisierung, nicht nur eine
Computersprache oder ein System für Formelsatz,
sondern:
Es ist all dieses, aber vor allem ein "alles-in-einem-integriertes System" - das heisst vor allem auch:
es werden keine weiteren "Toolboxes" o. ä. für alle wesentlichen Aufgaben des "Technical Computing"
benötigt !
(Sicher gibt es spezielle Zusatzpakete wie Wavica, Optica, FeynCalc etc. !)
Mit Mathematica werden ohne zusätzliche Toolboxes möglich:
- numerische Berechnungen
- symbolische Berechnungen
- Formelsatz hoher Qualität (auch XML, TeX)
- Visualisierung
- Dokumentationserzeugung und -präsentation
- Programmierung von Berechnungen, Visualisierungen, Dokumenterzeugung usw.
- "deployable" Routinen mit dynamischen interaktiven Benutzerschnittstellen
- und mehr wie z.B. Wolfram|Alpha ("computable knowledge")
Eine wesentliche Stärke ist die durchstrukturierte Möglichkeit für symbolische Berechnung. Was ist eigentlich symbolisches Rechnen?
<Ein kleiner Exkurs zum Nachdenken: Ein Symbol steht für etwas. In Mathematik kann dies ein Algorithmus sein, der zur Zahl e führt, oder allgemeiner, einer der zu einer Lösung führt und dem man einen Namen geben möchte. Es ist aber duchaus möglich, dass ein Symbol auch für eine Datenstruktur (wie es z.B. ein Bild ist) steht. Rechnen ist ein Ordnungsprozess. Sicher ist Ordnung auch etwas Subjektives. Man kann ja auch diverse eigene Rechenregeln aufstellen.
Symbolisches Rechnen ist dann z.B. die Verknüpfung von Symbolen, die Rückführung von einem "symbolbehafteten" Ausdruck in einen anderen. Nach Regeln, die man aufstellt oder indem man vorgegebene verwendet.
Während man früher sehr häufig bestrebt war, in der Mathematik Lösungen in Ausdrücken mit bekannten Funktionen anzugeben oder, in wichtigen Fällen, dann "neuen" Funktionen einen neuen Namen gab, ist dies heutzutage dank Computer, die einen Algorithmus sehr schnell durchrechnen können, eigentlich nicht mehr notwendig. Man kann es auch bei den Algorithmen belassen und dann sogar mit Algorithmen "rechnen". Und das macht man ja auch : was anderes sind Programmsysteme? Mitunter einfach nacheinander ausgeführte Algorithmen, aber Programme können sich ja auch modifizieren (Viren) und seit der Einführung auch parallel arbeiten/infizieren.
Funktionen wie e oder Sinus beschreiben eine bestimmte Aufgabe, einen Algorithmus.
Früher hat man dann gesagt, um z.B. den Sin(2,33356) zu berechnen, gehst du dann in die Tafel im Anhang und interpolierst. Diese Tafel hatte jemand mühselig auf x Stellen nach bestimmten Algorithmen berechnet. Bei anderen Aufgaben war man dann froh, dass man die Lösung in Termen mit Sinus oder/und anderen tabulierten Funktionen angeben konnte, weil ja Sinus tabuliert war
Das ist aber nicht mehr erforderlich ! Es reicht in der Regel die Angabe eines Lösungsalgorithmus, dann kann der Computer das errechnen, und man muss nicht mehr Ausdrücke umformen in Ausdrücke mit bekannten tabulierten Symbolen.
Es mag weiter gut und interessant sein, einige Algorithmen als "einfach oder gutmütig oder besser berechenbar" zu klassifizieren, dann wird man andere Algorithmen gerne auf diese "besseren" Algorithmen zurückführen wollen.
Algebraische Unformungen können auch nützlich sein, weil sich dann aus der Form des Ausdrucks vielleicht leichter theoretische,quantitative odereinteressante Zusammenhänge erkennen lassen.
Ende des Exkurses >
Grundlegende Einführungen in die "Symbolwelt" von Mathematica finden Sie in zahlreichen Büchern zu Mathematica.
Insbesondere eignet sich Mathematica für folgende Bereiche:
Schreib-/Präsentationssystem - Numerik - Symbolik - Grafik - Programmiersprache
Integration von Programm und Dokumentation - Software-Interaktion
Neu: Sehr viele der grundlegenden Konzepte Mathematicas werden jetzt in Videos "live" erläutert !
Lesen Sie auch unsere Zusammenfassung der neuen Eigenschaften in Mathematica 6 und 7.
Schreibsystem für Mathematik, mathematisch-technische Präsentationen
In einem Mathematica-Dokument (Notebook) kann man Text, ("lebendige") mathematische Formeln (Formelsatz), und Grafik (auch filmartig dargestellte Grafiksequenzen), und seit Version 6 auch dynamische Schnittstellen mischen. Damit lassen sich parametrisierte Objekte manipulieren.
Mit dem Frontend werden Ihre Formeln in der üblichen mathematischen Schreibweise dargestellt (auch Integralzeichen, Wurzelzeichen usw.), und Sie haben die Auswahl aus diversen in der Mathematik nützlichen Schriftzeichen aus u.a. den griechischen, altdeutschen und hebräischen Alphabeten. Zur Erleichterung der Arbeit gibt es Paletten, Werkzeuge für Dokumentstruktur, HyperLinks und vieles mehr. Ihre Arbeit lässt sich einfach aus und in TeX/LaTeX konvertieren und ab der Version 4 auch als HTML-Dokument speichern. Mathematica unterstützt MathML und auch XML. Aufgrund der Vielseitigkeit insgesamt eignet sich Mathematica zur Erstellung von mathematischen Wissenskompendien (wie zum Beispiel die Functions Site). Neu in Version 6 ist das Konzept "curated data sets" (übersetzt etwa "gepflegte Datensammlungen").
Seit Version 8 ergibt die Verbindung zu Wolfram alpha die Möglichkeit, Berechnung und Wissen miteinander zu verbinden.
|
|
Numerische Berechnungen
Numerische Berechnungen können beliebig genau und kontrolliert durchgeführt werden. Alle Standard- und fast alle Spezialfunktionen der mathematischen Physik sind vorhanden. Möglich sind u.a. Fourier-Transformationen, lineare Algebra (auch QR- und Schur-Zerlegung), Kurvenanpassung mit der Methode der"kleinsten Quadrate", numerische Integration und Minimierung, lineare Optimierung, Differentialgleichungen. Berechnungen ist auch mit nicht-skalaren Objekten (Vektoren, Matrizen) möglich. Differentialgleichung können gebietsweise unterschiedlich gelöst werden.
Geschwindigkeit: Mathematica ist vor allem ein Prototyping-Tool, jedoch haben wesentliche Fortschritte in den jüngsten Releases Mathematica schneller rechnen lassen und das auch mit riesigen Datenmengen.
|
Symbolische Berechnungen
Eine Stärke von Mathematica sind symbolische Berechnungen: Integrale und Ableitungen, Differentialgleichungen, Entwickeln, Faktorisieren, Vereinfachen von Polynomen und rationalen Ausdrücken, Polynomgleichungen (auch Systeme davon) lösen, algebraische Ergebnisse vieler Matrix-Operationen, Potenzreihen-Approximation, Rechnen mit Bildern und Ausdrücke. In Version 8 wurden Probaility-Berechnungen möglich (symbolisch und numerisch)
|
Grafische Ausgabe und Ton
|
Mathematica ist bekannt für hochqualitative Grafik: 2D- und 3D-Diagramme, Zeichnen von Funktionen oder Datenlisten, 3D-Grafik mit Schattierung, Farbe (HSB, CMYK), Lichteffekten, Transparenz; Erstellung von 2D- und 3D-Bildern aus Objekten wie Polygonen. Grafik lässt sich in diversen Formaten im- und exportieren. Funktionen und Datenlisten können auch als Ton ausgegeben werden.
Seit Version 6 eignet sich Mathematica insbesondere für interaktive Demonstrationen.
In Version 7 und 8 wurde die Bildverarbeitung umfangreich überarbeitet.
|
|
"Graphics created by Michael Trott with Mathematica® ©1998-2007. All rights reserved."
Weitere sehenswerte Grafiken |
Mathematica als Programmiersprache
Mathematica beinhaltet eine Interpretersprache. Sie können eigene Programme für Prozeduren, Funktionen und Relationen schreiben (mit eigenen Datentypen, objektorientiert, Operator-Overloading, regelbasiert, logisch). Funktionen sind jedoch auch kompilierbar. Darüberhinaus stehen Funktionen zum Debuggen und zum Tracen zur Verfügung.
Mit Mathematica lassen sich vielfach sehr kurze Programme schreiben, die z.B. mit C++ sehr viel zeitaufwendiger zu erstellen wären. Beispiele für Sammlungen von Mathematica-Programmen sind zum Beispiel MathSource und Wolfram Application Packs. Projekte, Debugger, Profiler all das finden Sie in der Wolfram Workbench.
Neu in Version 6 sind Konstrukte zur Programmierung von Dynamik und Dynamischer Interaktivität.
Mit Version 7 ist es jetzt auch auf einfache Weise Parallelisierung möglich. Hier finden sie weitere Informationen zu Mathematica und parallelen Berechnungen.
In Version 8 wurde die Möglichkeit geschaffen, C-Code zu erzeugen, und den auch wieder einzubinden, externe DLLs lassen sich einbinden.
|
|
Wichtige Eigenschaften von Mathematica sind:
Notebook-Schnittstelle: Integration von Programm und Dokumentation
- Programmierbare Dokumente auf Basis einer symbolischen Darstellung
- Symbolische Sprache zur Spezifikation von Operationen der Benutzerschnittstelle
- Gestaltbare Paletten, die jede beliebige Kernel- und Frontend-Operation durchführen können
- Integrierte aktive Elemente und Hyperlinks in Notebooks
- Separate Stilvorlagen für z.B. Bildschirm und Drucker
- Sprachbasierte Kontrolle aller Eigenschaften von Text, Grafik, Zellen und Notebooks
- Formatierungen und Grafiken auch mitten im Text
- Eingebaute On-Line-Hilfe mit Hyperlinks
- Plattformunabhängiges Notebook-Format
- Konvertierung in TeX, HTML und andere Formate
- Der "Reader" für Notebooks: Mit dem Mathematica Player lassen sich Noteboks (auch mit Dynamik) anschauen (ohne Mathematica zu besitzen).
|
Software-Interaktion
Die Software besteht aus zwei Softwareteilen, dem Frontend und dem Kernel, die über das Protokoll "MathLink" kommunizieren, aber auch alleine nutzbar sind. Das Frontend dient im wesentlichen zur Aufbereitung der Eingabe und Ausgabe, während der Kernel die mathematische Arbeit leistet und eine LISP-ähnliche Sprache versteht. Ein allein im Terminalmodus benutzter Kern ist, da ja die Ein- und Ausgabearbeit wesentlich reduziert ist, zum Beispiel sehr viel schneller. Auch das Frontend kann alleine zum Beispiel als Schreibsystem verwendet werden. Ein Frontend kann auch mit einem Kernel auf einer anderen Maschine kommunizieren. Man kann auch alternative Frontends für den Mathematica-Kern programmieren.
Schliesslich kann man verschiedene Mathematica-Kerne als Mathematica-Grid zusammarbeiten lassen. |
|
Mit MathLink kann Mathematica mit anderen Anwendungen (z. B. MS Word, Excel) kommunizieren, dafür gibt es spezielle käufliche Zusatzbibliotheken sowie frei verfügbare in der MathSource-Sammlung.
Es gibt auch sprachliche Verbindungen zu anderen Programmiersprachen (Java, C und FORTRAN) und zu TeX.
Seit Version 6 gibt es den Mathematica Player zum Betrachten von Notebooks.
In Version 8 gibt es Möglichkeiten: C -Code zu erstellen und auch wieder einzubinden, externe DLLs lassen sich integrieren, CUDA und OpenCL wird unterstützt.
|
|