Nächste: Substantive und Verben, Vorige: Ausdrücke, Nach oben: Ausdrücke [Inhalt][Index]
Alles in Maxima, bis auf wenige Ausnahmen, sind Ausdrücke. Dazu gehören
mathematische Ausdrücke wie sqrt(2*a+b)
oder Kommandos wie
subst(a^2,b,sin(b+1)
. Auch Maxima-Programme sind Ausdrücke.
Ausdrücke bestehen aus einem Atom oder einem Operator mit seinen Argumenten.
Ein Atom kann ein Symbol, eine Zeichenkette, eine ganze Zahl oder
eine Gleitkommazahl sein. Jeder Ausdruck, der nicht ein Atom ist, hat die
Darstellung op(a_1, a_2, ..., a_n)
. op
ist der Operator und
a_1
, …, a_n
sind die Argumente des Operators. Die Argumente
des Operators können Atome oder wiederum Operatoren mit Argumenten sein.
Da Maxima in Lisp programmiert ist, wird ein Ausdruck intern als eine Liste
dargestellt, die die Gestalt ((op) a_1 a_2 ... a_n)
hat. Die
arithmetischen Operatoren "+" und "*" haben zum Beispiel die interne
Darstellung:
x+y+10 -> ((mplus) 10 $x $y) 2*x*x -> ((mtimes) 2 $x $y) 2*(x+y) -> ((mtimes) 2 ((mplus) $x $y)
Mathematische Funktionen wie die trigonometrischen Funktionen oder die Logarithmusfunktion werden von Maxima intern analog dargestellt:
sin(x) -> ((%sin) $x) log(y) -> ((%log) $y) 2*sin(x)+log(y) -> ((mplus) ((mtimes) 2 ((%sin) $x)) ((%log) $y))
Mehrere Ausdrücke können zusammengefaßt werden, indem die Ausdrücke durch Kommata getrennt und mit runden Klammern umgeben werden.
(%i1) x: 3$ (%i2) (x: x+1, x: x^2); (%o2) 16 (%i3) (if (x > 17) then 2 else 4); (%o3) 4 (%i4) (if (x > 17) then x: 2 else y: 4, y+x); (%o4) 20
Auch Programmschleifen sind in Maxima Ausdrücke. Der Rückgabewert einer
Programmschleife ist done
.
(%i1) y: (x: 1, for i from 1 thru 10 do (x: x*i))$ (%i2) y; (%o2) done
Um einen anderen Rückgabewert als done
zu erhalten, kann zum Beispiel
der Wert der Variablen x nach dem Ende der Programmschleife ausgegeben
werden.
(%i3) y: (x: 1, for i from 1 thru 10 do (x: x*i), x)$ (%i4) y; (%o4) 3628800
Es gibt eine Anzahl an reservierten Namen, die nicht als Variablennamen verwendet werden sollten. Ihre Verwendung kann möglicherweise kryptische Fehlermeldungen erzeugen. Dazu gehören zum Beispiel die folgenden Namen:
integrate next from diff in at limit sum for and elseif then else do or if unless product while thru step
Funktionen und Variablen um einen Teilausdruck zu isolieren:
isolate disolate isolate_wrt_times expisolate part inpart substpart substinpart inflag piece partswitch pickapart
Funktionen und Variablen für Substantive und Verben:
nounify verbify alias aliases
Funktionen und Variablen, um zu prüfen, ob ein Teilausdruck enthalten ist und um eine Liste der Variablen eines Ausdrucks zu erstellen:
freeof lfreeof listofvars listconstvars listdummyvars
Funktionen und Variablen für Operatoren und Argumente:
args op operatorp
Funktionen und Variablen für Substitutionen in Ausdrücke:
subst psubst sublis exptsubst opsubst
Funktionen und Variablen für die kanonische Ordnung der Argumente eines Ausdrucks:
ordergreat orderless unorder ordergreatp orderlessp ordermagnitudep
Weitere Funktionen und Variablen:
nterms optimize optimprefix partition
Nächste: Substantive und Verben, Vorige: Ausdrücke, Nach oben: Ausdrücke [Inhalt][Index]