Grundlagen wxMaxima [Übersicht über Befehle]

wxMaxima ist ein Computer-Algebra-System aus den Weiten der Open-source-Welt. Im Gegensatz zur Konkurrzenz von Scilab ist Maxima in der Lage, eine null auch als null auszugeben, sowie mathematische Lösungen auch exakt und mit lesbarer Ausgabe anzuzeigen, statt eine numerische Näherung auszugeben. Zur Benutzung habe ich hier ein paar grundlegende Beispiele zur Syntax angegeben*.

Variablen definieren:

a:7;

Funktionen definieren:

(%i1) f(x):=x^4-x^2;
(%i2) g(x):=x^2;

Funktionsgraph plotten:

(%i4) wxplot2d([f(x),g(x)], [x,-2,2])$
(%t4)  << Graphics >>

Statt << Graphics >> erscheint dieser Plot:

Gleichung lösen:

(%i6) solve([f(x)=g(x)], [x]);
(%o6) [x=-sqrt(2),x=sqrt(2),x=0]
(%i7) solve([f(x)],[x]);
(%o7) [x=-1,x=1,x=0]

Zwischen numerischer und exakter Ausgabe umschalten:

(%i1) numer:false
(%o1) false
(%i2) numer:true
(%o2) true
(%i3) if numer#false then numer:false else numer:true;
(%o3) false

Der letzte Befehl wechselt von true auf false und umgekehrt.

Differenzieren

diff(f(x),x,1)

Die letzte Zahl gibt den Grad der Ableitung an.

Um eine Ableitung als Funktion weiterverwenden zu können, benutzt man define:

(%i8) define(f1(x),diff(f(x),x,1));
(%o8) f1(x):=4*x^3-2*x

Integration:

Eine Stammfunktion bilden:

(%i9) integrate(f1(x), x);
(%o9) x^4-x^2

Bestimmtes Integral lösen:

(%i10) A:integrate(g(x), x, 2, 0);
(%o10) -8/3

Betrag einer Zahl

(%i11) abs(A);
(%o11) 8/3

Arrays:

definieren: array(a,3,3);
anzeigen: listarray(a);

Array füllen

Das geht am besten über eine Schleife. Um welche Zeile und Spalte es sich handelt, wird ausgegeben. Vorsicht: So werden alle Zellen nacheinander abgefragt, man kann nicht abbrechen!

for i:1 thru n do
    for j:1 thru n do
        a[i,j]:read("a(",i,",",j,")=");

Schleifen

Bei Schleifen ist wichtig, dass man mit der Tabulator-Taste einrückt. Unten stehender Befehl addiert alle Zahlen von 1 bis 8, sofert a vorher als null definiert wurde (a:0)

for i:1 thru 8 do
        a:a+i;

If-else

if (abs(wert)<1) then
    <<< Anweisung >>>
    else "Die Welt geht unter!";

*) Die Eingaben erfolgten nicht chronologisch und sind daher zwischen den Teilabschnitten nicht unbedingt logisch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert