Mit ‘Mathematik’ getaggte Artikel

Maxima

Freitag, 21. August 2009

Während und auch nach des Studiums kommt es gelegentlich vor, dass man was rechnen muss. In den meisten Fällen ist der Schultaschenrechner dafür nicht geeignet und auch wenn es ein grafischer, programmierbarer Taschenrechner ist. Und Geld für ein Computeralgebrasystem (CAS) auszugeben wäre angesichts der nur gelegentlich Nutzung auch nicht angebracht. Aber es gibt noch Maxima. Maxima ist ein Nachbau des legendären Macsyma und basiert wie diese im Wesentlichen auf der Sprache Lisp.

Erste Schritte

Man startet Maxima auf der Kommandozeile mit „maxima“ und schon erhält man einen Prompt für die eigenen Eingaben. Gibt man auf z. B. „4+5;“ ein, dann gibt Maxima die richtige Lösung 9 zurück. Eingabezeilen werden mit „%i1“, „%i2“ usw. durchnummiert, die Ausgabezeilen analog mit „o“ statt „i“. Will man später darauf zugreifen, kann mit mit „%o“ und der Nummer darauf zugreifen.

(%i1) 4+5;

(%o1) 9

Variablen, Konstanten und Funktionen.

Es ist sehr einfach, Werte Variablen zuzuweisen oder Funktionen zu definieren. Mit %i, %e, und %pi kann die imaginäre Zahl, die eulersche bzw. die ludolphsche Zahl nutzen. Funktionen werden mit “:=” definiert, bei Variablen verwendet man nur den Doppelpunkt.

A : 4; Weist A den Wert 4 zu.

F(x) := x^2+x-2;

F(4); Ergibt 18.

Symbolisches Rechnen

Maxima rechnet weitestgehend mit den Ausdrücken, mit Symbolen. sqrt(4) wird sofort verlustfrei zu 2, aber sqrt(3) bleibt erst mal die Wurzel aus drei, weil die Transformation nicht verlustfrei wäre. Der Vorteil dieses Vorgehens ist, dass Rundungsfehler im Endergebnis minimal sind. Um den doch Zahlenwert der Wurzel aus 3 zu erhalten, muss man bfloat(sqrt(3)) aufrufen.

Weitere Fähigkeiten

Maxima kann z. B. Ausdrücke ausklammern, wie z. B.

(%i10) x*(x+1)-2

(%i11) expand(%o10) //Ausgabe ist dann x^2 + x -2

Und mit solve lassen sich u. a. Nullstellen errechnen.

(%i12) solve([%o10], [x]);

bzw.

(%i13) solve([%o10=0], [x]);

oder die Schnittstellen auf der Gerade 1.

(%i14) solve([%o10=1], [x]);

oder die Schnittstellen mit der Gerade f(x)=x:

(%i15) solve([%o10=x], [x]);

Fazit

Dies ist nur eine kleine Einführung in das CAS Maxima und zeigt natürlich nicht alle Funktionen und Möglichkeiten von Maxima auf, die da wären:

  • Lösen von Gleichungen, Gleichungssystemen und Grenzwerten
  • Taylorentwicklung
  • Laplace-Transformation
  • Differentiation, Integration
  • Lösen von Differentialgleichungen erster und zweiter Ordnung
  • Rechnen mit Matrizen
  • Berechnung von Eigenwerten und Eigenvektoren
  • Plotten von Funktionen, TeX-Ausgabe

Maxima ist frei und kostenlos und samt Dokumentation zu finden unter http://maxima.sourceforge.net/.


Alexander Draeger