Die neue Version 4.2 von Mathematica bietet im Kern – der symbolischen und numerischen Mathematik – kaum Änderungen. Neu geregelt ist jedoch die Anbindung an die Außenwelt mit XML und Java. Daneben kamen mit Web Mathematica und Grid Mathematica neue interessante Produkte auf den Markt.
Mathematica – das ist eine Erfolgsgeschichte, die sich etwas im Schatten solcher Giganten wie Microsoft, Oracle oder SAP abspielt. Die Software gehört heute neben Maple[1] zu den am häufigsten verwendeten Computeralgebra-Systemen (CAS).
Die zentrale Persönlichkeit dieser Geschichte ist der englische Physiker Stephen Wolfram. Um seine ambitionierten Forschungen am Computer besser vorantreiben zu können, entwickelte er zunächst das Programm SMP (Symbolic Manipulation Program). Mitte der 80er Jahre stieg er aus der öffentlichen akademischen Forschung aus und gründete zusammen mit engagierten Mitstreitern die Firma Wolfram Research in Champaign (USA). Ziel war die Entwicklung und Vermarktung einer leistungsfähigen Mathematik-Software, die einen wesentlichen Marktanteil erzielen sollte. Das hatte er innerhalb von knapp zehn Jahren auch geschafft.
Heute hat Mathematica laut Wolfram Research etwa eine Millionen Anwender in den Universitäten, Hochschulen, Schulen und technischen Institutionen oder Unternehmen und ist weit mehr als ein CAS: Symbolische, numerische und grafische Elemente einer Rechnung sind sinnvoll vereint, die Rechnung kann zudem in einer hochwertigen Dokumentation kommuniziert werden.
Speziell in den letzten Punkt haben die Entwickler im Laufe der Jahre eine Menge Arbeit gesteckt. Das Resultat ist inzwischen sehr überzeugend – man kann mit Mathematica 4.2 Berichte und sogar Bücher schreiben, die hohen Ansprüchen genügen. Abbildung 1 zeigt ein einfaches Beispiel.
Mathematica 4.2 |
|
Einzelplatz-Vollversion(Windows, Linux): 150 Euro Dokumentation: drei Handbücher, insgesamt etwa 2000 Seiten, teilweise gebunden Distributoren in Deutschland (Auswahl): Additive GmbH, Rohrwiesenstr. 2, D-61381 Friedrichsdorf [http://www.additive-net.de] Leipziger Gewerbe BV mbH, Motteler Str. 23, D-04155 Leipzig [http://www.LGsoftas.de] Weitere Distributoren auf: [www.mathematica.com] |

Abbildung 1: Mathematica-Notebook mit einem Dokument, das die Berechnung des Volumens eines Rotationskörpers erläutert. Die Gestaltung des Dokuments wird über wählbare Stylesheets gesteuert. Die Eingaben sind braun, die Ausgaben rosa unterlegt.
Neue Produkte
Wie für die meisten Software-Unternehmen wird es auch für Wolfram Research langfristig zum Problem, nur ein einziges Schlüsselprodukt herzustellen. Zumal sich in diesem Fall der Anwenderkreis nicht beliebig vergrößern lässt. Sobald Universitäten oder Forschungseinrichtungen einmal versorgt sind, ist nur noch durch Upgrades und Lizenzverträge Geld zu verdienen.
Daher hat Wolfram Research seit einigen Jahren drei Strategien entwickelt: Das Unternehmen entwickelt und vermarktet auf Mathematica basierende Programmpakete, die die Standard-Routinen und -Funktionalitäten von Mathematica auf bestimmte Spezialgebiete anwenden. Sie betreffen Bereiche wie zum Beispiel die Zeitreihen-Analyse, optische Anwendungen, aber auch die Bereitstellung von Funktionen für die Finanzwirtschaft. Aktuell gibt es 17 dieser Zusatzpakete. Zudem vermarktet Wolfram Research Addon-Pakete anderer Softwarehersteller. Dabei können deren Entwickler von Wolfram Research konzeptionelle Hilfe erhalten.
Als Beispiel sei das Paket Operations Research aufgeführt, das vom Autor mitentwickelt wurde. Es stellt Routinen aus der linearen und quadratischen Optimierung zur Verfügung. Hinzu kommt eine Reihe von Heuristiken, unter anderem das Ameisenkolonie-Verfahren zur Tourenoptimierung. Weitere Highlights sind eine selbst entwickelte, sehr schnelle Methode zur Bestimmung kürzester Wege unter sich verändernden Verbindungslängen und eine Implementation des Reinforcement-Lernens.
Die Anfangskonzeption dieses Pakets wurde mit Hilfe der Experten bei Wolfram Research entwickelt. Dabei half auch ein Aufenthalt im Unternehmen im Rahmen des Grant Scholarships. Wolfram Research übernimmt einen Teil der Vermarktung und des Vertriebs – natürlich gegen eine vereinbarte Beteiligung. Der Hersteller kann aber auch weiterhin das Produkt selbst vertreiben.
Nicht zuletzt kommen immer mehr spezielle Versionen von Mathematica für bestimmte Anwendungsrichtungen auf den Markt. Dazu zählen Web Mathematica, Grid Mathematica, Calculation Center oder auch die neue Teacher’s Edition. Das sind eigenständige Produkte, die auf dem Mathematica-Kern basieren. Insbesondere wird dazu keine Vollversion von Mathematica benötigt. Die kürzlich erschienene Version 4.2 gibt Anlass, sich mit den neuen Features etwas ausführlicher zu befassen.
Die neue Version 4.2
Mathematica und Maple sind derzeit die einzigen beiden Systeme, die Technical Computing mit einem eigenen symbolischen Kern verbinden. Für viele Anwendungen sind beide hinsichtlich ihrer Leistungsfähigkeit vergleichbar. Einige Probleme werden mit Maple, andere mit Mathematica besser gelöst. Über die Auswahl entscheiden oft spezifische Anforderungen, die sich aus der wissenschaftlichen Arbeit ergeben.
Mathematica hat eine Reihe von Vorteilen: Die Struktur der Ausdrücke ist sehr einfach analysierbar; man kann jeden Teil eines noch so komplexen Ausdrucks extrahieren und manipulieren. Dazu zählt, dass man auch die so genannten Notebooks – also die Ein- und Ausgabefenster – frei programmieren und manipulieren kann. Die symbolische Integration ist sehr leistungsfähig. Ein sehr großer Teil der in wissenschaftlichen oder technischen Aufgabenstellungen vorkommenden Integrale werden durch Mathematica gelöst. Schließlich lassen sich, wie erwähnt, hochwertige Dokumente auf einfache Art erstellen.
Am eigentlichen Kern hat sich in der Version 4.2 nicht allzu viel verändert. Im Bereich der symbolischen Manipulationen wurde die »Simplify«-Routine erweitert und verbessert. Sie kann nun die Funktion »ProductLog(z)« – die Lösung der Differenzialgleichung dw(z)/dz= w(z)/(z*(1+w(z))) – einbeziehen und erzielt zudem für die Funktionen »Mod«, »Floor«, »Ceiling«, »Log«, »Erf«, »InverseErf«, »Erfc« und »InverseErfc« bessere Resultate.
Mehr Numerik und Statistik
Die Routine Linear Programming zur Minimierung linearer Funktionen unter dem Einfluss linearer Zwangsbedingungen erhielt einen neuen Lösungsalgorithmus. Zudem wurde das Paket NMinimize implementiert. Mit den darin enthaltenen Funktionen können Probleme der globalen Optimierung nicht-linearer Funktionen unter dem Einfluss von Zwangsbedingungen gelöst werden.
Das neue Statistikpaket ANOVA erweitert Mathematicas zahlreiche Funktionen um Verfahren der Varianzanalyse. Zudem laufen jetzt die Routine NSolve zur numerischen Lösung von Gleichungen und die Matrixoperationen »Dot« und »Transpose« für höhere Dimensionen beschleunigt ab.
An der Grafik hat sich seit Version 4.1 nichts getan. Der Realtime-Modus, der unter Windows gewählt werden kann, fehlt unter Linux: Man kann also dreidimensionale Grafiken mit der Standard-Vollversion nicht online manipulieren. Andererseits schafft der frei erhältliche OpenGL-Viewer MathGL3d[2] Abhilfe. Er arbeitet mit der Mesa-Bibliothek zusammen und wird als Zusatzpaket direkt in Mathematica integriert. Nach der Installation ist er dann praktisch ein normales Addon für Mathematica (siehe Abbildung 2).
![Abbildung 2: Darstellung einer dreidimensionalen Grafik mit Hilfe des Addon-Pakets MathGL3d. Das separate Fenster, das beim Ausführen des Befehls »MVShow3D[]« erscheint, wird nicht gezeigt.](https://www.linux-magazin.de/wp-content/uploads/2007/01/abb2_jpg-673-240x300.jpg)
Abbildung 2: Darstellung einer dreidimensionalen Grafik mit Hilfe des Addon-Pakets MathGL3d. Das separate Fenster, das beim Ausführen des Befehls »MVShow3D[]« erscheint, wird nicht gezeigt.
Deutlich mehr Java und XLM
Der Schwerpunkt bei Verbesserungen und neuen Features in Mathematica 4.2 liegt bei XML und Java. Das soll dem Nutzer die Integration von Mathematica-Anwendungen in Web-Umgebungen wesentlich erleichtern. Insbesondere für den Austausch von mathematischen Strukturen und deren Darstellung in Browsern wurde die XML-Anwendung MathML entwickelt. Wolfram Research ist daran innerhalb des W3C-Konsortiums führend beteiligt. So verwundert es nicht, dass Mathematica 4.2 die neue Version MathML 2.0 schon vollständig unterstützt. Es sind nun vielfältige Routinen zum Parsen der strukturellen Bäume und zu deren Umsetzung in Mathematica-Ausdrücke vorhanden.
Zusätzlich hat Wolfram Research den eigenen Dialekt NotebookML entwickelt; wohl deshalb, weil MathML sich mit der komplexen Darstellung von Ausdrücken in den Notebooks – etwa Indizes oder Integralzeichen mit Grenzen – schwer tut. Mit NotebookML können Notebooks intern wesentlich einfacher dargestellt werden. Das funktioniert jedoch allein unter Mathematica. Mit den Funktionen »Import« und »Export« können die entsprechenden Ausdrücke eingeladen oder exportiert werden. Vergleiche dazu die Abbildungen 3 bis 5.

Abbildung 3: Die Abbildung zeigt das Notebook, das mit den XML-Daten erzeugt wurde. Es erscheint durch den letzten Befehl im Notebook der Abbildung 5.

Abbildung 4: Das Mathematica-Notebook zeigt die Umwandlung der CSV-Daten aus Abbildung 3 in eine XML-Datei. Für dieses Dokument wurde das Stylesheet einmal gewechselt.

Abbildung 5: In diesem Notebook wird die XML-Datei eingelesen und analysiert. Danach wird ein einfaches Mathematica-Notebook programmiert und mit dem letzten Befehl erzeugt.
Beste Verbindungen dank J/Link
Die neue Version liefert J/Link 2.0 mit und installiert es standardmäßig. Es entfällt so das umständliche Nachinstallieren, das noch in der Version 4.1 notwendig war. Mit J/Link kann der Anwender Java-Programme innerhalb von Mathematica verwenden. Auch die andere Richtung ist möglich: Java-Programme können vom Mathematica-Kern profitieren. Möglich wird das durch Math Link, dem von Wolfram Research entwickelten Kommunikationsprotokoll. Es realisiert den Datenaustausch zwischen Mathematica und externen Programmen.
Mit C-Code ist das schon seit einiger Zeit möglich. So konnte ich beispielsweise ausgewählte Funktionen der NAG-C-Programmbibliothek nach Mathematica exportieren. Die Abbildungen 6 und 7 demonstrieren anhand einfacher Beispiele die Nutzung von Java-Programmen innerhalb einer Mathematica-Sitzung.

Abbildung 6: Einbindung von Java-Programmen in eine Mathematica-Sitzung. Eine Java-Konsole, die in der Bibliothek »JLink.jar« enthalten ist, wird aufgerufen. Anschließend gibt man über den »System.out«-Strom von Java den Text aus. Das Java-Fenster wurde in das Notebook-Fenster geschoben.

Abbildung 7: Die Einbindung eines externen Java-Applets in eine Mathematica-Sitzung. Dieses Applet ist eine Spezialentwicklung für Mathematica.
Publishing und Präsentationen mit Mathematica
Mit der Version 4.2 kamen zwei wichtige Neuerungen hinzu, um Mathematicas Position als Kommunikations- und Präsentationsplattform auszubauen: das Author-Tool und die Slideshow. Author-Tool stellt einen vorläufigen Abschluss der Bemühungen dar, Mathematica auch als vollwertiges Programm für die Erstellung hochwertiger Dokumentationen zu verwenden.
Der Anwender kann in so genannten Projekten bei Bedarf mehrere Mathematica-Notebooks zu einer Dokumentation zusammenstellen. Author-Tool ist dann in der Lage, ohne größeren Aufwand automatisch Inhalts- und Stichwortverzeichnisse anzulegen, die man zudem in begrenztem Umfang selbst strukturieren kann. Auch die Gestaltung der Seiten, beispielsweise die Anzahl der Spalten, ist wählbar.
Der Druck sollte aber möglichst aus Mathematica heraus erfolgen. Wer das Enddokument in eine Postscript-Datei umwandelt und dann aus einem anderen Programm heraus drucken möchte, der erlebt oft eine böse Überraschung: Die Seitenformatierung hat sich geändert, also auch die Seitenzahlen. Damit sind das Inhaltsverzeichnis und das Glossar nur bedingt brauchbar.
Die andere Neuerung – Slideshow – gibt dem Nutzer die Möglichkeit, Präsentationen à la Powerpoint zu erstellen. Insbesondere für wissenschaftliche oder technische Vorträge ist dieses Vorgehen eine gute Alternative. Man kann innerhalb der einzelnen Sheets Rechnungen vorführen, ohne die Umgebung verlassen zu müssen oder auch Links zu einzelnen externen Programmen zu setzen.
Die Gestaltung der mathematisch-technischen Symbole und Relationen ist ansprechend und außerdem relativ einfach zu realisieren.
Andererseits fehlt die Möglichkeit, grafische Elemente wie Boxen oder Pfeile in einfacher Weise zu integrieren. Damit ist man, wie schon erwähnt, auf den Bereich der wissenschaftlich-technischen Konferenzen beschränkt. Dann ist es allerdings wesentlich einfacher, als etwa die ganze Kette Latex-DVI-PS-PDF- Adobe Acrobat Reader im Fullscreen-Modus abarbeiten zu müssen. Ganz zu schweigen davon, dass keine Online-Rechnungen durchgeführt werden können. Fairerweise ist aber auch zu bemerken, dass die typographische Darstellung von Formeln unter Latex immer noch ohne Konkurrenz ist.
Mathematik in interaktiven Webseiten
Web Mathematica soll mathematische Berechnungen über eine vernetzte Umgebung den Nutzern zugänglich machen. Mit diesem Werkzeug können interaktive Webseiten erzeugt werden, die sich mit herkömmlichen Browsern öffnen und bedienen lassen. Dem Entwickler bleibt so die teilweise recht umständliche Java-Programmierung komplizierter mathematischer Algorithmen und deren Visualisierung erspart – er hat den vollen Zugriff auf die Routinen des Mathematica-Kerns. Sinnvoll erscheint dies insbesondere dann, wenn zum Beispiel spezifische Problemlösungen einer Gruppe von Anwendern zur Verfügung stehen sollen.
Es ist allerdings zu erwähnen, dass Web Mathematica eine gewisse Vorkenntnis in Java, Webservern, Servlets und den Containern, zum Beispiel Tomcat, erfordert. Der Anwender muss einige Konfigurationsdateien ändern, um die Voraussetzungen zum Einsatz von Web Mathematica zu schaffen. Der mitgelieferte User Guide gibt da einige Hinweise, spart aber mit Details.
Web Mathematica ist ein eigenständiges Produkt von Wolfram Research und bei Bedarf auch separat zu erwerben. Die Premium-Service-Lizenznehmer von Mathematica erhalten kostenlos eine abgespeckte Amateurversion.
Bisher waren symbolische Rechnungen mit Mathematica immer nur auf einem Prozessor durchführbar. Das bedeutet, dass innerhalb eines Programms die Schritte nur sequenziell abgearbeitet werden konnten. In vielen Aufgabenstellungen wäre es jedoch möglich, durch das parallele Abarbeiten unabhängiger Schleifen eine immense Zeiteinsparung zu erzielen. Für numerische Berechnungen wird das schon seit längerer Zeit praktiziert.
Paralleles Rechnen mit Grid Mathematica
Wolfram Research hatte mit dem Parallel Computing Toolkit schon ein Zusatzpaket entwickelt, das die Organisation einer parallelen Abarbeitung ermöglichte: Ein Kern diente als Master für die Steuerung der anderen verteilten Prozesse. Dabei war aber für jeden Prozess eine Vollversion notwendig.
Mit Grid Mathematica erscheint nun ein (auch finanziell) eigenständiges Produkt auf dem Markt. Es ist speziell für die Nutzung von Mathematica auf mehreren Knoten eines Rechnernetzes konzipiert. So wird auf jedem Knoten nur noch ein Mathematica-Kern installiert. Ein Master-Kern organisiert die Zusammenarbeit der Knoten bei der Programmabarbeitung. Seine Steuerung kann von einer grafischen Mathematica-Nutzeroberfläche oder im Batch-Modus erfolgen.
Grid Mathematica kann auch in einem heterogenen Computer-Cluster laufen (Windows, Mac OS X, Linux und Unix). Bedingung ist jedoch, dass die Rechner über TCP/IP miteinander kommunizieren können. Jede Programmversion enthält acht Kernprozesse, einen Frontend-Prozess mit grafischer Nutzeroberfläche sowie das oben bereits erwähnte Parallel Computing Toolkit.
Aktive Nutzergemeinschaft
Ähnlich wie für Maple gibt es auch für Mathematica neben den kommerziell vertriebenen Lösungen auch einen kostenlosen Zugang zu Problemlösungen. Auf der Mathsource-Homepage[3] kann der Interessent zahlreiche Beispiel-Notebooks aus den Bereichen Mathematik, Physik, Biologie, Finanzwirtschaft und anderen herunterladen. Hinzu kommen die bekannten FAQs, die jeder studieren sollte – was viele leider doch nicht tun. Zu erwähnen ist noch die Zeitschrift “Mathematica Journal”, die allerdings kostenpflichtig ist. Hier werden von Experten spezielle Probleme besprochen und Lösungen vorgestellt.
Abgerundet werden die Aktivitäten für Nutzer und Entwickler durch jährliche Mathematica-Konferenzen, auf denen Mitarbeiter von Wolfram Research sowie externe Nutzer und Programmierer mit Vorträgen und Postern auftreten.
Fazit
Steven Wolfram und sein Team wollten mit Mathematica ein System auf den Markt bringen, das einen möglichst großen Teil des Technical Computing abdeckt. Das bedeutet, neben dem Kern als dem eigentlichen Problemlöser auch die Kommunikation von Mathematica mit der Umgebung ständig weiterzuentwickeln. Mit den Java- und XML-Features in der Version 4.2 sind sie einen großen Schritt vorwärts gekommen.
Mit den Spezialentwicklungen wie Web Mathematica oder Grid Mathematica ist Wolfram Research auf einem interessanten Weg: Der potenzielle Nutzerkreis für diese speziellen Programme ist zwar nicht riesig, andererseits wäre die Vollversion mit den benötigen Features einfach überfrachtet. (uwo)
Infos |
|
[1] Holger Perlt, “Maple 8, Computeralgebra und Technical Computing aus einer Hand”: Linux-Magazin 11/02, S. 90 [2] OpenGL-Viewer MathGL3d: [http://phong.informatik.uni-leipzig.de/~kuska/mview3d.old.html] [3] Mathsource: [http://www.mathsource.com] |
Der Autor |
|
Dr. Holger Perlt ist Physiker und arbeitet auf dem Gebiet der theoretischen Elementarteilchenphysik. Dabei setzt er seit Ende der 70er Jahre Computeralgebra ein. |





