4 wxMaxima | |
→ | 4.5 Eingabe-Syntax |
Als "gebundenes Symbol" wird in Maxima alles bezeichnet, was
über einen Namen ansprechbar ist.
Hierzu zählen unter anderem Variablen und Funktionen.
Da Maxima nicht auf numerische Berechnungen beschränkt ist, sondern
auch analytisch mit Termen und Gleichungen arbeitet, sind Variablen
nicht auf Zahlenwerte beschränkt sondern können u.a. auch Terme,
Gleichungen und Gleichungssysteme... enthalten.
Ein Variablenname beginnt mit einem Buchstaben oder Unterstrich,
daran darf optional eine beliebige Kombination aus Buchstaben,
Zahlen oder Unterstrich folgen.
Wie in anderen Programmiersprachen auch existieren reservierte
Wörter, die nicht als Variablennamen verwendet werden können:
af and av args array at bc2 carg cf cint col cov cv del diag diff do else elseif erf ev exp f90 fft fib fix for from gcd gd get go hav ic1 ic2 if ift ilt in ind inf inrt integrate is li limit min next not op or plot psi product put rat rem rk some step sum then thru und unless vers while zeta
Da gebundene Symbole auch Gleichungen (mit Gleichheitszeichen) enthalten können, wird das Gleichheitszeichen nicht für Zuweisungen verwendet, stattdessen der Doppelpunkt.
Variable: Wert;
Im Beispiel der Abbildung oben werden die Anweisungen
a: x+y; b: x-y; c: a/b;
verwendet. Zunächst wird der Variable "a" der Berechnungsterm
"x+y" zugewiesen, der Variable "b" der Berechnungsterm "x-y".
Der Variable "c" wird der Berechnungsterm "a/b" zugewiesen. Für die
hier enthaltenen Variablen "a" und "b" werden automatisch die Werte
(Terme "x+y" und "x-y") eingesetzt.
Die Symbole "x" und "y" sind keine gebundenen Symbole (für diese
Symbole ist bisher keine Zuweisung erfolgt), es ist daher nicht
möglich, diese ihrerseits zu ersetzen.
Mit
values;
wird eine Liste mit den Namen der definierten Variablen angezeigt.
Zur Durchführung einer Berechnung werden Zahlen, Operatoren, Variablen, Funktionen und Maxima-Befehle sinnvoll miteinander verknüpft.
Das Ergebnis einer Berechnung in Maxima ist nicht notwendigerweise ein Zahlenwert, es können z.B. auch Terme (z.B. für die Lösung von Gleichungen) oder Gleichungen (z.B. für die Lösung von Differentialgleichungen) sein.
In Maxima sind unterschiedliche Typen für Zahlenwerte möglich:
%e | Basis des natürlichen Logarithmus |
%i | Imaginäre Einheit |
%pi | Pi |
%phi | Goldener Schnitt |
%gamma | Euler-Mascheroni-Konstante |
inf | Unendlich |
minf | Negativ unendlich |
Winkelangaben erfolgen in Radiant.
Operatoren sind in Maxima mit einer linksseitigen und
rechtsseitigen Bindungskraft (lbp=left binding power, rbp=right
binding power) versehen, diese legt die Reihenfolge der Abarbeitung
fest.
Die Standardwerte sorgen dafür, dass die üblichen Vorrangregeln
(z.B. Punkt- vor Strichrechnung) eingehalten werden.
Bei Unklarheiten sollten Klammern gesetzt werden, diese erhöhen
auch die Lesbarkeit und Übersichtlichkeit.
Operator | lbp | rbp | Bedeutung |
---|---|---|---|
: | 180 | 20 | Zuweisung |
:: | 180 | 20 | Zuweisung mit Auswertung auch der linken Seite, siehe Beispiel unten |
:= | 180 | 20 | Definition von Funktionen |
::= | 180 | 10 | Definition von Macro-Funktionen (Argumente werden gequoted) |
! | 160 | Fakultät | |
!! | 160 | Doppel-Fakultät, siehe Erklärung unten | |
^ | 140 | 139 | Potenzierung |
. | 130 | 129 | Matrizenmultiplikation, nichtkommutative Multiplikation |
* | 120 | 120 | Multiplikation |
/ | 120 | 120 | Division |
+ | 100 | 100 | Addition |
- | 100 | 134 | Subtraktion |
= | 80 | 80 | Gleichheit |
# | 80 | 80 | Negation der syntaktischen Gleichheit |
> | 80 | 80 | größer als |
>= | 80 | 80 | größer als oder gleich |
< | 80 | 80 | kleiner als |
<= | 80 | 80 | kleiner als oder gleich |
not | 70 | Logische Negation | |
and | 65 | Logische und-Verknüpfung | |
or | 60 | Logische oder-Verknüpfung | |
, | 10 | Sequentielle Abarbeitung von Anweisungen | |
$ | -1 | Anweisung verarbeiten ohne Ergebnisausgabe | |
; | -1 | Anweisung verarbeiten mit Ergebnisausgabe |
(%i1) trallalla: 5; (%o1) 5 (%i2) brabbelsabbel: 27; (%o2) 27 (%i3) test: 'trallalla; (%o3) trallalla (%i4) test:: brabbelsabbel; (%o4) 27 (%i5) trallalla; (%o5) 27
Im Beispiel bekommt die Variable test eine Referenz auf das gebundene Symbol trallalla. Bei der Zuweisung in Eingabe 4 mit :: wird auch die linke Seite aufgelöst, d.h. die Variable trallalla erhält etwas zugewiesen.
Bei der Doppel-Fakultät wird das Produkt n(n-2)(n-4)... gebildet. Für gerade n ergibt sich also das Produkt aller geraden Zahlen bis einschließlich n, für ungerade n das Produkt aller ungeraden Zahlen bis einschließlich n.