* Es soll nicht mehr nötig sein, in umfangreichen Tabellenwerken Zahlen nachzuschlagen. Das Programm hat entweder Algorithmen eingebaut, um diese Zahlen zu berechnen, oder die entsprechenden Daten sind in maschinenlesbarer Form vorhanden.
* Es muß einfach sein, mathematisches Fachwissen (etwa aus einem Handbuch) in das Programm zu integrieren.
* Dasselbe Programm sollte auf einem Kleinrechner und einem leistungsfähigen Großrechner laufen.
* Eine Programmiersprache erlaubt die Erweiterung des Systems in irgendeinem Wissensgebiet.
Eines der Ziele beim Entwurf von MATHEMATICA war es, ein Werkzeug für die meisten Anwendungen zu entwickeln. MATHEMATICA wurde ab 1987 von einer kleinen Gruppe unter der Leitung von Prof. Stephen Wolfram (Universität von Illinois, USA) entwickelt und ist seit Juni 1988 auf dem Markt.
Der wichtigste Bestandteil ist eine flexible Programmiersprache, die es erlaubt, das System zu erweitern. Die Sprache soll mathematisch orientiert sein und eine einfache Definition mathematischer Regeln erlauben. Dies führt zu einer reichen Sprache mit vielen eingebauten Funktionen. Die Sprache ist dennoch einheitlich und hat eine innere Konsistenz, die das Erlernen erleichtert. Möglich wurde dies durch die ausschließliche Verwendung von pattern matching und Ersetzungsregeln, auf denen alle anderen Programmierelemente, Kontrollstrukturen und Prozedurdefinitionen aufbauen. Dadurch ist es auch einfach, die Sprache interaktiv zu gebrauchen [10]. Außer den genannten Anforderungen sollte ein modernes Softwarepaket sich nahtlos in die Umgebung des Computers, auf dem es läuft, einfügen. Es wird so zu einem Werkzeug, das auch von anderen Programmen benutzt werden kann.
MATHEMATICA bietet nun die Möglichkeit, die Daten mit den üblichen mathematischen, also auch symbolischen, Methoden zu berechnen und dann gleich zu zeichnen. Auf geeigneten Computern können die fertigen Bilder interaktiv manipuliert werden (drehen, vergrößern etc.) Am Beispiel der Minimalflächen wollen wir dies nun beschreiben. Wir beginnen mit der mathematischen Definition solcher Flächen und enden mit einem Trickfilm, der die mathematischen Transformationen dynamisch veranschaulicht.
$\{\int f - fg^2dz, \int i(f + fg^2)dz, \int 2fg dz\}$Wenn wir nun den Parameter z als z = x + iy schreiben, erhalten wir die übliche Parameterdarstellung einer Fläche im Raum. Für eine graphische Darstellung werten wir die Gleichung für ein rechteckiges Punktegitter aus und verbinden die erhaltenen Punkte mittels Vierecken zu einer Fläche.
Mit f(z) = e^{-z}, g(z) = e^z erhalten wir ein Katenoid. (Abb. 1)
Statt des Realteiles können wir auch den Imaginärteil nehmen. Dann erhalten wir die Wendelfläche (Abb. 2). Dies ist aber äquivalent zum Realteil mit $f(z) = ie^{-z}, statt e^{-z}$.
Einen stetigen übergang zwischen diesen 2 Flächen (Abb. 3) erhalten wir durch Multiplikation von f(z) mit einer komplexen Zahl vom Betrage 1, deren Argument sich zwischen 0 und \pi/2 ändert, also mit e^{i\phi}, 0 \le \phi \le \pi/2.
Schließlich können wir $\phi$ den ganzen Wertebereich von 0 bis $2\pi$ durchlaufen lassen. Das Programm MATHEMATICA gibt einem nun die Möglichkeit, direkt aus der Integralformel die Punkte der Fläche zu berechnen und diese graphisch darzustellen. Wir können auch für viele verschiedene Werte von $\phi$ je eine Darstellung erzeugen und diese dann - wie einen Trickfilm - hintereinander darstellen. Es entsteht so der Eindruck einer kontinuierlichen Bewegung.
$f(z) = z,g(z) = \frac{1}{z}$
wiederum in polaren Koordinaten. Die einzelnen Rechenschritte, die wir im vorherigen Beispiel einzeln interaktiv durchgeführt haben, werden am besten in eine kleine Prozedur zusammengefaßt, mit dem Namen Parameterize[f, g, z]. Damit sieht unsere Rechnung nun so aus:
In[2]:= Parameterize[z, 1/z, z] Out[2] = $\{ \frac{z^2}{2} - Log[z], \frac{I}{2} z^2 + I Log[z], 2 z\}$ In[3]:= % / . z \rightarrow r Exp[I phi] Out[3] = $\{ \frac{E^{2 I phi} r^2}{2} - Log[E^{I phi} r],$ $ \frac{I}{2} E^{2 I phi} r^2 + I Log[E^{I phi} r], 2 E^{I phi} r\}$Der Ausdruck Log[E^(I phi) r] wird bei numerischer Auswertung immer den Hauptast des Logarithmus wählen, mit
$- \pi < \cal J(log z) \le \pi$.Der Wert hat deshalb eine Sprungstelle, wenn der Bereich für $\phi$ ungerade Vielfache von $\pi$ enthält.
Symbolisch ist es naheliegend, Log[E^ (I phi) r] zu vereinfachen zu I phi + Log[r]. Der Imaginärteil ist nun gleich $\phi$, ohne irgendwelche Unstetigkeitsstellen. (Es wäre allerdings falsch, die Vereinfachung $log e^z \rightarrow z$ immer automatisch durchzuführen.)
In MATHEMATICA werden solche Vereinfachungsregeln als Termersetzungsregeln angegeben. Die Notation x_ bezeichnet ein Muster, das durch einen beliebigen Ausdruck ersetzt werden kann und das auf der rechten Seite der Regel mit x bezeichnet wird. Dies ist vergleichbar mit der Syntax von PROLOG (X für x_ ). Die linke Seite von Regeln kann allerdings in MATHEMATICA beliebig kompliziert sein.
$In[4]:= Expand[ % //. \{Log[a_ b_ ] :> Log[a] + Log[b], Log[E^ x_ ] :> x\} ]$ $Out[4]= \{- I phi + \frac {E^{2 I phi}r^2}{2} - Log[r]$, $-phi + \frac {I}{2} E^{2 I phi}r^2 + I Log[r]$, $2 E^{I phi} r\}$
Der Unterricht wird erleichtert durch die Benutzerschnittstelle, die MATHEMATICA anbietet. Damit ist es möglich, Text-, Graphik- und MATHEMATICA-Eingabe und Ausgabe in einem hierarchisch strukturierten Dokument zu vereinigen. Lektionen lassen sich damit vorbereiten. Alle Beispiele in einem solchen "Notebook" sind lebendig, die Studenten können damit experimentieren.
Besonders zu erwähnen ist in diesem Zusammenhang die Arbeit von Porta und Uhl[2] im Rahmen der Anstrengungen, den Analysis-Grundunterricht in den USA zu reformieren. Durch den übergang vom drillmäßigen Unterricht, wie er heute praktiziert wird, zu einem Kurs, in dem das Experiment die Hauptrolle spielt, werden die Studenten stark motiviert. Mit MATHEMATICA lassen sich auch viel kompliziertere Beispiele rechnen als von Hand, was die Rolle der Analysis als Grundlage der Ingenieurwissenschaften und der Physik wieder verständlich macht.
[ 1] N. Blachmann. Mathematica: A Practical Approach. Prentice Hall, Englewood Cliffs, N.J. 07632, 1991 [ 2] D. Brown, H. Porta, and J. Uhl. Calculus & Mathematica: Courseware for the nineties. The Mathematica Journal, 1(1), 1990 [ 3] R.Crandall. Mathematica for the Sciences. Addison-Wesley, Reading, Massachusetts, 1991 [ 4] S. Dickson. Minimal surfaces. The Mathematica Journal, 1(1), 1990 [ 5] W. Ellis and E. Lodi, editors. A Tutorial Introduction to Mathematica. Brooks/Cole Publishing Company, Pacific Grove, California 93950, 1990 [ 6] E. Engeler and R. Maeder. Scientific computation: The integration of symbolic, numeric and graphic computation. In B. Buchberger, editor, EUROCAL '85, European Conference on Computer Algebra, Linz, Austria, April 1-3, 1985, Proceedings Vol. 1: Invited Lectures, volume 203 of Lecture Notes in Computer Science, pages 185-200. Springer-Verlag, Berlin-Heidelberg-New York, 1985 [ 7] T. Gray and J. Glynn. Exploring Mathematics with Mathematica. Addison-Wesley, Reading, Massachusetts, 1991 [ 8] D. Hoffmann. The computer-aided discovery of new embedded minimal surfaces. The Mathematical Intelligencer, 9(3), 1987 [ 9] R.E. Maeder. A collection of projects for the mathematical laboratory. ACM SIGSAM Bulletin, 21(3), 1987 [10] R.E. Maeder. Programming in Mathematica. Addison-Wesley, Reading, Massachusetts, 1990 [11] R.E. Maeder. Minimal surfaces. The Mathematica Journal, 2(2), 1992 [12] S.S. Skiena. Implementing Discrete Mathematics: Combinatorics and Graph Theory with Mathematica. Addison-Wesley, Reading, Massachusetts, 1990 [13] I. Vardi. Computational Recreations with Mathematica. Addison-Wesley, Reading, Massachusetts, 1991 [14] S. Wagon. Mathematica in Action. Freeman, W.H., San Francisco, 1990 [15] S. Wolfram, Mathematica: A System for Doing Mathematics by Computer. Addison-Wesley, Reading, Massachusetts, 1988 [16] S. Wolfram. Mathematica: Ein System für Mathematik auf dem Computer. Addison-Wesley, Reading, Massachusetts, 1992Author der Beschreibung Roman E. Maeder (Zürich)