/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 16.04.0 ] */ /* [wxMaxima: comment start ] Helmut Albrecht: [wxMaxima: comment end ] */ /* [wxMaxima: title start ] 10 Minuten Maxima [wxMaxima: title end ] */ /* [wxMaxima: comment start ] Deutsche Übersetzung des "10 minute (wx)Maxima tutorial: a quick introduction to wxMaxima and Maxima" von Žiga Lenarčič [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Willkommen bei Maxima! In diesem einführenden Tutorial werden Sie einige Grundlagen von Maxima bzw. wxMaxima kennenlernen. Maxima ist ein CAS - ein Computer-Algebra-System - ähnlich wie Mathematica, Maple und weitere Vertreter dieser Spezies. Während das ursprüngliche Maxima eine reine "Kommandozeilen-Version" ist (bei der man alle Kommandos auswendig wissen und eintippen muss), hat wxMaxima, mit dem Sie hier arbeiten, eine deutlich einfacher zu bedienende grafische Benutzeroberfläche, in der viele "Befehle" aus Menüs ausgewählt werden können. Beginnen wir mit einigen einfachen Rechenbeispielen! Unterhalb dieses blaugrau hinterlegten Kommentarfelds steht eine "Eingabezelle" mit einer einfachen Addition. Positionieren Sie den Cursor irgendwo in diese Eingabezelle und drücken Sie die Tastenkombination - (Großschreibetaste festhalten und Eingabetaste drücken!), um die Eingabezelle auszuwerten. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 1 + 1; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Sie sollten das richtige Ergebnis und keine Fehlermeldungen erhalten haben. Fehlermeldungen können eigentlich nur aus einer fehlerhaften Installation herrühren. In diesem Fall überprüfen Sie bitte Ihre Konfiguration von Maxima und/oder besuchen die Website von Maxima (http://wxmaxima.sourceforge.net/), um Hinweise für eine korrekte Installation von Maxima zu erhalten. Da die Installation in aller Regel problemlos verläuft, sollten Sie keine Fehlermeldungen erhalten haben, so dass wir mit einigen weiteren Berechnungen fortfahren können. Positionieren Sie dazu den Cursor wieder in die untenstehende Eingabezelle und drücken erneut die Tastenkombination Großschreibe- und Eingabetaste, um die Eingabe auszuwerten. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 5!; % * 10; %o1 * 100; 1 / 3; 1.0 / 3.0; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] In der obigen Eingabezelle haben wir 5 "Zeilen" an Maxima gesandt. Jede dieser Zeilen muss mit einem ";" oder einem "§" enden. In die jeweils nächste Zeile gelangen Sie mit mit dem einfachen Drücken der Eingabetaste. Wenn eine Zeile mit ";" endet, dann zeigt Maxima das zugehörige Ergebnis an, bei einem "$" am Ende wird zwar das Ergebnis intern berechnet, dessen Ausgabe jedoch unterdrückt. Dies ist ganz praktisch, wenn man aufwändige (Zwischen-)Berechnungen mit umfangreichem Output durchführt. Falls Sie nur immer eine einzige Zeile eingeben, müssen Sie das ";" am Ende nicht eingeben, dies übernimmt Maxima automatisch für Sie. Das "$" muss allerdings immer explizit eingegeben werden! Bitte beachten Sie außerdem, dass die Ergebnisse von 1/3 und 1.0/3.0 voneinander abweichen. Dies liegt daran, dass Maxima - anders als numerische Softwarepakete - immer danach trachtet, Ergebisse möglicht exakt anzugeben und 1/3 ist nun mal genauer als 0.33333333! Maxima wertet also Ausdrücke wie 1/3 oder sqrt(2) (Wurzel aus 2) nicht aus - solange man diese Auswertung nicht explizit anfordert. In der letzten Zeile 1.0/3.0 haben wir Fließkommazahlen angegeben, was Maxima anweist, eine Auswertung vorzunehmen. Diese Fließkomma-Näherung kann man man für beliebige Ausdrücke anfordern, wie das nächste Beispiel zeigt. Werten Sie die Eingabe aus und betrachten Sie die Ergebnisse. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sqrt(2 * %pi); float(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] In der Zeile "float(%);" wurde das Symbol "%" benutzt. Hinter diesem Prozentzeichen verbirgt sich immer das Ergebnis der (zeitlich) zuletzt ausgewerteten Zeile. Da alle Ausgabezeilen mit "%o1", "%o2" "%o3" u.s.w. durchnummeriert werden, kann man durch Eingeben dieser Ausgabezeilenkennung das jeweilige Ergebnis wieder herholen. "%o1", "%o2" ... sind damit quasi Variable, in welchen die erzeugten Ausgaben automatisch gespeichert werden. Natürlich kann man auch eigene Variable vereinbaren. In solchen Variablen können nicht nur Werte sondern beliebeige Objekte (Terme, Gleichungen, ...) gespeichert werden. Die Zuweisung erfolgt immer nach dem Prinzip variablenname:objekt um ein Objekt in "variablenname" zu speichern. Am Besten schauen wir uns dies in der nächsten Eingabezelle an: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ radius: 10 $ height: 100 $ area: %pi * radius^2; volume: area * height; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Das letzte Ergebnis lassen wir noch numerisch evaluieren: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ float(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Seither haben wir Maxima lediglich als "Taschenrechner" benutzt. Nachfolgend wollen wir Dinge tun, die mit einem einfachen Rechner nicht möglich sind - beispielsweise unbestimmte und bestimmte Integrale errechnen: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate( sin(x), x); integrate( sin(x), x, 0, %pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nachfolgend definieren wir eine Funktion. Eine Funktion benötigt einen (beliebigen) Namen, im nachfolgenden Beispiel nennen wir die Funktion "f". Danach muss in runden Klammern der Aufrufparameter (hier "x" genannt) angegeben werden. (Wie wir noch sehen werden, kann eine Funktion auch mehrere solche Aufrufparameter haben.) Die Zuweisung des Funktionsterms - hier "x^2+a" geschieht über den speziellen "Funktions"-Zuweisungsoperator ":=". Ansonsten geschieht eine solche Funktionsdefinition in Maxima genau wie aus der Schule gewohnt! [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x) := x^2 + a; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nun kann man beliebige Funktionswerte bestimmen lassen, beispielsweise [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(5); f(7); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Solange der Wert von a noch nicht festgelegt ist, erhalten wir als Funktionsergebnisse natürlich nur die entsprechenden Terme. Legt man a fest, so erhalten wir natürlich konkrete Werte: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(5), a=-5; f(7), a=3; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Schließlich kann man dies Funktion noch integrieren: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate( f(var), var ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Manchmal benötigt Maxima zusätzliche Informationen, um einen Ausdruck auszu- werten und und fragt die benötigten Dinge nach. In aller Regel erscheint ein Cursor nach der Frage, so dass man die gewünschte Antwort nur noch einzutippen braucht. Falls nicht, so schreibt man die Antwort einfach darunter und sendet sie mit "Großschreibe-Eingabetaste" an Maxima. Im unteren Beispiel reicht die Antwort "p" aus, man muss nicht explizit "positive" eingeben. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate( 1 / (x^2 + a), x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Man kann Maxima allerdings mit der Funktion "assume()" schon im Vorfeld über solche Annahmen informieren. Um eine solche Annahme rückgängig zu machen, kann man "forget" benutzen. Um Hilfe für eine bestimmte Funktion zu erhalten, klickt man in den Funktions- namen und drückt die F1-Taste. Ausprobieren! [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ assume(a > 0)$ integrate( 1 / (x^2 + a), x); forget(a > 0)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nach diesen einführenden Grundlagen schauen wir uns noch einige allgemeine mathematischen Aufgaben an. Denken Sie daran: Wenn Sie mehr über eine spezielle Funktion erfahren wollen, dann klicken Sie in deren Namen und drücken Sie F1. Um Gleichungen symbolisch oder numerisch zu lösen gibt es die Funktion "solve()": [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(a*x^2 + b*x + c = 0, x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Lineare Algebra. Mit der Funktion "matrix()" kann man Matitzen erzeugen. Diese können auch nicht- numerische Ausdrücke enthalten. Die Funktion "invert()" berechnet Inverse und für die Matritzenmultiplikation wird der Punkt "." verwendet. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A: matrix([1,-1], [1,sin(c)]); B: invert(A); A.B; ratsimp(A.B); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] In der letzten zeile haben wir "ratsimp()" verwendet, um das Ergebnis von "A.B" zu vereinfachen. Maxima hat eine ganze Menge an solchen "Vereinfachungsfunktionen", wobei es natürlich immer darauf ankommt, was vereinfacht werden soll. Dieses "Vereinfachen" ist daher ein relativ komlexes Thema, in welches man sich nach und nach einarbeiten wird. Solange Sie sich hierin noch nicht so gut auskennen, ist "ratsimp()" sicher immer die beste Wahl. Schauen wir uns zur Abwechslung einige 2D- und 3D-Plots an: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([sin(x), cos(x)], [x,0, 2*%pi]); wxplot3d( exp(-x^2 - y^2), [x,-2,2],[y,-2,2]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nun wagen wir uns noch ans Differenzieren, indem wir die "diff()"-Funktion nutzen: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x) := x^2 $ diff(f(x), x); g(y) := sin(y)$ g(f(x)); diff( g(f(x)) , x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Maxima kennt natürlich die Kettenregel! Am Schluss lassen wir Maxima noch eine gewöhnliche Differentialgleichung zweiter Ordnung lösen: y''(t) + omega^2 * y(t) = 0 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ assume(omega > 0); ode2( 'diff(y, t, 2) + omega^2 * y = 0, y, t ); ic2(%, t = 0, y = amp, 'diff(y,t) = 0 ); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Damit sollten Sie einen ersten Einblick in die Fähigkeiten von und in den Umgang mit Maxima gewonnen haben, der es Ihnen ermöglicht, selbst auf Entdeckungsreise zu gehen. Ein erster Schritt kann darin liegen, die oben aufgeführten Beispiele jeweils leicht zu verändern und die Auswirkungen zu beobachten. Editieren Sie hierfür einfach die jeweilige Eingabezelle und drücken Sie abschließend immer SHIFT-RETURN um Ihre Änderungen an Maxima zu übermitteln. Eigene Versuche können Sie auch hier unterhalb dieses letzten Kommentarfeldes eingeben, trauen Sie sich, Sie können ja nichts kaputt machen! Denken Sie auch daran, dass Sie mit F1 immer eine Hilfestellung für eine bestimmte Funktion erhalten können. Sollten Sie Probleme haben, das englischsprachige Manual zu verstehen, so sei Ihnen die Seite http://maxima.sourceforge.net/docs/manual/de/maxima.html#SEC_Top empfohlen. Maxima kann Sie nicht nur beim Lösen mathematischer Probleme unterstützen, es kann Ihnen auch helfen, Mathematik besser zu verstehen! Viel Spass und Erfolg dabei! [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$