Nächste: Funktionen und Variablen für die Vereinfachung, Vorige: Vereinfachung, Nach oben: Vereinfachung [Inhalt][Index]
Nach der Auswertung einer Eingabe, die in Auswertung beschrieben ist,
schließt sich die Vereinfachung eines Ausdrucks an. Mathematische
Funktionen mit denen symbolisch gerechnet werden kann, werden nicht ausgewertet,
sondern vereinfacht. Mathematische Funktionen werden intern von Maxima in einer
Substantivform dargestellt. Auch Ausdrücke mit den arithmetischen Operatoren
werden vereinfacht. Numerische Rechnungen wie die Addition oder Multiplikation
sind daher keine Auswertung, sondern eine Vereinfachung. Die Auswertung eines
Ausdrucks kann mit dem Quote-Operator
'
unterdrückt werden.
Entsprechend kann die Vereinfachung eines Ausdrucks mit der Optionsvariablen
simp
kontrolliert werden.
Beispiele:
Im ersten Beispiel wird die Auswertung mit dem Quote-Operator unterdrückt.
Das Ergebnis ist eine Substantivform für die Ableitung. Im zweiten Beispiel
ist die Vereinfachung unterdrückt. Die Ableitung wird ausgeführt, da es
sich um eine Auswertung handelt. Das Ergebnis wird jedoch nicht zu 2*x
vereinfacht.
(%i1) 'diff(x*x,x); d 2 (%o1) -- (x ) dx (%i2) simp:false; (%o2) false (%i3) diff(x*x,x); (%o3) 1 x + 1 x
Für jede mathematischen Funktion oder Operator hat Maxima intern eine eigene Routine, die für die Vereinfachung aufgerufen wird, sobald die Funktion oder der Operator in einem Ausdruck auftritt. Diese Routinen implementieren Symmetrieeigenschaften, spezielle Funktionswerte oder andere Eigenschaften und Regeln. Mit einer Vielzahl von Optionsvariablen kann Einfluss auf die Vereinfachung der Funktionen und Operatoren genommen werden.
Beispiel:
Die Vereinfachung der Exponentialfunktion exp
wird von den folgenden
Optionsvariablen kontrolliert: %enumer
, %emode
,
%e_to_numlog
, radexpand
, logsimp
, und
demoivre
. Im ersten Beispiel wird der Ausdruck mit der
Exponentialfunktion nicht vereinfacht. Im zweiten Beispiel vereinfacht
Maxima ein Argument %i*%pi/2
.
(%i1) exp(x+%i*%pi/2), %emode:false; %i %pi x + ------ 2 (%o1) %e (%i2) exp(x+%i*%pi/2), %emode:true; x (%o2) %i %e
Zusätzlich zu der Vereinfachung von einzelnen mathematischen Funktionen und
Operatoren, die automatisch von Maxima ausgeführt werden, kennt Maxima
Funktionen wie expand
oder radcan
, die auf Ausdrücke
angewendet werden, um spezielle Vereinfachungen vorzunehmen.
Beispiel:
(%i1) (log(x+x^2)-log(x))^a/log(1+x)^(a/2); 2 a (log(x + x) - log(x)) (%o1) ----------------------- a/2 log(x + 1) (%i2) radcan(%); a/2 (%o2) log(x + 1)
Einem Operator oder einer Funktion können Eigenschaften wie linear oder
symmetrisch gegeben werden. Maxima berücksichtigt diese Eigenschaften bei der
Vereinfachung eines Ausdrucks. Zum Beispiel wird mit dem Kommando
declare(f, oddfun)
eine Funktion als ungerade definiert. Maxima
vereinfacht dann jedes Auftreten eines Ausdrucks f(-x)
zu -f(x)
.
Entsprechend vereinfacht Maxima f(-x)
zu f(x)
, wenn die Funktion
als gerade definiert wurde.
Die folgenden Eigenschaften sind in der Liste opproperties
enthalten und
kontrollieren die Vereinfachung von Funktionen und Operatoren:
additive lassociative oddfun antisymmetric linear outative commutative multiplicative rassociative evenfun nary symmetric
Darüber hinaus haben auch die Fakten und die Eigenschaften des aktuellen Kontextes Einfluss auf die Vereinfachung von Ausdrücken. Siehe dazu die Ausführungen in Maximas Datenbank.
Beispiel:
Die Sinusfunktion vereinfacht für ein ganzzahliges Vielfaches von %pi
zum Wert 0
. Erhält das Symbol n
die Eigenschaft integer
,
wird die Sinusfunktion entsprechend vereinfacht.
(%i1) sin(n*%pi); (%o1) sin(%pi n) (%i2) declare(n, integer); (%o2) done (%i3) sin(n*%pi); (%o3) 0
Führen alle oben genannten Möglichkeiten nicht zu dem gewünschten Ergebnis, kann der Nutzer Maxima um weitere Regeln für die Vereinfachung erweitern. Diese Möglichkeiten werden in Muster und Regeln erläutert.
Nächste: Funktionen und Variablen für die Vereinfachung, Vorige: Vereinfachung, Nach oben: Vereinfachung [Inhalt][Index]