Spaß-mit-Mathematik.de

Des Schockwellenreiters Seiten über (Unterhaltungs-) Mathematik

Suchen in:
Suche:
In Partnerschaft mit Amazon.de
Startseite | Schockwellenreiter | Impressum

MacMuPad

Ein Computer-Algebra-System aus Paderborn

Torusknoten

Seit meinem Mathematikstudium, wo ich das erste Mal mit Computern in Berührung kam, bin ich fasziniert davon, mathematische Sachverhalte mit Hilfe eines Rechners zu visualisieren. Dies war Anfang der 80er Jahre und das Dogma der Bourbaki-Gruppe, daß Mathematik eine reine Manipulation von Symbolen sei und jede Anschauung daher verwerflich, geisterte noch durch die Vorlesungssäle. Wir Studenten dagegen saßen fasziniert vor unseren ASCII-Terminals und beobachteten, wie aus Sternchen und Kreuzchen Abbilder unsere Funktionen entstanden.

Als dann Ende der 80er Jahre mit Maple und Mathematica die ersten kommerziell erhältliche Computer-Algebra-Systeme (CAS) auf den Markt kamen, war ich begeistert. Nicht die Möglichkeit der Symbolmanipulation erfreute mich, sondern die Fähigkeit dieser Systeme, mit nur wenigen Befehlen komplizierte mathematische Funktionen in wunderschöne Grafiken zu verwandeln.

Seit etwas über einem Jahr ist nun ein System erhältlich, das nicht nur wie die oben erwähnten CAS-Boliden auf diversen Plattformen zu Hause ist, sondern dazu auch noch kostenlos abgegeben wird. Es wird an der Universität Paderborn mit viel Elan gepflegt und weiterentwickelt. Sein Name ist MuPAD, die Macintosh-Version heißt MacMuPAD und die derzeitige Version trägt die Nummer 1.2.2a. Das System gibt es in einer nativen Version für den Power-PC ebenso wie als 68k-Version. Daneben werden zahlreiche UNIX-Varianten bedient (auch LINUX) und im Sommer soll auch eine Version für Windows erscheinen.

MuPAD als simpler Taschenrechner

Was kann nun solch ein System? Nach dem Start erscheint erst einmal ein Terminal-Fenster mit einem Prompt, der zur Eingabe auffordert. Gibt man nun zum Beispiel ein


	125*1.15;

und drückt die Enter-Taste (das ist die Taste auf dem Ziffernblock oder - bei Powerbooks - die Taste rechts neben der Leertaste), dann antwortet MuPAD mit


					1.4375e2

Das ist (in technischer Notation) die korrekte Antwort: 143.75. MuPAD rechnet intern mit beliebiger Genauigkeit, so daß man sich auch Pi auf 1000 oder mehr Stellen oder 500! (! = Fakultät) ausrechnen lassen kann.

Symbolische Mathematik mit MuPAD

Die große Stärke von CAS liegt aber nicht so sehr in ihrer Fähigkeit, numerisch zu rechnen, sondern darin, symbolische Aufgabe zu lösen. Gebe ich zum Beispiel ein:


	expand((a + b)^2);

antwortet das System mit:


					2 a b + a2 + b2

Das hätte auch ich vermutlich noch im Kopf gekonnt, aber wenn kompliziertere Ausdrücke anstehen, ist die Hilfe eines solchen Systems schon sehr nützlich. Auch symbolische Integration und Differentation sind möglich. Die aus der Schule bekannte Kettenregel zur Differentation sieht in MuPAD so aus:


	diff(a*x^3 + b*x^2 + c*x + d);
					c + 2 b x + 3 a x2

MuPAD als Programmiersprache

Wie alle anderen "großen" CAS verfügt MuPAD auch über eine eigene PASCAL-ähnliche Programmiersprache, in der sich Funktionen, Prozeduren und Module schreiben lassen. Darüber hinaus besteht die Möglichkeit, eigene Funktionen zu definieren und in Libraries abzuspeichern, die zur Laufzeit geladen werden können. Somit ist die Möglichkeit gegeben, das System zu erweitern und den eigenen Bedürfnissen anzupassen. Auch die meisten "eingebauten" Funktionen und mitgelieferten Libraries sind in der MuPAD-eigenen Programmiersprache geschrieben. Das System ist dabei erstaunlich schnell und braucht sich nicht hinter den kommerziellen Produkten zu verstecken.

Da der MuPAD-Programmierer von der ganzen GUI-Programmierung (Fenster öffnen, QuickDraw anmelden, Fenstern neuzeichnen etc.) verschont bleibt, sind die MuPAD-Programme erstaunlich kurz und beschränken sich auf das Wesentliche, so daß sie gut zum Studium von Algorithmen oder ähnliches benutzt werden kann. Obige Grafik wurde z.B. mit folgendem kleinen MuPAD-Programm erstellt:


	#
	|	Torus und Schlinge
	|	(p) 1996 für macOpen: Jörg Kantel
	#

Torus := proc(u, v) begin (5 + cos(u))*cos(v), (5 + cos(u))*sin(v), sin(u): end_proc:
x := proc(v) begin 2 + 0.75*cos(v): end_proc:
y := proc(v) begin 0.75*sin(v): end_proc:
Knoten := proc(u, v) begin (5 + x(v)*cos(5*u) - y(v)*sin(5*u))*cos(u), (5 + x(v)*cos(5*u) - y(v)*sin(5*u))*sin(u), x(v)*sin(5*u) + y(v)*cos(5*u) end_proc:
plot3d(Axes = None, [Mode = Surface, [Torus(u, v)], u = [0, 2*PI], v = [0, 2*PI], Grid = [12, 24]], [Mode = Surface, [Knoten(u, v)], u = [0, 2*PI], v = [0, 2*PI], Grid = [108, 12]]);

MODULA- oder PASCAL-Programmierer dürften keine Schwierigkeiten haben, dieses kleine Programm zu verstehen. Zu erwähnen ist noch, daß auch MuPAD lokale Variablen und diverse verschiedene Datentypen wie Liste, Array, Table etc. kennt. Außerdem ist MuPAD in der Lage, parallele Algorithmen auch auf Einprozessor-Maschinen zu simulieren, um die Algorithmen auf ihre Korrektheit zu testen. MuPAD selber ist auf Multiprozessor-Maschinen einsetzbar, daher auch der Name: MuPAD = Multi Processing Algebra Data Tool.

Wo Licht ist, ist auch Schatten

Ich habe MuPAD ausführlich getestet und natürlich auch kleinere Fehler und Ungereimtheiten gefunden. So passiert in der 1.2.2a PPC-Version noch Seltsames, wenn man ein MuPAD-Dokument per Doppelklick öffnet. Das System setzt sich dann den Suchpfad auf dieses Dokument und findet dann seine Standard-Libs nicht mehr. Zur Zeit sollte man also MuPAD öffnen und ein Dokument nur durch das File-Menü laden. Auch das Abspeichern und Wiedereinladen der Sessions bringt manchmal unerwartete Fehlermeldungen. (Abhilfe: Alle Sessions als "Text" abspeichern, dann gibt es keine Probleme.) Der Macintosh-Entwickler an der Uni/GH in Paderborn reagiert aber auf Fehlermeldungen immer sofort und versucht Abhilfe zu schaffen, so daß diese Fehler in der nächsten Version 1.3, die bei Erscheinen dieses Artikels fertig sein sollte, behoben sein werden.

Und natürlich wünscht man sich immer größere Funktionalität, als so ein System gerade hat. Die Version 1.3 macht aber einen großen Sprung nach vorne, so daß fast alle meine Wünsche erfüllt sind. Nur eine Bibliothek mit Funktionen zur numerischen Lösung von Differentialgleichungen fehlt mir noch. Diese ist zwar geplant, wird aber wohl noch nicht in der Version 1.3 freigegeben werden. Bis dahin muß man seinen Runge-Kutta noch selber programmieren. Eine einfache Runge-Kutta-Implementierung habe ich mir geschrieben und sie wird vermutlich bei Erscheinen dieses Artikels vom MuPAD-Server abgerufen werden können.

Schwerer wiegt, daß zwar eine gute Online-Hilfe vorhanden ist, das gedruckte und separat zu erwerbende Handbuch allerdings nur die Version 1.1. behandelt. Auf der CeBIT wurde mir allerdings schon das Handbuch für die neue Version gezeigt, das im April bei Wiley erscheinen soll. Wenn sie diesen Artikel lesen, sollte es in den Buchhandlungen zu bekommen sein.

Where to get MuPAD?

MuPAD kann via ftp bei ftp://math-ftp.uni-paderborn.de/pub/MuPAD/ vom Netz gesaugt werden. Ausländische Leser sollten auf der WWW-Seite http://math-www.uni-paderborn.de/~cube/ nachsehen, ob nicht ein Spiegel-Server in ihrer Nähe existiert. Auf diesen WWW-Seiten findet man auch weitere nützliche Informationen zu MuPAD. [Update 2001]: Die Downloadquellen stimmen nicht mehr. Die aktuellen Downloadquellen und Webseiten gibt es immer hier. [End Update] Wer keinen ftp-Zugang hat oder sowieso auf die gedruckte Ausgabe des Handbuches nicht verzichten will, sollte sich das oben erwähnte Handbuch besorgen [1]. Dies enthält zwei CD-ROMs, auf der diverse UNIX (auch LINUX) und die Macintosh-Version von MuPAD gebrannt sind. MuPAD ist frei erhältlich, aber nicht Public Domain. Um den vollen Funktionsumfang zu nutzen, muß man sich in Paderborn registrieren lassen.

Bewertung:

  • Positiv:
    • umfangreiches Computer Algebra System
    • leicht zu erlernende Programmiersprache
    • gute grafische Ausgabe
    • guter Support
    • Preis!
  • Negativ:
    • (neues) Handbuch leider nur in Englisch
  • Bewertung:
    • sehr gut

Literatur:

[1] The MuPAD Group (Benno Fuchssteiner et al.): MuPAD Users Manual. Multi Processing Algebra Data Tool, Chichester, New York (Wiley & Sons) April 1996, ISBN 0-471-96716-5


Erstveröffentlichung: MacOpen, Oktober 1996