|
3.3.10 Verwendung von Annahmen
Normalerweise macht Mathematica sowenig Annahmen wie möglich über die Objekte, die es manipulieren soll. Das bedeutet, daß die gelieferten Ergebnisse so allgemein wie möglich sind. Mitunter wären diese Ergebnisse jedoch erheblich weniger kompliziert, wenn mehr Annahmen gemacht worden wären.
Operationen unter Annahmen ausführen
In der Voreinstellung bewirkt Simplify bei diesem Ausdruck nichts.
In[1]:= Simplify[1/Sqrt[x] - Sqrt[1/x]]
Out[1]= 
Der Grund ist, daß sein Wert für verschiedene gewählte Werte von sehr unterschiedlich ist.
In[2]:= % /. x -> {-3, -2, -1, 1, 2, 3}
Out[2]= 
Unter der Annahme kann Simplify den Ausdruck sofort zu 0 reduzieren.
In[3]:= Simplify[1/Sqrt[x] - Sqrt[1/x], x > 0]
Out[3]= 
Ohne Annahmen über und zu treffen, kann nichts geschehen.
In[4]:= FunctionExpand[Log[x y]]
Out[4]= 
Werden und beide als positiv angenommen, kann der Logarithmus entwickelt werden.
In[5]:= FunctionExpand[Log[x y], x > 0 && y > 0]
Out[5]= 
Indem man Simplify und FullSimplify unter geeigneten Annahmen auf Gleichungen und Ungleichungen anwendet, kann man im Grunde eine große Vielfalt von Sätzen aufstellen.
Ohne Annahmen über zu treffen, kann nicht festgestellt werden, ob diese Gleichung wahr oder falsch ist.
In[6]:= Simplify[Abs[x] == x]
Out[6]= 
Nun kann Simplify beweisen, daß die Gleichung wahr ist.
In[7]:= Simplify[Abs[x] == x, x > 0]
Out[7]= 
Hier wird das Standardergebnis bestätigt, daß das arithmetische Mittel größer als das geometrische ist.
In[8]:= Simplify[(x + y)/2 >= Sqrt[x y], x >= 0 && y >= 0]
Out[8]= 
Hier wird bewiesen, daß für alle positiven Argumente im Bereich liegt.
In[9]:= FullSimplify[0 < Erf[x] < 1, x > 0]
Out[9]= 
Eine wichtige Klasse von Annahmen sind jene, die behaupten, daß ein gewisses Objekt ein Element eines speziellen Definitionsbereiches ist. Derartige Annahmen kann man mit x defb formulieren, wobei das -Zeichen als elem oder \[Element] eingegeben werden kann.
Erklärung, daß Objekte Elemente von Definitionsbereichen sind
So erhält man eine Bestätigung, daß ein Element des Definitionsbereiches der reellen Zahlen ist.
In[10]:= Pi Reals
Out[10]= 
Diese Zahlen sind alle Elemente des Definitionsbereiches der algebraischen Zahlen.
In[11]:= {1, Sqrt[2], 3 + Sqrt[5]} Algebraics
Out[11]= 
Mathematica weiß, daß keine algebraische Zahl ist.
In[12]:= Pi Algebraics
Out[12]= 
Die Mathematik konnte bis heute nicht bestimmen, ob eine algebraische Zahl ist oder nicht.
In[13]:= E + Pi Algebraics
Out[13]= 
Dies repräsentiert die Angabe, daß das Symbol x ein Element des Definitionsbereiches der reellen Zahlen ist.
In[14]:= x Reals
Out[14]= 
Von Mathematica unterstützte Definitionsbereiche
Unter der Annahme, daß eine ganze Zahl ist, wird gleich Null.
In[15]:= Simplify[Sin[n Pi], n Integers]
Out[15]= 
Dies bestätigt den Satz unter der Annahme, daß eine reelle Zahl ist.
In[16]:= Simplify[Cosh[x] >= 1, x Reals]
Out[16]= 
Wenn man angibt, daß eine Variable einer Ungleichung genügt, dann wird Mathematica automatisch annehmen, daß sie reell ist.
In[17]:= Simplify[x Reals, x > 0]
Out[17]= 
Verwendet man Annahmen in Simplify, FullSimplify und FunctionExpand, so erhält man Zugriff auf viele der in Mathematica vorhandenen mathematischen Fakten.
Hier wird die Periodizität der Tangens-Funktion benutzt.
In[18]:= Simplify[Tan[x + Pi k], k Integers]
Out[18]= 
Aus der Annahme k/2 Integers folgt, daß k gerade sein muß.
In[19]:= Simplify[Tan[x + Pi k/2], k/2 Integers]
Out[19]= 
Mathematica weiß, daß für positive gilt.
In[20]:= Simplify[Log[x] < Exp[x], x > 0]
Out[20]= 
FullSimplify greift auf Wissen über spezielle Funktionen zu.
In[21]:= FullSimplify[Im[BesselJ[0, x]], x Reals]
Out[21]= 
Mathematica kennt neben der Analysis auch diskrete Mathematik und Zahlentheorie.
Hier wird Wilsons Satz zur Vereinfachung des Ergebnisses eingesetzt.
In[22]:= FunctionExpand[Mod[(p - 1)!, p], p Primes]
Out[22]= 
Hier wird die multiplikative Eigenschaft der Eulerschen Funktion benutzt.
In[23]:= FunctionExpand[EulerPhi[m n], {m, n} Integers && GCD[m, n] == 1]
Out[23]= 
|