. Symbolisches Rechnen. Der Umgang mit Mathematica Mathematica besteht aus dem Kernel, der für die Rechnungen zuständig ist, und dem FrontEnd, in dem man Eingaben tätigt und Ausgaben angezeigt bekommt. Die grundlegenden Arbeitseinheiten von Mathematica sind Notebooks (*.nb) und Packages (*.m), wobei die Grenze fließend ist, d.h. man kann direkt aus einem Notebook ein Package erzeugen (mehr dazu später). Das FrontEnd ermöglicht die Formatierung des Notebooks. Dazu ist die Toolbar nützlich. Diese wird mittels Window -> Show Toolbar (Alt-W,T) angezeigt bzw. das Menü Formar->Style->... Für Zellen gibt es eigene Styles. Dies ist zb eine Text-Zelle. Unten ist eine Input -Zelle, das Ergebnis der Rechnung steht dann in einer Output -Zelle + Mathematica-Notebooks können durch Einfügen von Überschriften, Kapitelüberschriften (Section, Subsection, Subsubsection) übersichtlich gestaltet werden. Insbesondere gruppiert Mathematica automatisch Zellen innerhalb einer Section, deren Inhalt dann durch Doppelklicken auf das entsprechende Zellensymbol versteckt bzw. wieder angezeigt werden kann. Zellen können auch händisch gruppiert bzw. aufgespalten werden, siehe Menü->Cell->.... Einfache Rechnungen und Notation Der Inhalt einer Zelle wird mit Shift+Enter oder Enter des numerischen Blocks ausgewertet (evaluiert). Die Grundrechenarten: +,-,*,/ Hinweis: Mathematica versteht einen Abstand als Multiplikation und setzt selbständig ein Multiplikationszeichen. Es sieht zwar anders aus als das manuell eingefügte Multiplikationszeichen, erfüllt aber denselben Zweck. *5a 5 a a b a b In Mathematica haben die Klammern (, [, und { jeweils eine ganz spezifische Bedeutung. Für Klammern im mathematischen Sinn müssen ausschließlich runde Klammern ( und ) verwendet werden. Eckige Klammern [ ] werden verwendet, um Argumente einer Funktion anzugeben bzw. um auf Listenelemente zuzugreifen [[ ]]. Geschwungene Klammern { } werden für die Definition von Listen benötigt. Schließlich wird die Kombination (* *) dazu verwendet Kommentare innerhalb von input-zellen anzubringen.
0_Symbolisches_Rechnen.nb In Mathematica haben die Klammern (, [, und { jeweils eine ganz spezifische Bedeutung. Für Klammern im mathematischen Sinn müssen ausschließlich runde Klammern ( und ) verwendet werden. Eckige Klammern [ ] werden verwendet, um Argumente einer Funktion anzugeben bzw. um auf Listenelemente zuzugreifen [[ ]]. Geschwungene Klammern { } werden für die Definition von Listen benötigt. Schließlich wird die Kombination (* *) dazu verwendet Kommentare innerhalb von input-zellen anzubringen. HH * - L - * L 0-0 Potenzen: mit ^ (Caret, Zirkumflex) Hinweis: Mit deutscher Tastenbelegung stellt Mathematica auf einigen Systemen die Potenz automatisch hoch, wenn es sich um eine Zahl handelt, erkennt es aber nicht korrekt. In diesem Fall das Caret mittels zweimaligem Drücken der Taste eingeben. ^ 56 Hinweis: STRG-SHIFT-N "verschönert" Formeln (prettify). a^b ab c ab c ab Die Eingabe der Quadratwurzel kann über den shortcut STRG- erfolgen, Brüche können über CTRL-/ eingegenen werden H*STRG- x+ H* STRG- *L *L +x Das nachträgliche Verschönern von Ausdrücken funktioniert auch in anderen Fällen (drücken Sie CtrlShift-N in untenstehender Input-Zelle)
0_Symbolisches_Rechnen.nb Exp@I * PiD - Sin@ΑD + Cos@ΒD Cos@ΒD + Sin@ΑD N@, 00D.596559796679509769997505097959076066 099605706 Es gibt eine Palette, die bei der Eingabe hilfreich ist: Menü Palettes -> Other -> Basic Math Input. In dieser Palette findet man auch griechische Buchstaben. Β= x = Sin@ΒD N@x, 00D 0.7070676575006090959767065969956690 559597676076 Ξ+Ξ Ξ Clear@xD H* löscht etwaige, vorangegangen Zuweisungen zum Symbol x *L à + ã-x â x - Alternative Eingabe für Α: esc-a-esc Eine umfassene Liste findet man im Documentation Center unter tutorial/enteringgreekletters. Generell ist die Eingabe über die Tastatur empfohlen, da sie schneller ist. Hinweis: Es gibt zumindest Arten obiges bestimmte Integral einzugeben:
0_Symbolisches_Rechnen.nb H* *L Integrate@Exp@- x ^ D, x, - Infinity, + Infinity<D H* Mithilfe der Palette "Basic Math Input" *L H* Durch Verwenden von Tastatur-Shortcuts *L ESC-dintt-ESC ergibt Ù â durch Drücken der TAB-Taste gelangt man in die unterschiedlichen Eingabfelder ESC-inf-ESC ergibt ESC-ee-ESC erbibt ã (die Eulersche Zahl) STRG-6 ergibt (wieder TAB-Taste verwenden um von der Basis in die Hochzahl zu springen) Es wird empfohlen, sich die Verwendung von solchen und ähnlichen Tastatur-Shortcuts anzugewöhnen, da sie das Arbeiten mit Mathematica viel effizienter gestalten. Achtung: Manche dieser Buchstaben besitzen einen Wert. * Aber: N@D.59 N gibt den numerischen Wert eines Objekts zurück. N@ãD.7 Man kann die Anzahl der Stellen angeben: N@, 0D.596559795 Bemerkung zum Tastatur-Layout: Mathematica macht exzessiven Gebrauch von eckigen und geschwungenen Klammern, sowie anderen Sonderzeichen: [, ], {, }, @, /, \. Diese sind mit dem englischen Tastatur-Layout zugänglicher. Eventuell lohnt sich eine Umstellung.. Differenzieren, Integrieren, Lösen von Gleichungen Differenzieren Die Funktion, die es erlaubt partielle Ableitungen von Ausdrücken durchzuführen, heißt schlicht D. Achtung: Wie auch bei anderen Funktionsnamen, die von Mathematica bereits belegt sind, ist es daher nicht möglich D als Name einer Variablen zu verwenden.
0_Symbolisches_Rechnen.nb 5 Die Funktion, die es erlaubt partielle Ableitungen von Ausdrücken durchzuführen, heißt schlicht D. Achtung: Wie auch bei anderen Funktionsnamen, die von Mathematica bereits belegt sind, ist es daher nicht möglich D als Name einer Variablen zu verwenden.?d D@ f, xd gives the partial derivative f x. D@ f, x, n<d gives the multiple derivative n f xn. D@ f, x, y, D differentiates f successively with respect to x, y, D@ f, x, x,. <<D for a scalar f gives the vector derivative H f x, f x, L. D@ f, array<d gives a tensor derivative. Die Funktion D wird in einfachsten Fall mit zwei Argumenten aufgerufen. Das erste beschreibt die Funktion, die abgeleitet werden soll, das zweite, die Variable, nach der differenziert werden soll, also D@Sin@xD, xd Cos@xD D@sin HxL, xd H* Was ist hier falsch? Warum erhalten wir als Ergbnis "sin"? *L sin D@sin@xD, xd H*... und was stimmt hier nicht? *L sin @xd Die Funktion D kann auch über Tastatur-Shortcuts eingegeben werden, und zwar mit ESC-dt-ESC, bzw. kann durch nachträgliches Drückenvon CTRL-SHIFT-N die Eingabeform verschönert werden. r ã-r - ã-r r Für Funktionen einer Variable ist auch die Notation ' möglich Sin '@xd Sin ''@xd Cos@xD - Sin@xD Achtung! Das... x' x... funktioniert nicht, weil x keine Funktion in Mathematica ist. Mithilfe der Series -Funktion kann die Taylorreihe eines Ausdruckes um einen Entwicklungspunkt und bis zu einer vorgegebenen Ordnung berechnet werden.
6 0_Symbolisches_Rechnen.nb... funktioniert nicht, weil x keine Funktion in Mathematica ist. Mithilfe der Series -Funktion kann die Taylorreihe eines Ausdruckes um einen Entwicklungspunkt und bis zu einer vorgegebenen Ordnung berechnet werden. Series@Sin@xD Cos@xD, x, 0, <D x x- + O@xD5 Integrieren Die Funktion Integrate berechnet die Stammfunktion bzw. ein bestimmtes Integral eines symbolischen Ausdrucks. Die Funktion Integrate kann im wesentlichen alle unbestimmten und bestimmten Integrale berechnen, die auch in einschlägigen Integraltabellen aufgelistet sind.? Integrate Integrate@ f, xd gives the indefinite integral à f d x. Integrate@ f, x, xmin, xmax <D gives the definite integral à xmax f d x. xmin Integrate@ f, x, xmin, xmax <, y, ymin, ymax <, D gives the multiple integral à xmax xmin dxà ymax dy f. ymin Beispiel: Wir berechnen das unbestimmte Integral von HSin@xDL und leiten zur Probe das Ergebnis wieder nach x ab. IntegrateASin@xD, xe x - Sin@ xd + Sin@ xd Durch Drücken von STRG-SHIFT-L wird die letzte Output-Zelle in eine neue Input-Zelle kopiert x DB - Sin@ xd + - Sin@ xd, xf Cos@ xd + Cos@ xd Cos@ xd Simplify H* Wir wenden die Mathematica-Function Simplify an, um den Ausdruck weiter zu vereinfachen *L - Cos@ xd + Sin@xD Wir können jedem Mathematica-Ausdruck mithife von = auch ein neues Symbol zuweisen:
0_Symbolisches_Rechnen.nb 7 F = IntegrateASin@xD, xe f = D@F, xd Simplify@fD H* Normalform *L f Simplify H* Postfix-Form *L Simplify f H* Prefix-Form *L x - Sin@ xd + Sin@ xd Cos@ xd + Cos@ xd Sin@xD Sin@xD Sin@xD Es gibt grundsätzlich Schreibweisen eine Funktion f auf einen Ausdruck expr anzuwenden, die allesamt genau dasselbe bewirken () Normalform: f[expr] () Postfix-Form: expr // f () Prefix-Form: f@expr Wie schon erwähnt können Integrale auch über Tastatur-Shortcuts eingegeben (bzw. auch durch die entsprechenden Paletten aus dem Menü->Palettes->...) à Log@xD â x 0 - à x âx x H* bestimmtes Integral über ESC-dintt-ESC H* unbestimmtes Integral über ESC-intt-ESC Ù â Ù â *L *L Durch Angabe von Optionen in der Integral-Funktion kann die Auswertung von Integralen beeinflusst werden. Dazu zwei Beispiele:
0_Symbolisches_Rechnen.nb IntegrateB, x, -, <F x Integrate::idiv : Integral of x à - x does not converge on -, <. âx IntegrateB, x, -, <, PrincipalValue TrueF x Log@D IntegrateAã-a x, x, -, <E ConditionalExpressionB, Re@aD > 0F a IntegrateAã-a x, x, -, <, Assumptions a > 0<E a Lösen von Gleichungen Die Funktion Solve dient dazu, eine Gleichung bzw. ein System von Gleichungen nach einem Ausdruck bzw. nach einer Liste von Ausdrücken aufzulösen.? Solve Solve@expr, varsd attempts to solve the system expr of equations or inequalities for the variables vars. Solve@expr, vars, domd solves over the domain dom. Common choices of dom are Reals, Integers, and Complexes. Bsp : Wir lösen die einfache Gleichung x+=6 nach x auf. Beachten Sie, dass das Gleichheitszeichen durch die Funktion Equal bzw. durch ein doppeltes Gleichheitszeichen == eingeben werden muss. Das Ergebnis erhalten wir in Form einer sogenannten Rule (->), auf die noch ausführlich eingegangen wird. Solve@ x + 6, xd x << Bsp : Wir bestimmen die Lösungen der quadratischen Gleichung a x^ + b x + c =0.
0_Symbolisches_Rechnen.nb 9 Clear@a, b, c, xd H* Durch die Funktion Clear werden etwaig vorhandene Zuweisungen zu den Symbolen a,b,c,x gelöscht *L SolveAa x + b x + c 0, xe ::x -b - b - a c a >, :x -b + b - a c a >> Das Ergebnis erhalten wir als eine Liste von Rules. Die Klammern { } definieren die Liste, und der Pfeil -> steht für die Funktion Rule. Bsp : Mit Solve kann auch die Lösung eines Systems von Gleichungen, wie etwa von dem untenstehenden linearen Gleichungssystem, berechnet werden. Solve@ x + y 5, x - y <, x, y<d x, y - << Das Gleichungssystem wird durch eine Liste { } eingegeben, wobei die einzelnen Listenelemente (hier: Gleichungen) durch Beistriche voneinander getrennt werden. Mehr über die Erzeugung, den Gebrauch und die Manipulation von Listen in Mathematica in dem Kapitel 6! Übungsaufgaben Ü.: Erstellen Sie eine Liste von mindestens 0 Tastatur-Shortcuts, die Ihnen für Ihre Arbeit mit Mathematica sinnvoll erscheinen. Ü.: Beheben Sie die Fehler in folgenden Mathematica Ausdrücken sin HxL + cos HxL Simplify sin@xd tan@xd cos@xd ei == - SinB F = Ü.: Berechnen Sie die partiellen Ableitung des folgenden Ausdrucks nach t, Ω, Γ und Φ (Hinweis zur Eingabe: ESC-w-ESC ergibt Ω, ESC-g-ESC ergibt Γ, und ESC-f-ESC ergibt Φ) ã-γ t Sin@Ω t + ΦD Ü.: Berechnen Sie (a) folgendes unbestimmte Integral und (b) den numerischen Wert des bestimmten Integrals: (a)ù x SinA x E âx, und (b) Ù0 Sin@xD x âx Ü.5: Verwenden Sie die Funktion Solve, um folgendes lineare Gleichungssystem nach x und y aufzulösen. ax+by=c dx+ey=f
0 0_Symbolisches_Rechnen.nb Ü.5: Verwenden Sie die Funktion Solve, um folgendes lineare Gleichungssystem nach x und y aufzulösen. ax+by=c dx+ey=f