Mathematische Funktionen und CAS-Befehle

Rechenoperationen [Editar]


Allgemeine Rechenoperationen


Grundrechenarten

  • a+b → Addition zweier Zahlen: \(a+b\)
  • a-b → Subtraktion zweier Zahlen: \(a-b\)
  • a*b → Multiplikation zweier Zahlen: \(a\cdot b\)
  • a/b → Division zweier Zahlen bzw. Bruch: \(\frac ab\)
    • Maxima gibt die Eingabe 1/2 als Bruch 1/2 aus
    • Soll Maxima eine Division durchführen und eine Fließkommazahl zurückgeben, muss float(1/2) eingegeben werden
  • mod(a,b) → Führt eine Division mit Rest durch, z.B. mod(8,3) = 2


Potenzen, Wurzeln, Exponentialfunktion und Logarithmen

  • a^x → Potenz \(a^x\)
  • log(x) → Natürlicher Logarithmus \(\log_e(x)=\ln(x)\) zur Basis der Eulerschen Zahl \(e\)
  • log(x)/log(b) → Logarithmus von \(x\) zur Basis \(b\)
  • sqrt(x) → Quadratwurzel \(\sqrt{x}\)
  • x^(1/n)\(n\)-te Wurzel \(\sqrt[n]{x}=x^{\frac 1n}\)
  • exp(x) → Exponentialfunktion \(\exp(x)=e^x\)


Rechenoperationen mit Matrizen

  • M+N → Komponentenweise Addition zweier Matrizen: \(M+N\)
  • M*N → Komponentenweise Multiplikation zweier Matrizen \(M\) und \(N\)
  • M.N → Nicht-kommutative Multiplikation zweier Matrizen \(M\) und \(N\)
  • M^2 → Komponentenweises Quadrieren der Matrix \(M\)
  • M^^n → \(n\)-Fache nicht-kommutative Multiplikation der Matrix \(M\) mit sich selbst
  • M^^(-1) oder invert(M) → invertiert die Matrix \(M\) sofern dies möglich ist
  • a*M → Multipliziert die Zahl \(a\) mit jedem Eintrag der Matrix \(M\)

Beachten Sie bitte auch den separaten Eintrag zu Matrizen in STACK.


Trigonometrische und hyperbolische Funktionen

Die Funktionen sin(x), cos(x), tan(x), sinh(x), cosh(x) und tanh(x) stehen wie gewohnt zur Verfügung.

Deren Umkehrfunktionen werden in Maxima mit  asin(x), acos(x), atan(x), asinh(x), acosh(x) und atanh(x) bezeichnet.

Weitere nützliche Befehle und Operationen:

  • trigexpand(expr) → Vereinfacht Argumente innerhalb des Ausdrucks \(expr\), indem es die Winkelsummeneigenschaft verwendet
    • Beispiel: trigexpand(sin(2*x)/2) = sin(x)*cos(x)
  • trigreduce(expr) → Wandelt den Ausdruck \(expr\) in eine Summe von Einzeltermen, die entweder eine Sinus- oder eine Kosinus-Funktion beinhaltet.
    • Beispiel: trigreduce(cos(x)*sin(x)) = sin(2*x)/2


Differential- und Integralrechnung

  • diff(f,x) → Berechnet die Ableitung der Funktion \(f\) nach der Variable \(x\)
  • diffp(f,x,x0) → Gibt einen Wahrheitswert true oder false zurück, je nachdem ob die Funktion \(f\) an der Stelle \(x=x_0\) differenzierbar ist oder nicht.
  • integrate(f,x,a,b) → Berechnet das bestimmte Integral \(\int^b_a f(x)\;dx\)
  • integrate(f,x) → Berechnet das unbestimmte Integral \(\int f(x)\; dx\)


Maxima-Befehle [Editar]

Dieser Artikel gilt als Übersicht für die wichtigsten Maxima-Befehle. Für Befehle zur Randomisierung sowie zu Matrizen, beachten Sie bitte jeweils die separaten Einträge.


  • abs(a) → Komplexer oder reeller Betrag der Zahl \(a\)
  • args(expr) → Gibt eine Liste von Argumenten des Ausdrucks expr zurück. Beispiele: 
    • Wandelt eine Menge in eine Liste um: args( (set(1,2,3) ) = [1,2,3]
    • Gibt die Zeilenvektoren einer Matrix zurück: args( matrix([1,2,4],[1,4,5]) ) = [ [1,2,3], [4,5,6] ]
    • args( a+b+c ) = [a,b,c]
  • ceiling(a) → Rundet die Zahl \(a\) auf die nächstliegende ganze Zahl auf, z.B. ceiling(%pi) = 4
  • coeff(expr,x,k) → Gibt den Koeffizienten der \(k\)-ten Potenz von \(x\) im Ausdruck \(expr\) aus, z.B. coeff(2*x^2+1,x,2) = 2 und coeff(2*x^2+1,x,0) = 1
  • continuousp(f,x,x0) → Gibt einen Wahrheitswert true oder false  zurück, je nachdem ob die Funktion \(f\) an der Stelle \(x=x_0\) stetig ist oder nicht.
  • denom(a) → Gibt den Nenner von \(a\) aus
  • expand(expr) → Multipliziert den Ausdruck \(expr\) aus, z.B. expand((x+1)^2) =  x^2+2*x+1
  • factor(expr) → Faktorisiert den Ausdruck \(expr\), z.B. factor(x^2+2*x+1) = (x+1)^2
  • freeof(a,M) → Ergibt true, wenn \(a\notin M\) (funktioniert bei Listen und Mengen)
  • float(a) → Wandelt die Zahl \(a\) in eine Dezimalzahl um, z.B. float(%e) = 2.718281828459045
  • floor(a) → Rundet die Zahl \(a\) auf die nächstliegende ganze Zahl ab, z.B. floor(1.9) = 1
  • imagpart(z) → Gibt den Imaginäranteil der komplexen Zahl \(z\) aus
  • is(expr) → Gibt einen Wahrheitswert true oder false  zurück, je nachdem ob die Aussage \(expr\) korrekt ist, z.B.is(1>2) = false und is(2>1) = true
  • lhs(eq) → Linke Seite einer Gleichung \(eq\), z.B. lhs(x^2=4) = x^2
  • limit(f(x),x,a) → Bestimmt den Grenzwert der Funktion \(f(x)\) für \(x\to a\), z.B. limit(1/x,x,0) = infinity

  • listofvars(expr)   → Gibt eine alphabetisch sortierte Liste der Variablen, die im Ausdruck expr enthalten sind, zurück z.B.  listofvars(x^2+2*a) = [a,x]

  • makelist(f,i,k,n) → Erzeugt eine Liste mit Elementen \(f(i)\), \(i\in\{k,\ ...,\ n\}\),  also \( [ f(k),\ f(k+1)\ f(k+2),\ ...,\ f(n) ] \)
  • map(f, L) → Wendet die Funktion \(f\) auf alle Elemente der Liste \(L\) an, z.B. map(x^2, [1,2,3]) = [1,4,9]
  • num(a) → Gibt den Zähler von \(a\) aus
  • random_permutation(L) → Zufällige Permutation der Liste \(L\)
  • rat(a) → Wandelt eine Fließkommazahl \(a\) in einen Bruch um (falls möglich), z.B. float(0.25) = 1/4
  • ratsimp(expr) → Vereinfacht den Ausdruck \(expr\), z.B. ratsimp(x/3+y/3) = (x+y)/3
  • realpart(z) → Gibt den Realanteil der komplexen Zahl \(z\) aus
  • rhs(eq) → Rechte Seite einer Gleichung \(eq\), z.B. rhs(x^2=4) = 4
  • round(a) → Rundet die Zahl \(a\) auf die nächstliegende ganze Zahl, z.B. round(%pi) = 3
  • set(a,b,c) → Erstellt eine Menge \(\{a,b,c\}\)
  • setify(L) → Wandelt die Liste \(L\) in eine Menge um
  • subst(a,x,expr) → Ersetzt im Ausdruck \(expr\) die Variable \(x\) durch \(a\), z.B. subst(2,x,x^2) = 4 und subst(a,x,x^2) = a^2


Erstellung eigener Funktionen

Auch die Erstellung eigener Funktionen ist in Maxima möglich. Funktionen definiert man mit dem Operator := , z.B.

function(x) := x^2+3;

Hat man eine Funktion definiert, kann diese im Folgenden verwendet werden, z.B.

function(2) = 7

Eine Sammlung bereits vorhandener Maxima-Funktionen, die Nutzer selbst erstellt haben, finden Sie hier: Sammlung selbst geschriebener Maxima-Funktionen


Plot-Funktion

Für die vielfältigen Möglichkeiten, die es in Maxima für die Erstellung von Plots gibt, beachten Sie bitte den separaten Artikel.


Lösen von Gleichungen und Linearen Gleichungssystemen

  • solve(eq,x) → Löst die Gleichung \(eq\) nach der Variable \(x\) auf, z.B. solve(x^2-1=0, x) = [x=1, x=-1]  
  • linsolve([eq1, eq2, eq3],[x,y,z]) → Löst das Gleichungssystem aus den drei Gleichungen \(eq_1\), \(eq_2\) und \(eq_3\) mit den drei Variablen \(x\), \(y\) und \(z\).


Umwandeln der Lösungen
Für das Weiterrechnen mit den Lösungen einer Gleichung bzw. eines Gleichungssystems, kann es nützlich sein, auf einzelne Lösungen zuzugreifen oder die Namen der Variablen zu eliminieren.

  • map(rhs, LSG) → Eliminiert in der Lösung \(LSG\) die Namen der Variablen. Beispiel:
    • Ohne den map-Befehl: solve(x^2-1=0, x) = [x=1, x=-1] 
    • Mit dem map-Befehl: map(rhs, solve(x^2-1=0, x)) = [1, -1]
  • A[k] → Gibt das \(k\)-te Element der Liste \(A\) zurück


Beispiele:
 A:  map(rhs, solve(x^2-1=0, x)) = [1, -1] 
 A[1] = 1 
 A[2] =
-1
 




Intervalle [Editar]


In STACK können Sie auch offene, geschlossene und halboffene Intervalle verwenden. Dafür bringt STACK einige Befehle mit, die keine Maxima-Funktionen sind.


Eingabe von Intervallen

  • Offenes Intervall: oo(x,y)
    • Beispiel: oo(1,5)\((1,5)\)
  • Geschlossenes Intervall: cc(x,y)
    • Beispiel: cc(1,5) → \([1,5]\)
  • Halboffene Intervalle: co(x,y) oder oc(x,y)
    • Beispiel: co(1,5) → \([1,5)\) oder oc(1,5) → \((1,5]\)

Funktionen zu Intervallen

  • inintervalp(p,A) :  Gibt einen Wahrheitswert (true oder false) zurück, je nachdem, ob \(p\) im Intervall \(A\) liegt.
    • Beispiel 1:  inintervalp(3,oo(1,4))true
    • Beispiel 2:  inintervalp(3,oo(1,3))false
  •  intervalp(X): Gibt einen Wahrheitswert (true oder false) zurück, je nachdem, ob \(X\) ein Intervall ist.
  • trivialintervalp(ex): Verhindert triviale Fälle wie \(oo(a,a)\) oder \(co(-\infty, -\infty)\)
  • SimpleUnion(X,Y): Vereinigung zweier einfacher Mengen
    • Beispiel: SimpleUnion( oo(2,9) , oo(9,30) ) → \((2,9) \cup (9,30)\)
  • SimpleIntersect(X,Y): Schnitt zweier einfacher Mengen
    • Beispiel 1: SimpleIntersect( oo(2,9) , oo(9,30) ) → \( \varnothing \)
    • Beispiel 2: SimpleIntersect( oo(2,9) , oo(6,30) ) → \((6,9)\)

  • SimpDisjointp(A,B): Wenn SimpleIntersect(X,Y)=\(\{ \}\) dann true, sonst false

  • SortUnion(X): Die Liste disjunkter Intervalle \(X\) wird in aufsteigende Reihenfolge gebracht
    • Beispiel: SortUnion([oo(2,10), oo(20,30), oo(10,20)]) → \([(2,10), (10,12), (20,30)]\)
  • ConnectIntervals(X): Die Vereinigung disjunkter Intervalle \(X\) wird darauf überprüft, ob die Intervalle veknüpft sind. Ist dies der Fall, so wird die geänderte Vereinigung ausgegeben.

  • TidyUnion(X): Gibt für die disjunkte Vereinigung von Mengen \(X\) die "kanonische" Form der Vereinigung an.

  • Union(X,Y): Findet die Vereinigung zweier Mengen.
    • Beispiel: Union( oo(2,9) , oo(6,30) ) → \((2,30)\)
  • JoinedUnion(X): Vereinfacht eine gegebene Vereinigung von Intervallen \(X\), indem verknüpfte Intervalle zusammengeschlossen werden

  •  Intersection(X,Y): Schnitt von Intervallen
    • Beispiel: Intersection( oo(2,9) , oo(6,30) ) → \((6,9)\)
  • ListIntersect(X): Für eine Liste von Intervallen wird der Schnitt ausgegebe
    •  Beispiel: ListIntersect([oo(2,10), oo(3,12)])\((3,10)\)
  • Complement(X): Komplement eines Intervalls 
    • Beispiel: Complement( oo(2,9) ) → \([(-\infty,2],[9,\infty)]\)
  • SetComplement(X): Gibt das mengentheoretische Komplement der Menge \(X\) zurück.

Mathematische Konstanten [Editar]

Maxima beherrscht einige mathematische Konstanten. Viele von ihnen werden mit einem %-Zeichen umgesetzt:

  • %pi → Kreiszahl \(\pi\)
  • %e → Eulersche Zahl \(e\)
  • %i → Imaginäre Einheit \(\text i\)
  • inf → Positiver unendlich großer Wert
  • minf → Negativer unendlich großer Wert