wxMaxima hilft beim Lösen von Algebra-Aufgaben. Dabei zeigt es auf Wunsch Schritt für Schritt, was dabei passiert – ideal für anschauliches Arbeiten im Unterricht.
Die Wurzeln des Computer-Algebra-Systems wxMaxima reichen weit zurück: Ein schon längst nicht mehr weiterentwickeltes Programm mit dem Namen Macsyma [1] diente als Basis für eine Variante mit dem Namen Maxima [2], die beim US-Energieministerium (DoE) ihren Dienst verrichtete. Der Entwickler, William Shelter, erhielt 1998 von seinem Arbeitgeber die Erlaubnis, das Programm unter der GPL zu veröffentlichen [3]. Derzeit koordiniert Andrej Vodopivec das Projekt.
Mit dem Einzug in die Welt der freien Software fanden sich bald Entwickler, die den Code unter ihre Fittiche nahmen. Neben Xmaxima gehört wxMaxima heute zu den bevorzugten Oberflächen, unter der ein Lisp-Kern namens Maxima arbeitet – und das nicht nur unter Linux, sondern außerdem unter Mac OS X und Windows.
Bei vielen Distributionen installiert man wxMaxima [4] heute mit einem einfachen Befehl und spart sich so das separate Einrichten des Kerns. Möchten Sie dagegen mit Xmaxima und den zugehörigen Tcl/Tk-Widgets arbeiten, benötigen Sie zusätzlich die entsprechenden Pakete.
Anschließend stehen drei Versionen derselben Maschine bereit: Das chromblitzende wxMaxima (Abbildung 1), die altbackene GUI Xmaxima (Abbildung 2) und das nüchterne Maxima mit einer textbasierten Oberfläche (Abbildung 3).

Abbildung 2: Die etwas altmodischen Tcl/Tk-Widgets ändern nichts daran, dass Xmaxima ein leistungsfähiges Programm ist.

Abbildung 3: Selbst im Terminal fühlt sich Maxima wohl. Es leiden aber Komfort und grafische Anzeige von Ergebnissen.
EVA-Prinzip
Abbildung 1 bis Abbildung 3 zeigen das EVA-Prinzip, nach dem die Software arbeitet: Eingabe, Verarbeiten, Ausgabe. Mit (%ix) bezeichnet die Software Zeilen mit Eingaben. Maxima und Xmaxima fordern zwingend ein Semikolon am Zeilenende. Drücken Sie [Eingabe], verarbeitet das Programm die Daten. Das Ergebnis, also die Ausgabe, beginnt mit (%ox). wxMaxima behandelt den Abschluss der Eingabe etwas abweichend: Hier schließen Sie durch [Strg]+[Eingabe] ab, das Semikolon ergänzt die Software automatisch.
Mit dem blinkenden Cursor steht Ihnen das ganze Potenzial eines digitalen Diplom-Mathematikers zur Verfügung. Die Mächtigkeit des Systems überfordert den normalen Computernutzer jedoch im Regelfall, da hilft nur das Studium der Dokumentation weiter. In dieser Hinsicht hat Maxima eine Menge zu bieten: Zum einen finden sich online eine Reihe von PDF-Dokumenten [5], zum anderen bringt das Programm eine integrierte (jedoch ausschließlich englischsprachige) Hilfe mit. Einige Befehle stehen zusätzlich über das Menü von wxMaxima bereit.
Das Hauptproblem besteht aber in der Regel nicht beim Einsatz der Syntax, sondern liegt in der Semantik. wxMaxima bietet wie jedes andere CAS nur dem Hilfe, der die Begriffe beherrscht.
Für den Unterricht
wxMaxima eignet sich ideal als Begleiter für den Mathematikunterricht. Das Programm hilft beim Anfertigen von Hausaufgaben und erlaubt deren Ausdruck. Der Einsatz lohnt in der Sekundarstufe II, also ab der 10. Klasse. Für diese Zielgruppe eignet sich auch das Handbuch gut.
Bei einem CAS handelt es sich nicht um einen Taschenrechner, sondern um ein System, das mathematische Terme bearbeitet (“Termumformung”). Das wirkt sich auch auf die Ausgaben aus: Der Bruch 1/3 erscheint im Normalfall als solcher und nicht ungenau als Fließkommazahl. Wünschen Sie wie bei einem Taschenrechner das Runden numerischer Ergebnisse, schalten Sie dies ein.
Dazu nutzen Sie die Funktion float() oder die Variable numer. Diese wandelt das Ergebnis mit endlicher Genauigkeit um. Die Genauigkeit stellen Sie über fpprec ein. Umgekehrt wandeln Sie Dezimalbrüche mit der Funktion rat() in echte Brüche um. Die Software folgt bei der Eingabe der englischen Nomenklatur, das heißt, mit Dezimalpunkt.
Kurvendiskussion
Der Weg zum Abitur ist in Deutschland mit Kurvendiskussionen gepflastert: Somit bieten diese ein perfektes Beispiel, um die Funktionen von wxMaxima zu demonstrieren. Auf der Heft-DVD finden Sie das Batch-File kurvendiskussion.wxm, das die Kurvendiskussion einer Funktion f(x) automatisch erledigt.
Sehen Sie sich die Datei mit einem Texteditor an, so stellen Sie fest, dass es sich um eine reine Textdatei mit der Endung .wxm handelt. Sie enthält das Beispiel einer Kurvendiskussion, die sich online findet [7].
Auf den ersten Blick fällt die recht einfache Syntax ins Auge: Jeder Befehl wird in einen Kommentar gekleidet, dessen erste Zeile in eckigen Klammern den Start und den Charakter einer Zeile enthält. Die zweite Zeile gibt den eigentlichen Inhalt an, die dritte Zeile schließlich beendet den jeweiligen Befehl.
Lesen Sie diese Datei mit dem Programm wxMaxima ein, sehen Sie tatsächlich nicht mehr als die zweite Zeile. Möchten Sie die Ergebnisse wie in Abbildung 4 sehen, dann bewerten Sie nach dem Laden noch einmal alle Zellen – entweder über Cell | Alle Zellen neu auswerten oder über [Strg]+[R].

Abbildung 4: wxMaxima erlaubt ein strukturiertes Dokumentieren. Um das Ergebnis zu sehen, werten Sie in der Applikation über die entsprechenden Menüeinträge alle Zeilen aus.
So einfach dieser Mechanismus erscheint, so folgenreich ist er: Enthält der Verlauf eine Referenz auf ein Ergebnis, wird dieses durch das erneute Auswerten unter Umständen unwirksam. Deshalb sollten Sie absolute Referenzen wie %o17 (das Ergebnis der 17. Berechnung) nur verwenden, wenn vorher alle Zellen neu und damit in der richtigen Reihenfolge ausgewertet wurden.
Relative Adressen wie einfach nur % (letzte Ausgabe) bergen die Gefahr, dass sich beim Anfertigen der Datei vorhergehende Zeilen ändern und damit die Referenzierung nicht mehr stimmt. Diese Hinweise betreffen aber nur solche Anwender, die regelrechte Programme zum routinemäßigen Auswerten erstellen. Nutzen Sie das Programm interaktiv, dürfen Sie beliebig referenzieren.
Über den Menüeintrag Cell fügen Sie bei Bedarf die verschiedenen Zellen an die jeweilige Stelle der Datei ein. Die einfachen Zellen für Text erscheinen blau hinterlegt und haben den Charakter von Kommentaren. Zellen vom Typ Section und Subsection nummeriert die Software automatisch durch. Das ermöglicht es, eine strukturierte Aufgabe anzufertigen.
Die Kurvendiskussion läuft nun nicht vollautomatisch ab: Sie müssen sie an die jeweilige Funktion anpassen. In der Datei kurvendiskussion.wxm dient die Funktion f(x):=x^3/(x^2-4) als Beispiel. Bei Bedarf modifizieren Sie diese Definition als Erstes, wozu Sie einfach die Input-Zeile editieren. Ob eine Untersuchung des Definitionsbereichs nötig ist, hängt dabei von der Art der Funktion ab. Ganzrationale Funktionen brauchen Sie nicht zu untersuchen: Deren Definitionsbereich umfasst die komplette Menge der reellen Zahlen.
In der Datei kurvendiskussion.wxm ergibt sich aus der Funktion, dass für den Definitionsbereich die Nullstellen des Nennerpolynoms x^2-4 zu suchen wären. Dies geschieht mit der Zeile solve(x^2-4=0,x); im Skript, die die Lösungen der Gleichung findet. Für den Definitionsbereich sind diese Lösungen aus der Menge der reellen Zahlen auszuschließen (D=R\{-2,2}).
Termumformung
Gegenüber dem manuellen Herleiten eines Terms weicht das maschinelle Herleiten mit wxMaxima gelegentlich stark ab. In der Kurvendiskussion gibt die Software zum Beispiel die dritte Ableitung als recht komplizierten Term an (Abbildung 5), während der Autor des genannten Beispiels seine Lösung deutlich einfacher herleitet (Abbildung 6).

define und ermittelt so eine recht komplexe Funktion.” width=”300″ height=”58″ />
Abbildung 5: wxMaxima definiert die dritte Ableitung mit dem Befehldefine und ermittelt so eine recht komplexe Funktion. Dass es sich dennoch um dieselbe Funktion handelt, erkennen Sie durch Umformen des Terms. Die Software stellt dazu die Funktionen simplify und ratsimp sowie das Ausklammern (factor) und Ausmultiplizieren (expand) bereit. Durch geschicktes Anwenden dieser Befehle zeigt sich, dass beide Herleitungen übereinstimmen (Abbildung 7).

factor) zeigt sich, dass die dritte Ableitung durch die Software der von Hand entspricht.” width=”300″ height=”119″ />
Abbildung 7: Durch Ausklammern (factor) zeigt sich, dass die dritte Ableitung durch die Software der von Hand entspricht.Ganz reell
wxMaxima arbeitet wie jedes CAS in der Grundeinstellung mit komplexen Zahlen – anders als im Mathematikunterricht der gymnasialen Oberstufe, wo die Schüler immer noch in der Menge der reellen Zahlen operieren. Demzufolge kommt es vor, dass die Applikation Lösungen anbietet, die in der Menge der komplexen Zahlen liegen und die sich für den Mathematikunterricht nicht eignen.
Vektoren und Matrizen
wxMaxima bietet Funktionen zum Berechnen von Vektoren. Allerdings kommt an dieser Stelle der Wunsch nach etwas Vereinfachung auf: So gelingt beispielsweise zwar die Definition von Vektoren und das Berechnen von Summe, Differenz und Skalarprodukt recht einfach, das Berechnen des Kreuzprodukts jedoch setzt die Bibliothek vect voraus. Zudem erfordert das Berechnen eine recht komplexe Syntax (Abbildung 8).

Abbildung 8: Während alle Rechenoperationen mit Vektoren relativ einfach gelingen, gestaltet sich die Berechnung des Kreuzprodukts recht kompliziert.
Sehr schön löst wxMaxima hingegen die Darstellung von Vektoren im Raum. Das Ergebnis des entsprechenden Befehls erscheint in einem separaten Gnuplot-Fenster, das die Möglichkeit bietet, die Objekte mit der Maus zu drehen (Abbildung 9). Auf der Heft-DVD finden Sie die Datei vektorrechnung.wxm, die als Grundlage für die Abbildungen 8 und**9 dient.

Abbildung 9: Mit der 3D-Grafikbibliothek gezeichnete Vektorkette als Gnuplot-Ausgabe, die Sie bei Bedarf mit der Maus im virtuellen Raum drehen.
Wesentlich einfacher gestaltet sich das Rechnen mit Matrizen: Diese erzeugen Sie mittels des Befehls matrix, wobei die in eckigen Klammern eingegebenen Zahlen eine Zeile ergeben. Die Verknüpfungen über Plus- und Minus-Zeichen sind ebenso definiert wie die Multiplikation mithilfe des Punkt-Operators.
Bei allen Operationen gilt es, die Rechenregeln für Matrizen zu beachten, also nur gleiche Matrizen n*m zu addieren respektive zu subtrahieren sowie die gleiche Anzahl von Spalten und Zeilen bei miteinander zu multiplizierenden Matrizen. Die Software bietet Funktionen, um Matrizen zu verändern. Dazu zählt unter anderem der wichtige Befehl invert, der die zu einer quadratischen Matrix inverse Matrix berechnet.
Multiplizieren Sie die Originalmatrix mit der inversen Variante, erhalten Sie die Einheitsmatrix. Damit bestimmen Sie lineare Gleichungssysteme einfach durch Multiplikation der inversen Koeffizientenmatrix mit dem Ergebnisvektor. Auf der DVD der Media-Edition befindet sich die Datei matrizenrechnung.wxm, die ein entsprechendes Beispiel enthält.
Gleichungen
Ohne Vorkenntnisse in Matrizenrechnung lösen Sie Gleichungen und Gleichungssysteme mit dem Befehl solve. Das bietet den Vorteil, dass Sie die Gleichungen in der gegebenen Aufgabenstellungsform eingeben, eine Trennung zwischen Koeffizientenmatrix und Ergebnisvektor ist nicht erforderlich (Abbildung 10).
solve lösen Sie Gleichungen und ganze Gleichungssysteme auf einen Rutsch.” width=”300″ height=”18″ />
Abbildung 10: Mit dem Befehlsolve lösen Sie Gleichungen und ganze Gleichungssysteme auf einen Rutsch.In der Dokumentation finden sich Beispiele und Funktionen aus der Stochastik samt Ein- und Ausgabe sowie Beispiele mit Schleifen und Bedingungen. Diese Bestandteile machen aus wxMaxima ein mathematisches Universalsystem. Der Schwerpunkt liegt aber, wie bei jedem CAS, auf der symbolischen Mathematik. Die Software ermöglicht sowohl grafische Ausgaben wie auch eine Programmierung und numerische Auswertungen. Für Letzteres gibt es jedoch weniger sperrige und universellere Umgebungen.
Hilfe
Wie üblich erreichen Sie über [F1] die Hilfe. Es öffnet sich ein Fenster, die Inhalte stehen auf den drei Reitern Contents, Index und Search bereit. Wer nicht weiß, wonach er sucht, verirrt sich allerdings schnell in den Details – es empfiehlt sich, das Studium des deutschsprachigen Handbuchs [6].
Erinnern Sie sich noch an den Namen oder den Anfang eines Befehls, wissen aber nicht mehr, wie Sie ihn aufrufen, dann hilft die Schaltfläche Show all im Reiter Index weiter. Hier durchblättern Sie den gesamten Index nach dem gesuchten Befehl und klicken dann auf den Eintrag. Daraufhin erscheint im Fenster eine detaillierte Beschreibung des Kommandos.
Fazit
wxMaxima präsentiert sich als ein leistungsfähiges CAS mit nur wenigen Schwachstellen in der Bedienung. Diese liegen hauptsächlich im Bereich der Vektorrechnung. Alles, was der Bereich der gymnasialen Oberstufe fordert, bereitet dem leistungsfähigen Open-Source-Programm keine Probleme – und das kostenlos und plattformunabhängig auf Windows-PCs, Macs und Linux-Rechnern.
Die Möglichkeit, die Dateien für die Eingabe textlich ansprechend zu formatieren, eröffnet die Möglichkeit, Hausaufgaben oder Studienarbeiten zu erstellen und ausgedruckt abzugeben. Selbst im Studium genügt der Umfang in der Regel, solange es lediglich um das Lösen mathematischer Basisprobleme geht.
Die umfangreiche Dokumentation in deutscher Sprache und die vielen Foren im Internet bieten Assistenz bei Problemen, die die eingebaute Hilfe nicht löst. Verfügen Sie über Englischkenntnisse, erweitert sich das Angebot an Literatur um ein Vielfaches.
Glossar
-
CAS
-
Computeralgebrasystem. Ein Computerprogramm für das Bearbeiten algebraischer Ausdrücke. Ein CAS löst typischerweise nicht nur wie ein Taschenrechner mathematische Aufgaben mit Zahlen, sondern auch solche mit symbolischen Ausdrücken, wie etwa Variablen, Funktionen, Polynomen und Matrizen.
Infos
[1] Macsyma-Projekt: http://de.wikipedia.org/wiki/Macsyma
[2] Maxima: http://maxima.sourceforge.net
[3] Maxima als Beispiel für ein CAS: http://de.wikipedia.org/wiki/Maxima_%28Computeralgebrasystem%29
[4] wxMaxima: http://andrejv.github.com/wxmaxima/
[5] Mathematik-Standardaufgaben: http://www.rvk-hagen.de/~stewen/maxima_in_beispielen.pdf
[6] Handbuch: http://maxima.sourceforge.net/docs/manual/de/maxima.pdf
[7] Beispiel Kurvendiskussion: http://crillovich.files.wordpress.com/2013/12/kurvendiskussion_bsp.pdf







