Mathematische Ausdrücke, können
auf drei verschiedenen Arten dargestellt werden:
Wie bisher in der Mathematica Syntax.
In einer Kombination aus Mathematica Syntax und Formeldarstellung, wobei
die wichtigsten Symbole (Integrale, Summen, Produkte, Unendlich, ...) in
mathematischer Formelschreibweise dargestellt werden.
In traditioneller mathematischer Form (so wie es im Lehrbuch steht !);
die Ausgabe entspricht hierbei der Formeldarstellung in TeX.
Die Ausdrücke können jederzeit von einem in das andere Format
konvertiert werden. Fähigkeiten zur automatischen Nummerierung von
Gleichungen, Kapiteln und Abschnitten und die Möglichkeit, beliebige
Zeichensätze einzubinden, erweitern Mathematica zu einem vollwertigen
mathematischen Publikationswerkzeug. Über Hyperlinks werden Querverbindungen
in Mathematica Dokumente eingefügt, per Mausklick springt der Anwender
zu den entsprechenden Stellen. Durch die Kombination von Texten, Grafiken,
Tönen, Animationen, Hypertext und Links zu externen Dateien wird Mathematica
zu einem einmaligen Publikationssystem zur Repräsentation von Wissen.
Die Eingabe von Formeln, Vektoren und Matrizen erfolgt entweder, wie
bisher, über die Tastatur oder über die neuen Symbolpaletten.
Per Mausklick lassen sich so komplexe Aufgaben schnell eingeben. Das Umsetzen
von mathematischen Formeln in die Mathematica Sprache führt jetzt
Mathematica durch, der Anwender gibt seine Berechnungen so ein, wie er
sie auf dem Papier notiert, bzw. wie sie in der mathematischen Literatur
dargestellt werden. Über die vordefinierten Symbolpaletten hinaus
können oft benötigte Funktionen in selbstdefinierten Paletten
zusammengestellt werden. Diese Paletten können separat verwaltet oder
aber in Notebooks integriert werden. Der Anwender ist so vollkommen losgelöst
von der Mathematica Syntax.
Zahlreiche Detailverbesserungen sorgen immer wieder für "Aha-Effekte".
Beispielsweise können Punkte aus einem zweidimensionalen Plot per
Mausklick extrahiert und für spätere Berechnungen in einer Liste
gespeichert werden. Es ist jetzt auch möglich, Teile eines mathematischen
Ausdruckes einzeln zu berechnen und das Ergebnis in den Ausdruck einzufügen,
ohne separate Ein- und Ausgabezeile. Der neue Hilfe-Browser enthält
nicht nur wie bisher Referenzen zu den eingebauten Funktionen, sondern
er enthält das komplette Mathematica Buch, einschließlich aller
Beispiele. Die Beispiele können im Hilfe-Browser modifiziert und direkt
berechnet werden. Die elektronische Hilfe stellt so eindrucksvoll Mathematicas
elektronische Publikationsmöglichkeiten dar.
Über diese optischen Veränderungen hinaus erfuhr der Mathematica
Kernel zahlreiche Verbesserungen. Mehrere Hundert neue mathematische und
algorithmische Möglichkeiten und Verbesserungen wurden hinzugefügt.
Neue Grafikarten zur Darstellung von mathematischen Modellen und Daten,
neue Verfahren für die Lösung von Differentialgleichungen zur
Modellierung dynamischer Systeme und neue statistische Tests zur Datenanalyse
sind von allgemeinem Interesse. Für Spezialisten bedeuten die neuen
symbolischen Integrationsverfahren und zahlreiche Erweiterungen der Packages
um spezielle mathematische und physikalische Funktionen einen großen
Fortschritt. Der interne Compiler arbeitet jetzt auch mit Listen und beschleunigt
umfangreiche Simulationen ganz beträchtlich. Mathematica baut seinen
Vorsprung als das System für technische Berechnungen weiter aus.
Mathematicas hochentwickelte Programmiersprache wurde um Fähigkeiten
zum Modifizieren von Schnittstellen- und Dokumenteigenschaften erweitert.
Dies ermöglicht das vollautomatische Erzeugen von Reports und Paletten
und die Manipulation von Dokumenten. Der Anwender erhält so einmalige
Möglichkeiten, wirklich jedes Detail eines Mathematica Dokumentes
von einem Programm aus zu beeinflussen.
Numerische Berechnung
Mathematica arbeitet mit Zahlen arbiträrer Größe und Genauigkeit.
Hierdurch erhält der Anwender vollständige Kontrolle über
numerische Rundungsfehler. Dies erlaubt eine Vielzahl von Berechnungen
mit sowohl theoretischem als auch praktischem Anspruch, die mit normalen
wissenschaftlichen Taschenrechnern oder Programmiersprachen nicht möglich
wären. Mathematica´s wahlfreie numerische Genauigkeit ermöglicht
ein breites Anwendungsfeld an mathematischen Funktionen: trigonometrische-
und Exponentialfunktionen, Bessel-Funktionen, hypergeometrische Funktionen,
elliptische Integrale u.v.m. Mathematica enthält natürlich auch
effiziente numerische Algorithmen für die Matrizenrechnung, die numerische
Integration und numerische Fähigkeiten zum Auflösen von Gleichungen.
Symbolische Berechnung
Neben numerischer Berechnung kann Mathematica auch mit algebraischen Formeln
arbeiten. In Mathematica implementiert wurden alle Standardoperationssymbole
der Algebra und Analysis, einschließlich der Integration, Differentiation
und Polynomberechnung. Die Möglichkeit zur Manipulation und Ableitung
exakter algebraischer Formeln befähigt den Anwender dazu, eine breite
Palette von Berechnungen zu automatisieren, welche bisher nur per Hand
erledigt werden konnten. Der Anwender von Mathematica kann sich explizit
Formeln als Gleichungslösung anzeigen lassen; dies ist manchmal für
das Verständnis der kompletten Struktur einer Lösung einfacher
als numerische Resultate.
Graphische Berechnung
Mathematica ermöglicht Funktionen und Daten zweidimensional und dreidimensional,
in Farbe oder schwarz-weiß darzustellen. Es realisiert anwendungsgerechte
Visualisierung der Ergebnisse. Mathematica erzeugt dreidimensionale Farbbilder
symbolischer Beschreibungen arbiträrer geometrischer Objekte. Zum
Beispiel können Mathematica´s Fähigkeiten zu symbolischen
und zu numerischen Berechnungen verwendet werden, um eine Liste von Ansichten
eines komplexen Polyhedrons zu erzeugen. Hieraus lässt sich über
Mathematica´s Grafikfähigkeiten ein dreidimensionales Bild erstellen.
Seit V 2.2 unterstützt jede Mathematica Version die grafische Animation.
Der Anwender erblickt zum erstenmal eine dynamische Simulation oder die
Veränderungen der Grafik bei Variation einer oder mehrerer Parameter.
Mathematica verwendet für jede grafische Ausgabe POSTSCRIPT. Diese
größen- und auflösungsunabhängige Seitenbeschreibungssprache
produziert auf Medien wie Computerbildschirmen, Laserdruckern, Photosetzmaschinen
und anderen Ausgabegeräten Reports in Präsentationsqualität,
Farbnegative für Zeitschriften und Bücher oder sogar riesige
Poster. Mathematica erlaubt Grafiken im Encapsulated POSTSCRIPT Format
zu speichern, damit können diese leicht in Dokumente anderer Programme
eingefügt werden, z.B. in Desktop Publishing Programme.
Programmierung
Die eingebaute Programmiersprache ist einer der entscheidenden Faktoren
für den weltweiten Erfolg Mathematicas und den Ruf, das Tool für
den Entwicklungsingenieur am Computer zu sein. Die Architektur ist klar definiert
und exakt durchkonstruiert. Es gibt keine Zweifel, mit welchem
Argument eine Funktion vielleicht noch funktionieren könnte, da sind
keine Programmstrategien vonnöten, die sich um drei Ecken winden müssen,
um das Ziel zu erreichen.
Das System erlaubt verschiedene Programmierstile, darunter prozedural-funktional
(APL, C,PASCAL), regelbasiert (Prolog), objektorientiert (C++) und Mustererkennung
(Pattern Matching). Das Pattern Matching ist der zentrale Mechanismus in
Mathematica. Das Schöne an der Mustererkennung ist, dass damit
die natürliche Denkweise von uns Menschen im Computer abbildbar ist.
Leider konnte uns die Wissenschaft bisher nicht endgültig beweisen,
dass unser gesamtes Wahrnehmungs- und Erinnerungsvermögen - und
damit unsere Intelligenz - auf Mustererkennung basiert, aber das gesamte
Expertenwissen deutet darauf hin. Wenn wir uns selbst testen, bemerken
wir, dass dieses sein könnte, es aber schwerlich zu beweisen
ist.
Der regelbasierte Ansatz ermöglicht Umwandlungsregeln für
mathematische Ausdrücke zu spezifizieren. Jede Regel hat Bezug auf
ein Modell und agiert als ein Ausdruck, der das Modell abbildet. Eine Vielzahl
der Regeln können durch direkte Umsetzung der Formeln aus Büchern
konstruiert werden. Regeln können einen Namen erhalten und bei Bedarf
aktiviert werden oder in einer globalen Regelbasis so implementiert sein,
dass sie immer verfügbar sind. Die Programmiersprache Mathematica’s
ist eine Hochsprache, die den Anwender in die Lage versetzt, komplexe Programme
zu erstellen, die aus einfachen, nicht-kryptischen Funktionensaufrufen
bestehen, welche direkt auf die primitiven Operationen in Mathematica selbst
zugreifen. Viele solcher Programme sind in Form von Mathematica-Paketen
verfügbar. Diese Pakete wurden von Mathematica Anwendern und Verkäufern
über die Jahre hinweg erstellt und sind den verschiedensten Anwendungen angepasst. Mit über 860 eingebauten Funktionen stellt Mathematica
eine extrem mächtige Programmiersprache dar, welche durch eigene Funktionen
erweitert werden kann.
Systemarchitektur, Portabilität
Mathematica besteht aus zwei Teilen: dem Kernel, welcher die mathematischen
Berechnungen vollzieht und die Programme ausführt, sowie einem "Front
End", das die Schnittstelle zum Anwender ist. Der Kernel arbeitet auf jeder
Computerplattform gleich. Aus diesem Aufbaukonzept resultiert, dass
sämtliche Softwarepakete, die mit Mathematica entwickelt wurden und
werden, unter allen Computerplattform austauschbar sind. Andererseits ist
das "Front End" so konstruiert, dass es die jeweiligen Möglichkeiten
des Computers voll ausnutzt. Das "Front End" und der Kernel brauchen nicht
auf demselben Computer zu laufen. Alle Versionen sind untereinander voll
kompatibel. So kann das "Front End" auf einem Computer laufen und gleichzeitig
über Modem mit einem anderen Computer kommunizieren, auf welchem der
Kernel installiert ist. Dies ermöglicht Anwendern den Zugriff auf
die Geschwindigkeit von Supercomputern mit dem gewohnten Präsentationsstil
eines PC´s. Das fortschrittliche und anwenderfreundlichen Mathematica
Notebookinterface ist zur Zeit für (Power-) Macintosh, MS-Windows,
NeXTStep und X11-Oberflächen unter HP-UX, Sun Solaris, IBM AIX, Linux,
DEC OSF1 und SGI Irix verfügbar.
Mathematica´s Schnittstelle zu anderen Systemen
Mathematica bietet zwei Möglichkeiten um den Datenaustausch zu externen
Programmen zu gestalten. Am einfachsten funktioniert dies über Dateien
in ASCII- oder Binärformat. Mathematica liest z.B. numerische Daten,
wie sie Tabellenkalkulations- und Datenbankprogramme produzieren. Grafiken
können in den Dateiformaten von Desktop Publishing Systemen wie Adobe
Illustrator, Aldus Pagemaker oder Animationspaketen wie Video Works exportiert
werden. Spezielle "Print Forms" lassen sich definieren, um symbolische
oder numerische Ergebnisse zu exportieren, die in C oder FORTRAN implementiert
werden können. Auch die Ausgabe in der Schriftsetzersprache TeX ist
möglich. Sollten Sie über ein Multitasking-System verfügen,
welches interdisziplinäre Kommunikation ermöglicht, kann Mathematica
Daten in Echtzeit übertragen (in UNIX ist dies durch Pipes realisiert).
Über die plattformunabhängige Protokollsprache MathLink wird
Mathematica mit der anderen Applikation verbunden und die Objekte (Zahlen,
Vektoren, Grafiken, Texte,...) werden über den Link zwischen den Anwendungen
ausgetauscht (siehe MathLink weiter hinten in diesem Magazin). Vordefinierte
Links gibt es z.B. für Excel, Word, AVS, Transform, HyperCard. MathLink
ist für registriert Mathematica Anwender kostenlos.
Der MathLink Kommunikationsstandard
MathLink ist das Mathematica Kommunikationsprotokoll. Auf diesem Weg werden
Daten und Kommandos zwischen Mathematica und anderen Programmen ausgetauscht.
Die aktuelle MathLink Bibliothek ist für C Programme geschrieben,
geplant ist die Unterstützung weiterer Programmiersprachen. MathLink
bietet folgende Einsatzmöglichkeiten:
Aufruf externen Codes von Mathematica aus. Rechenintensive Funktionen können
so beispielsweise durch Verwendung spezieller Numerik-Bibliotheken (NAG,
ISML, ...) beschleunigt werden.
Aufruf Mathematicas als Unterprogramm von einem anderen Programm aus. Der
gesamte Funktionsumfang Mathematicas, einschließlich aller Grafik-Funktionen,
steht so dem externen Programm zur Verfügung. Beispielsweise kann
Mathematica an Datenbanken oder Kalkulationsprogramme angebunden werden.
Mathematica kann von Mathematica aufgerufen werden. Dies ist eine ideale
Experimentierumgebung zum Parallelisieren von Algorithmen. Komplexe Aufgaben
können auf kleine Teilaufgaben reduziert werden.
Die MathLink Bibliothek, die in fast jeder Mathematica Versionen enthalten
ist, enthält alle Funktionen, die notwendig sind, um mit MathLink
zu arbeiten. Dazu gehören Funktionen zum Öffnen und Schließen
des Links sowie zum Senden und Empfangen von Mathematica Ausdrücken.
Die MathLink Funktionen sind plattformunabhängig, d.h. MathLink Programme
können auf jeder Plattform kompiliert werden. Eine aufwendige Portierung
entfällt. Als kommerzielle MathLink Anwendungen sind die Verbindungen
zu Microsoft Excel, Word und Access verfügbar. In MathSource sind
darüber hinaus zahlreiche Beispiele vorhanden.
Stefan Steinhaus, webmaster@steinhaus-net.de