Upload
phungminh
View
225
Download
2
Embed Size (px)
Citation preview
Einführung in MathematicaEinführung in Mathematica
www.imms.de 21.04.2008
Einführung in Mathematica 1
InhaltInhalt
1 G dl1. Grundlagen2. Syntax3 R f Ei b /A b3. Referenzen zur Eingabe/Ausgabe4. Laden und Speichern5. Zahlen6. Listen7. Listenmanipulationen8. Elementextraktion9. Vektoren und Matrizen10. Regel Anwendung11. Funktionsaufrufe12. Optionswerte setzen und auslesen
www.imms.de 21.04.2008
Einführung in Mathematica 2
Inhalt (Fortsetzung)Inhalt (Fortsetzung)
13 O t f t13. Operatorformate14. Funktionaloperatoren15. Definitionen16. Entfernen von Definitionen17. Ausdrucksmanipulation18. Grafiken18. Grafiken19. Differentiation20 Integration20. Integration21. Gleichungen22. Differentialgleichungen23. On-Line Hilfe
www.imms.de 21.04.2008
Einführung in Mathematica 3
1. Grundlagen1. Grundlagen
M th ti k l l T h h b t t dMathematica kann als normaler Taschenrechner benutzt werden:Man gibt die Frage ein und Mathematica gibt die Antwort zurück.
Mathematica fügt das In und OutLabel hinzu.
+=In[1] : 2 3Ausführen der Eingabe mit SHIFT-RETURN oder ENTER.
+ −==
Out[1]
In
5
(143 1)/1[ ] : 22 10;( )[ ]
Das Semikolon teilt Mathematica mit, dass keine Ausgabe erfolgen soll.
www.imms.de 21.04.2008
Einführung in Mathematica 4
2. Syntax2. Syntax
K d d F kti b i it G ßb h t bKommandos und Funktionen beginnen mit Großbuchstaben. Argumente werden durch Kommas getrennt und in rechteckige Klammern eingeschlossen.Klammern eingeschlossen.
In[1] := yPlus[Power[a, b], m^n, x ] Mathematica enthält eine große Anzahl von Kurznotationen für
Mathematica erlaubt Freizeichen zwischen Symbolen aber nicht
Out[1] = b n ya +m +xAnzahl von Kurznotationen für Funktionen.
Mathematica erlaubt Freizeichen zwischen Symbolen aber nicht innerhalb eines Symbols.
In[2] : x y+x*y Bedeutet x mal y,wobei
xy ein Symbol ist.
==2xy
In[2] :
Out[2]
In[3] :
x y+x*y
xy+x*y== xy+xy
In[3] :
Out[3]
xy+x*y
www.imms.de 21.04.2008
Einführung in Mathematica 5
3. Referenzen zu Eingabe/Ausgabe3. Referenzen zu Eingabe/Ausgabe
=In[1] : 2a+ b^2=
= 22a+b
In[1] :
Out[1]
In[2] :
2a+ b 2
Si [%]% nimmt die Ausgabe davor.
=
= 2Sin[2a+b ]
In[2] :
Out[2]
I [3]
Sin[%]
Out[n] oder %n nimmt die n-teAusgabe=
= 2 22a+b +Cos[2a+b ]
In[3] :
Out[3]
y = Cos[Out[1]]+%1 Ausgabe.
=
= 2 22a+b +Cos[2a+b ]
In[4] :
Out[4]
y Alternativ kann man auch Variablen benutzen.
www.imms.de 21.04.2008
Einführung in Mathematica 6
4. Laden und Speichern4. Laden und Speichern
In[1] := SaveMe = Sin[x]+ Cos[x] Save[•] hängt Definitionen In[1] :
In[2] :
In[3] :
===
SaveMe = Sin[x]+ Cos[x]
Save["File1", SaveMe]
Put[a^2+ b^2 "File2"]
[ ] gan eine Datei an.
Put[expr, “name“] oder expr>>name schreibt einenIn[3] :
In[4] :
In[5] :
===
Put[a 2+ b 2, File2 ]
Clear[SaveMe]
Get["File1"]
expr>>name schreibt einen Ausdruck in eine Datei.
Clear[•] löscht Werte oder Definitionen für SymboleIn[5] :
Out[5]
In[6] :
==
=Cos[x]+Sin[x]
Get[ File1 ]
<< File2
Definitionen für Symbole.
Get[“name”] or <<nameliest eine Datei ein, führt jeden Ausdruck in der Datei aus undIn[6] :
Out[6]
=
= 2 2a +b
<< File2 Ausdruck in der Datei aus und gibt den Letzten aus.
www.imms.de 21.04.2008
Einführung in Mathematica 7
5. Zahlen5. Zahlen
Z hl kö iZahlen können sein
beliebig präzise Integer: 3, 2^3, 4/2, ...
beliebig präzise rationale Zahlen: ,10!/11!, ...344
In[1] :
O t[1]
=5
Numerator[5/7] Der Zähler und der Nenner eines Bruches kann durch Numerator[•] und
Out[1]
In[2] :
O t[2]
==
5
Denominator[5/7]
kann durch Numerator[ ] und Denominator[•] Funktionen extrahiert werden .
Fl ti P i t ( ll ) Z hl 3 /4 0 0 75
Out[2] = 7
Floating-Point (reelle) Zahlen: 3./4.0, 0.75, ...
Der Punkt zeigt eine Zahl mit endlicher Präzision.
www.imms.de 21.04.2008
Einführung in Mathematica 8
Der Punkt zeigt eine Zahl mit endlicher Präzision.
Zahlen (Fortsetzung)Zahlen (Fortsetzung)
Komplexe Zahlen: 3 + j2 (imaginäre Einheit j I)3Komplexe Zahlen: 3.+ j2, , ... (imaginäre Einheit j I)3−
In[3] := Re[3+ -2]In[3] :
Out[3]
In[4] :
=
=
3
Re[3+ 2]
Im[3+ -2]
Der Real- und Imaginärteil einer Zahl kann durch die Re[•] und Im[•] Funktionen extrahiert werden.
In[4] :
Out[4]
=
= 2
Im[3+ -2]
Vordefinierte Konstanten: E, Pi, I, Infinity, ...
N[expr, n] gibt den numerische Wert von expr mit n stelliger Präzision aus
In[5] :
Out[5]
== -1
PiIE
expr mit n-stelliger Präzision aus.In[6] :
Out[6]
== 2.7182818N[E, 8]
www.imms.de 21.04.2008
Einführung in Mathematica 9
6. Listen6. Listen
Ei Li t i t i S l El t di iEine Liste ist eine Sammlung von Elementen die in geschweiften Klammern eingeschlossen sind:
In[1] :
Out[1]
=={2, 3, 5, 7, 11, 13}primes={2, 3, 5, 7, 11, 13}
Listenelemente können beliebigen Typs sein (numerische Größen, symbolische Ausdrücke, ...) und können geschachtelt werden:
In[2] : ⎧ ⎫⎨ ⎬⎩ ⎭
= 21mixed = , y , "name", {a, b, {c}}
7
Out[2] ⎧ ⎫⎨⎩ ⎭
= ⎬21
, y , name, {a, b, {c}}7
www.imms.de 21.04.2008
Einführung in Mathematica 10
7. Listenmanipulation7. Listenmanipulation
In[1] :
In[2] :
==list ={a, b, c};
Append[list, d]Append[list, element] gibt listaus, wobei element angehangen [ ]
Out[2]
In[3] :
==
{a, b, c, d}
pp [ , ]
Prepend[list, x]
wurde.
Prepend[list, element] gibt list aus, wobei element davor [ ]
Out[3]
In[4] :
==
{x, a, b, c}
p [ , ]
Insert[list, y, 2]
gesetzt wurde.
Insert[list, element, n] fügt element an die Position n in list [ ]
Out[4]
In[5] :
==
{a, y, b, c}
[ , y, ]
Delete[list, 2]
ein.
Delete[list, n] löscht das Element an Position n in list[ ]
Out[5]
In[6] :
==
{a, c}
[ , ]
Join[list, {g, h}]
Element an Position n in list.
Join[list1, list2, ...]verkettet Listen miteinander
[ ] [
Out[6] ={a, b, c, g, h}, {g, }]
verkettet Listen miteinander.
www.imms.de 21.04.2008
Einführung in Mathematica 11
8. Elementextraktion8. Elementextraktion
==
In[1] :
In[2] :
list ={a, b, c, d};
Part[list, 2] Part[list, i] oder list[[i]] gibt das i-te Element der Liste
==
b
[ ]
Out[2]
In[3] :
[ , ]
First[list]
te Element der Liste.
First[list] gibt das erste Element von list aus. Bemerkung:
==
a
[ ]
Out[3]
In[4] :
[ ]
Last[list]
First[list]==Part[list, 1].
Last[list] gibt das letzte Element von list aus
==
d
[ ]
Out[4]
In[5] :
[ ]
Take[list, 2]
list aus.
Take[list, n] gibt die ersten n Elemente von list aus
==
{a, b}
[ ]
Out[5]
In[6] :
[ , ]
Drop[list, 2]
von list aus.
Drop[list, n]gibt list aus, wobei die ersten n Elemente gestrichen wurden
={c, d}[ ]
Out[6]
p[ , ] ersten n Elemente gestrichen wurden.
www.imms.de 21.04.2008
Einführung in Mathematica 12
9. Vektoren und Matrizen9. Vektoren und Matrizen
V kt d l i di i l Li t ä ti tVektoren werden als eindimensionale Liste repräsentiert:
In[1] := v ={1, 0, 0};
⎛ ⎞⎜ ⎟1
MatrixForm[v]
Out[2] //MatrixForm ⎜ ⎟⎜ ⎟⎜⎝ ⎠
=⎟0
0
MatrixForm[list] gibt die Elemente von list in Standard-Matrix-Form aus.
Matrizen werden als Liste von Listen repräsentiert:
{ }=In[3] : mat1= {a, b}, {c, d} ;
MatrixForm[mat1]dies ist eine zweidimensional Liste
⎛ ⎞⎜ ⎟⎝
=⎠
Out[4]//MatrixForma bc d
dies ist eine zweidimensional Liste.Die inneren Listen repräsentieren die Zeilen der Matrix.
www.imms.de 21.04.2008
Einführung in Mathematica 13
Vektoren und Matrizen (Fortsetzung)Vektoren und Matrizen (Fortsetzung)
El t M t i tiElementare Matrixoperationen:
In[5] := mat2 = Inverse[mat1]; Inverse[•]berechnet die Inverse
⎛ ⎞−⎜ ⎟d d
MatrixForm[mat2]berechnet die Inverse einer quadratischen Matrix.
Out[6] //MatrixForm⎜ ⎟⎜ ⎟⎜ ⎟−⎜ ⎟
=-b c+a d -b c+a d
c ab oder D t[
In[7] :
⎜ ⎟⎝ ⎠
=
-b c+a d -b c+a d
MatrixForm[mat1.mat2]
a . b oder Dot[a, b] berechnet das Produkt von Vektoren und Matrizen.
Out[7]⎛ ⎞⎜ ⎟⎝
=⎠
1 0
0 1 Det[•] berechnet die Determinante einer
In[8] :
Out[8]
== -b c+a dDet[mat1]
Determinante einer quadratischen Matrix.
www.imms.de 21.04.2008
Einführung in Mathematica 14
Warnung: Verwirrung mit MatrixFormWarnung: Verwirrung mit MatrixForm
M t i F i t i Obj kt i h ft d ä d t d Obj ktMatrixForm ist eine Objekteigenschaft und verändert das Objekt
In[9]:= mat1= 88a, b<, 8c,d<< êê MatrixForm
Out[9]//MatrixForm=
Kommandos wie Inverse[] verursachen dann Fehler
Ja bc d
NKommandos wie Inverse[] verursachen dann Fehler
In[10]:= mat2= Inverse@mat1DIn[10]:= mat2= Inverse@mat1DOut[10]= InverseBJa b
dNF[ ] BJ
c dNF
www.imms.de 21.04.2008
Einführung in Mathematica 15
10. Regel Anwendung10. Regel Anwendung
Das Zeichen -> ist Mathematica’s Regel-Symbol:Das Zeichen > ist Mathematica s Regel Symbol:
x->3: x nimmt den Wert 3 nur in der Zeile des Kommandos oder der Funktion an, in welcher die Regel benutzt wird.Funktion an, in welcher die Regel benutzt wird.
x=3: legt x auf den Wert 3 fest.ReplaceAll[expr, rules] oder expr /. rules wendet eine rule
d i Li t d ht j d T il d A d k
2 2In[1] : (1 x x ) {x x x a}= ⎡ ⎤+ + → →⎣ ⎦2ReplaceAll 3x
oder eine Liste rules an und versucht jeden Teil des Ausdruckes expr zu transformieren.
2 2
In[1] :
Out[1]
(1 x x ),{x x,x a}=
=
⎡ ⎤+ + → →⎣ ⎦
⎡ ⎤
3x(1+a+x)
ReplaceAll 3x
2 2In[2] : (1 x x ),{x x,
Out[
x a}
2]
= ⎡ ⎤+ + → →
=⎣ ⎦
3a(1+2a)
2ReplaceRepeated 3x
ReplaceRepeated[expr, rules] oder expr //. rules wiederholt die Ersetzung solange, bis keine Änderungen in expr mehr auftreten.
www.imms.de 21.04.2008
Einführung in Mathematica 16
www.imms.de 21.04.2008
Einführung in Mathematica 17
11. Funktionsaufrufe11. Funktionsaufrufe
{ }=In[1] : 1 2 1 2 1 2 1 2list = {a , a }, {b , b }, {c , c }, {d , d }lä t di t b id
{ }=
= 1 2 1 2{c , c }, {d , d }
In[2] :
Out[2]
Drop[list, 2]
lässt das zweite Element
lässt die ersten beiden Elemente weg
{ }=
= 1 2 1 2 1 2{a , a }, {c , c }, {d , d }
In[3] :
Out[3]
Drop[list, {2}]lässt das zweite bis dritte Element weg
weg
=
= 1 2 1{a , a }, {d , d
In[4] :
Out[4]
Drop[list, {2, 3}]
{ }2}lässt das erste Element im Top-Level weg und das zweite Element im Second
g
1 2 1[ ] { }
{ }=
=
2
1 1 1{b }, {c }, {d }
In[5] :
Out[5]
Drop[list, {1}, {2}]zweite Element im Second-Level
{ }1 1 1{ },{ },{ }[ ]
www.imms.de 21.04.2008
Einführung in Mathematica 18
Funktionsaufrufe (Fortsetzung)Funktionsaufrufe (Fortsetzung)
Ei i F kti l b ät li h di A b O ti diEinige Funktionen erlauben zusätzlich die Angabe von Optionen, die durch eine Sequenz von Regeln gegeben ist.
Bei Optionen die nicht e pli it angegeben sind erden Defa lt WerteBei Optionen, die nicht explizit angegeben sind, werden Default Werte verwendet. Default
Optionswerte
{ }In[6] :
Out[6]
=
= {1, 4}, {4, 7}
StringPosition["abbabba ABBA", "abba"]werden verwendet
{ }In[7] :=
→ →StringPosition["abbabba ABBA", "abba",
IgnoreCase True, Overlaps False]
{ }Out[7] = {1, 4}, {9, 12}
g p
Sequenz von Regeln setzt neue Werte für die OptionenIgnoreCase und Overlaps
www.imms.de 21.04.2008
Einführung in Mathematica 19
12. Default Optionswerte setzen und auslesen12. Default Optionswerte setzen und auslesen
Options[fct] gibt die Default Optionswerte von fct aus:Options[fct] gibt die Default Optionswerte von fct aus:
In[8] := Options[StringPosition]Out[8] →
→ →={IgnoreCase False,
MetaCharacters None, Overlaps True}
SetOptions[fct, opt -> val] setzt einen neuen Default Wert val für die Option opt, die zur Funktion fct gehört:
I [9]
neues Verhalten:Groß-Kleinschreibung i iIn[9] :
I [10]
→= SetOptions[StringPosition,
IgnoreCase True];
ignorieren
{ }In[10] :
Out[10]
=
= {1, 4}, {4, 7}, {9, 12}
StringPosition["abbabba ABBA", "abba"]
www.imms.de 21.04.2008
Einführung in Mathematica 20
13. Operatorformate13. Operatorformate
Als eine Alternative zum Standardformat für Operatoren undAls eine Alternative zum Standardformat für Operatoren und Argumente können prefix-, infix- und postfix-Formen verwendet werden:
=
= 2(x+y)
In[1] :
Out[1]
Simplify[x^2+2x y + y^2]
S f=(x+y)Out[1] Standard form:operator[arg1, arg2, ...]
=
= 2
In[1] :
Out[1]
Im@(2+I 2)
fi FOut[ ]
prefix-Form:operator @ arg
www.imms.de 21.04.2008
Einführung in Mathematica 21
Operatorformate (Fortsetzung)Operatorformate (Fortsetzung)
In[3] :
Out[3]
=={a, b, c, d}{a, b}~ Join ~{c, d}
infix-Form:infix Form:arg1~operator~arg2
{ }In[4] := {a, b}, {c, d} //MatrixForm
Out[4] //MatrixForm⎛ ⎞
⎟⎝⎜
⎠=
a b
c dpostfix-Form:arg // operator
Anzahl von Argumenten: Standard beliebigprefix/postfix 1 Argumentinfix 2 Argumente
www.imms.de 21.04.2008
Einführung in Mathematica 22
14. Funktionaloperatoren14. Funktionaloperatoren
[ ]{ }
In[1] :
Out[1]
=
= f[a], f[b], f[c]
Map f, {a, b, c}Map[f, expr] oder f /@ expr wendet f auf die First-Level Teile in expr an.{ }
[ ][ ]
In[2] :
Out[2]
=
=
[ ], [ ], [ ]
f[a b c]
Apply f, {a, b, c}Apply[f, expr] oder f@@ expr wendet f auf das Top--Level vom Ausdruck
[ ]{ }
Out[2]
In[3] :
Out[3] ⎡ ⎤⎣ ⎦
=
=
f[a, b, c]
f f[ ] f[b] f[ ]
MapAll f, {a, b, c}expr an.
MapAll[f, expr] oder f//@ expr wendet f auf alle Teile im dem Ausdrucke{ }
[ ]Out[3]
In[4] :
⎡ ⎤⎣ ⎦=
=
f f[a], f[b], f[c]
Nest f, {a, b, c}, 3
Teile im dem Ausdrucke expr an.
Nest[f, expr, n] wendet
[ ]Out[4]
In[5] :
⎡ ⎤⎡ ⎤⎣ ⎦⎣ ⎦=
=
f f f {a, b, c}
M { }⎡ ⎤⎣ ⎦apThread f, {a, b}, {c, d}
f auf den Ausdruck expr n mal an.
MapThread[f, {expr1, [ ] { }{ }Out[5]
⎣=
⎦f[a, c], f[b, d]
p ap ead[ , {e p ,expr2, …}] wendet f auf den Ausdruck expri auf Level 1 Ebene an.
www.imms.de 21.04.2008
Einführung in Mathematica 23
15. Definitionen15. Definitionen
E i t ö li h V i bl it W t b l J d l diEs ist möglich Variable mit Werten zu belegen. Jedesmal wenn diese Variable benutzt wird, wird ihr Wert an ihrer Stelle eingesetzt.
In[1] :
Out[1]
=
= 2 2a +2ab+b
2(a + b) //Expand
In[2] :
Out[2]
== 7b = 7var=value
belegt die Variable mit einem permanenten Wert
setzt den Wert 7 für b
In[3] :
Out[3]
=
= 249+14a+a
2(a + b) //Expand
var=. oder Unset[var]der Wert von b wird eingesetztOut[3]
In[4] :
In[5] :
=
=
49+14a+a
2
b =.
(a+ b) //Expand
var . oder Unset[var]löscht den für die Variable zugewiesenen Wert
eingesetzt
löschen des Wertes von b
In[5] :
Out[5]
=
= 2 2a +2ab+b
(a+ b) //Expand
www.imms.de 21.04.2008
Einführung in Mathematica 24
Definitionen (Fortsetzung)Definitionen (Fortsetzung)
Mit M t i t ö li h F kti d fi iMit Mustern ist es möglich Funktionen zu definieren:
In[6] :
In[7] :
= 2 2f[x_]= x +a ;
f[3]
Hier wird die Funktionf(x) =(x2+a2) d fi i tIn[7] :
Out[7]
I [8]
=
= 29+a
f[3]
f[ ]
Nun kann jeder Ausdruck auf fangewendet werden.
definiert.Der Ausdruck x_ ist ein Muster mit dem Namen x welches mit jeden
In[8] :
Out[8]
=
= 2 2a +(v +w)
f[v + w]
f[x_]=rhsgilt für jeden Ausdruck
g jAusdruck ersetzt werden kann. Auf der rechten Seite verweist x auf dieses MusterIn[9] :=
Global`f
?fgilt für jeden Ausdruck f[expr]
f[x]=rhs
dieses Muster.
Die rechte Seite einer Definition kann ein
2 2 f[x_]= a +xgilt nur für den Ausdruck f[x]
beliebiger Ausdruck sein.
www.imms.de 21.04.2008
Einführung in Mathematica 25
Definitionen (Fortsetzung)Definitionen (Fortsetzung)
lhs=rhs Die rechte Seite wird ausgeführt, bevor es der linken lhs rhs Die rechte Seite wird ausgeführt, bevor es der linken Seite zugewiesen wird (unmittelbare Definition)
lhs:=rhs Die rechte Seite wird jedes mal ausgeführt, wenn die j g ,linke Seite aufgerufen wird (verzögerte Definition)
=In[10] : f[x ]= Sin[x] unmittelbar
[ ][ ]
=
[ ]
In[11] :
[ _] [ ]
g1[x_]= D f[x], x ;
g2[x ]:= D f[x] x ;
var:=valueweist einen Wert zu, welcher jedes mal berechnet wird wenn [ ]
{ }{ }
=
Cos[a] Cos[a]
In[13] :
Out[13]
g2[x_]:= D f[x], x ;
g1[a], g2[a] verzögert
berechnet wird, wenn var gebraucht wird.
{ }
{ }
=
=
Cos[a], Cos[a]Out[13]
In[14] : ;2f[x_]= xNur g2 beachtet die D fi iti f { }
{ }=
= Cos[a], 2a
In[15] :
Out[15]
g1[a], g2[a]neue Definition von f.
www.imms.de 21.04.2008
Einführung in Mathematica 26
Definitionen (Fortsetzung)Definitionen (Fortsetzung)
Ei i d fi i t F ktiEinige vordefinierte Funktionen:
Exp[•], Log[•], Sqrt[•]
Si [ ] C [ ] T [ ]
Log[x] zur Basis eLog[b, x] zur Basis b
Sin[•], Cos[•], Tan[•]Csc[•], Sec[•], Cot[•]ArcSin[•], ArcCos[•], ArcTan[•]
trigonometrische Funktionen
Sinh[•], Cosh[•], Tanh[•]
Gamma[•]1 for x 0− <⎧⎪
die Gamma Funktion
Sign[•]
UnitStep[•], DiracDelta[•]
Sign[x] 0 for x 0
1 for x 0
= =
>
⎪⎨⎪⎩
beide sind definiert im add-on Package Calculus
www.imms.de 21.04.2008
Einführung in Mathematica 27
16. Löschen von Definitionen16. Löschen von Definitionen
weist eine Definition und=In[1] : 2 2f[x_, y_]:= x + y ;
f = 7;
weist eine Definition und einen Wert dem Symbol f zu.
ibt ll f i=
Global`f
In[3] : ?fgibt alle f zugewiesenen Werte und Definitionen aus
2 2
f =7
f[x , y ]= x +y f[x_, y_] x +y
Unset[symbol] (oder symbol=.)In[4] :
In[5] :
==Unset[f]
?f
Unset[symbol] (oder symbol .)löscht dem Symbol symbol zugewiesenen Wert.
2 2
Global`f
f[x_, y_]:= x +y
www.imms.de 21.04.2008
Einführung in Mathematica 28
Löschen von Definitionen (Fortsetzung)Löschen von Definitionen (Fortsetzung)
In[6] : Clear[f]In[6] :
In[7] :
==Global`f
Clear[f]
?fClear[symbol]löscht alle Werte und Definitionen, die symbol zugewiesen wurden.
Global f
I [8] R [f] R [ b l]In[8] :
In[9] :
==I f ti t f d
Remove[f]
?f
Remove[symbol]löscht alle Werte und Definitionen die symbol zugewiesen wurden, danach wird das Symbol selbst
Information::not found:
symbol f not found.
ygelöscht
In[10] := Names["Z*"]Names[pattern]listet alle Symbole auf, die mit dem pattern übereinstimmen
Out[10] ={ZeroTest, ZeroWidthTimes, Zeta, ZTransform}
pattern übereinstimmen.
www.imms.de 21.04.2008
Einführung in Mathematica 29
17. Ausdrucksmanipulation17. Ausdrucksmanipulation
Oft kann man die Funktion Simplify[expr] finden, welche p y pschwierige Ausdrücke vereinfacht:
[ ]In[1] : ⎡ ⎤⎣ ⎦= Simplify Exp Log[x]+Log[y][ ]In[1] :
Out[1]
⎡ ⎤⎣ ⎦= xy
Simplify Exp Log[x]+Log[y]
Andere nützliche Mathematica Kommandos, die die algebraische Form des Ausdruckes verändern sind:
I [2]FactorTerms[poly]
In[2] :
Out[2]
=
= 44(1+4x )
FactorTerms[16x^4+4]FactorTerms[poly]klammert gleiche numerische Faktoren aus poly aus.
In[3] :
Out[3]
=
= 4(1+x)(1+4x )
5 4Factor[x + x + x +1] Factor[poly]faktorisiert ein Polynom
[ ]
In[4] :
Out[5]
=
= 4 51+x+x +x
Expand[%] Expand[expr]ausmultiplizieren des Ausdruckes expr.
www.imms.de 21.04.2008
Einführung in Mathematica 30
Out[5] 1+x+x +x p
Ausdrucksmanipulation (Fortsetzung)Ausdrucksmanipulation (Fortsetzung)
Collect[expr, x]
[ ]
==4y+x(1+5y)
In[5] :
Out[5]
Collect[x +4y +5x y, x] sammelt gleiche Terme mit der gleichen Potenz, die mit dem Objekt x übereinstimmen[ ]=
=2a -a+b
+
In[6] :
Out[6]
Apart (x-a)/(x- b)/(x +a), xübereinstimmen.
Apart[expr, var] schreibt einen rationalen Ausdruck als
=
+(a+b)(a+x) (a+b)(-b+x)
Out[6]
In[7] : Together[%]
Summe von Termen mit minimalen Nenner, bei dem alle Variablen außer var als Konstanten behandelt werden
⎡ ⎤
=a-x
(b-x)(a+x)Out[7]
2 2
Together[expr] stellt Terme über einen gemeinsamen Nenner dar und
Konstanten behandelt werden
⎡ ⎤⎢ ⎥⎣ ⎦
=In[8] :2 2
2 2
x -4x x +3x-4Cancel +
x -x x -1l[ ] lö ht
gemeinsamen Nenner dar und entfernt die Faktoren im Ergebnis.
=-4+
Out[8]x 4+x+
-1+x 1+x
Cancel[expr] löscht gemeinsame Faktoren im Zähler und Nenner des Ausdruckes expr.
www.imms.de 21.04.2008
Einführung in Mathematica 31
p
18. Grafiken18. Grafiken
In[1]:= [email protected]∗10^−15∗HExp@VDê0.026D− 1L, 8VD, 0, 1<,@ H p@ D L 8 <Axes → True, AxesLabel → 8"VD", "IS@VDD"<D;
IS@VDDPlot[f {x xmin xmax}]
0.150.2
0.250.3 Plot[f, {x, xmin, xmax}]
erzeugt eine zweidimensionale Grafik f als Funktion von x von xmin bis xmax.
0.2 0.4 0.6 0.8 1VD
0.050.1
Für alle Grafikfunktionen können verschieden Optionen gesetzt
In[2]:= ParametricPlot@8Cos@tD, Sin@3 tD<, 8t, −Pi, Pi<,Frame → TrueD;
werden.
0
0.5
1ParametricPlot[{fx, fy}, {t, tmin, tmax}] erzeugt eine zweidimensionale
-1 -0 5 0 0 5 1-1
-0.5
0t a }] e eug e e e d e s o a eparametrische Grafik mit x und y Koordinaten. fx und fy werden als Funktion von t erzeugt von tmin bis tmax.
www.imms.de 21.04.2008
Einführung in Mathematica 32
1 0.5 0 0.5 1
Grafiken (Fortsetzung)Grafiken (Fortsetzung)
In[3]:= Plot3D@Sin@xD∗Sin@yD, 8x, −2, 2<, 8y, −2, 2<,In[3]: Plot3D@Sin@xD∗Sin@yD, 8x, 2, 2<, 8y, 2, 2<,PlotPoints → 15D;
12
-0 500.51 Plot3D[f, {x, xmin, xmax}, {y, ymin, ymax}]
erzeugt eine dreidimensionale Grafik der Funktion f als
-2-1
01
2-2-101-1
0.5
-2-1
01
2
erzeugt eine dreidimensionale Grafik der Funktion f als eine Funktion von x und y.
In[4]:= ContourPlot@Sin@x yD, 8x, −5, 5<, 8y, −5, 5<,ContourLines → FalseD;
2
4
-4
-2
0ContourPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] generiert eine Konturgrafik von f als eine Funktion von x und y.
www.imms.de 21.04.2008
Einführung in Mathematica 33-4 -2 0 2 4
4
19. Differentiation19. Differentiation
Der D[fct, var]-Operator berechnet die partielle Ableitung derDer D[fct, var] Operator berechnet die partielle Ableitung der Funktion fct in Bezug auf die Variable var:
I [1] [ ^ ]In[1] :
Out[1]
=
= -1+nn x
D[x^n, x]die partielle Ableitung von xn nach x
[ ]In[2] :
Out[2]
=
= -2+n(-1+n)n x
D x^n, {x, 2} die zweite partielle Ableitung von xn nach x
Mehrere Ableitungen werden berechnet durch die Angabe mehrerer V i bl d Li t V i bl d di R ih f l d A tVariablen und Listen von Variablen und die Reihenfolge der Argumente in D[•] :
In[3] : ⎡ ⎤3 2D f[ ]+ * * { 2}In[3] :
Out[3]
⎡= ⎤⎣ ⎦
= 2 (0, 1, 2)6xy +f [x, y, z]
3 2D f[x, y, z]+ x*y *z , y, {z, 2} differenziert einmal nach y und zweimal nach z
www.imms.de 21.04.2008
Einführung in Mathematica 34
Differentiation (Fortsetzung)Differentiation (Fortsetzung)
S b li h Diff ti ti k f i i f h A t d W iSymbolische Differentiation kann auf eine einfache Art und Weise erfolgen:
[ ][ ]
In[4] :
Out[4]
⎡ ⎤⎣ ⎦′
=
= ′f g[y]g [y]
D f g[y], y
Symbolische Ableitungen werden in Termen von Derivative Objekten ausgedrückt:
[ ]In[5] := D f[x], x //InputForm
Out[5] // InputForm = Derivative[1][f][x]
Ableitungsordung unabhängige Variable
Funktionsname
www.imms.de 21.04.2008
Einführung in Mathematica 35
Differentiation (Fortsetzung)Differentiation (Fortsetzung)
Ei b S b l l h i ht li it iEin gegebenes Symbol, welches nicht explizit von einer gegebenen Variablen abhängt, wird als Konstante behandelt.
=In[4] : 2g[x_]:= x Nur f hängt explizit von x ab, deshalb wird wie eine Konstante[ ]=
= ′gf [x]
In[5] :
Out[5]
D g*f[x], xdeshalb wird g wie eine Konstante behandelt, obwohl es in Termen von x definiert ist.
[ ]=
= ′22xf[x]+x f [x]
In[6] :
Out[6]
D g[x]*f[x], x Jetzt ist g in Abhängigkeit von xdeklariert, deshalb wird es jetzt differenziert.
Die gegebene Variable ist nur ein Platzhalter welche ein
[ ] [ ][ ]
Die gegebene Variable ist nur ein Platzhalter, welche ein Symbol definiert, das im Ergebnis benutzt wird.
www.imms.de 21.04.2008
Einführung in Mathematica 36
20. Integration20. Integration
Mathematica kann bestimmte und unbestimmte Integrale berechnen:g
In[1] := Integrate[y^x, x]zeigt an ,dass x die Integrations ariable istIn[1] :
Out[1] =xy
Log[y]
Integrate[y x, x] Integrationsvariable ist
Log[y]
grundsätzliche Form für ein unbestimmtes Integral: Integrate[fct, var]
∫2 Pi 1
grundsätzliche Form für ein bestimmtes Integral: Integrate[fct, {var, xmin, xmax}]
In[2] :
π
= ∫4
2 Pi
0
1 dx
1+a Sin[x]
x ist dieOut[2]
π=
2
4
4-4a
x ist die Integrationsvariable, a ist ein Parameter
www.imms.de 21.04.2008
Einführung in Mathematica 37
21. Gleichungen21. Gleichungen
Gleichungen werden definiert mit == oder dem Equal[•] Operator:g q p
In[1] :
Out[1]
=21+ +2
Equal[y, 2x^2+ x +1]
Gleichungsvereinfachungen:
Out[1] = 2y ==1+x+2x
[ ]=
2+
In[2] :
Out[2]
Eliminate {x == 2+ y, y == z}, yEliminate[eqns, vars]
==
x == 2+z
b
Out[2]
In[3] : Reduce[ax + b == 0, x]eliminiert Variablen in einem Satz von simultanen Gleichungen.
= ≠b
b ==0&&a ==0 || a 0&&x == -a
Out[3]
Reduce[eqns, vars] vereinfacht die Gleichung eqns und versucht nach der Variablen vars aufzulösen. Die Gleichungen, die durch Reduce erzeugt wurden sind äquivalent zu eqns und enthalten alle möglichen Lösungen
www.imms.de 21.04.2008
Einführung in Mathematica 38
enthalten alle möglichen Lösungen.
Gleichungen (Fortsetzung)Gleichungen (Fortsetzung)
Symbolisches Gleichungslösen: Solve[eqns vars]Symbolisches Gleichungslösen:
In[1] := 2Solve[x +2bx +c == 0, x]
Solve[eqns, vars]versucht eine Gleichung oder ein Satz von Gleichungen
{ }Out[1] = → →2 2{x -b- b -c}, {x -b+ b -c}nach der Variablen vars zu lösen. Solvegibt die Lösung durch Verwendung von
Numerische Gleichungslösen:
Verwendung von Regeln an.
NSolve[ eqns, vars]gibt eine Liste von
{ }In[4] := NSolve[x^2+2x +5 == 0, x]
gibt eine Liste von numerischen Approximationen zu den Nullstellen des Polynomes fü di V i bl{ }Out[4]
In[5] :
→ →
⎡ ⎤⎣
=
⎦=
{x -1.-2.I}, {x -1.+2.I}
2FindRoot Exp[x]== Sin[x ], {x, -0.5}
für die Variable vars aus.
Out[5]⎣ ⎦
= →{x -0.714969}FindRoot[eqns, {x1, x10}, {x2, x20}, ...]sucht nach numerischen Lösungen in einem Satz von Gleichungen eqns für die Variablen xi, beginnend mit dem W t i i0
www.imms.de 21.04.2008
Einführung in Mathematica 39
Wert xi=xi0.
Extraktion von Ausdrücken vom Solve KommandoExtraktion von Ausdrücken vom Solve Kommando
Lösungen desLösungen des Gleichungssystems
gibt das erste Element der Lösung aus
gibt das erste Element der ersten Lösung aus
berechnet die erste Gleichung des Systems unter der Bedigung der Lösung solution[[1,2]]
www.imms.de 21.04.2008
Einführung in Mathematica 40
22. Differentialgleichungen22. Differentialgleichungen
Symbol, nach dem gelöst werden soll
Differentialgleichung(Ableitungen werden ausgedrückt mit ’)
[ ]= ′In[1] : DSolve y [x]+ y[x]== 1, y[x], xunabhängige Variable
ausgedrückt mit )
{ }{ }{ }
=
=
→
′
-xy[x] 1+e C[1]Out[1]
In[2] : [DSolve y [x]+ y[x]== 1 y[0]== 2unbestimmter Koeffizient
{ }
{ }{ }
=
-x[ ] 1
In[2] :
O t[2]
[
]
DSolve y [x]+ y[x]== 1, y[0]== 2 ,
y[x], x //SimplifyRandbedingung{ }{ }→= xy[x] 1+eOut[2]
www.imms.de 21.04.2008
Einführung in Mathematica 41
Differentialgleichungen (Fortsetzung)Differentialgleichungen (Fortsetzung)
Das Lösen nach y[x] ergibt eine Regel speziell für y[x],Das Lösen nach y[x] ergibt eine Regel speziell für y[x],
[ ]{ }{ }
′=a x 1
In[3] :
O t[3]
DSolve y [x]== a y[x], y[x], x
{ }{ }→
′
=
=
a xy[x] e C[1]Out[3]
In[4] : y[x]+ y[0]+ y [x]/.%Die Regel für y[x] wird nur auf y[x] angewendet nicht auf
b i d Lö h i R l fü l i f h F kti li f t
{ }= ′a xe C[1]+y[0]+y [x]Out[4]angewendet, nicht auf y’[x] oder y[0].
wobei das Lösen nach y eine Regel für y als einfache Funktion liefert:
[ ]= ′In[5] : DSolve y [x]== a y[x], y, x[ ]{ }{ }= →
′
a #1y e C[1]&)Out[5]
In[6
(
] : y[x]+ y[0]+ y [x]/ % Die Regel für y als eine
{ }=
=
′a x a xC[1]+e C[1]+a e C[1]
In[6] :
Out[6]
y[x]+ y[0]+ y [x]/.% g yeinfache Funktion, wird auf alle Terme angewendet.
www.imms.de 21.04.2008
Einführung in Mathematica 42
Differentialgleichungen (Fortsetzung)Differentialgleichungen (Fortsetzung)
Di F kti NDS l [ { i }] fi d tDie Funktion NDSolve[eqns, y, {x, xmin, xmax}] findet numerische Lösungen für die Funktion y. Zu Beginn muss bei NDSolve eine beliebige Start- oder Randbedingung angegebenNDSolve eine beliebige Start oder Randbedingung angegeben werden.
{ } { }[ ]In[7] NDS l '[ ] [ ]̂ 2 [0] 0 1 1{ } { }[ ]{ }[ ]{ }{ }
=
= →y InterpolationFunction {-1., 1.} , <>
In[7] :
Out[7]
NDSolve y'[x]-y[x]̂ 2== x, y[0]==0 , y, x, -1, 1
{ }=In[8] : y[-1] y[0] y[1] / %Die Lösung wird als ein spezielles Objekt { }
{ }= {0.45543, 0., 0.557176}
In[8] :
Out[8]
y[ 1], y[0], y[1] /.%dargestellt, welches die Funktion basierend auf Interpolation beinhaltet.
Der Gebrauch der Ersetzungsregel liefert den Funktionswert an bestimmten Punkten
www.imms.de 21.04.2008
Einführung in Mathematica 43
bestimmten Punkten.
23. On-Line Hilfe23. On Line Hilfe
Mathematica’s Help Browser wirdMathematica s Help Browser wird mit SHIFT - F1 gestartet. Ein gesuchtes Schlüsselwort liefert die benötigten Informationen inklusive B i i l d Li k dtBeispiele und Links zu verwandten Funktionen.
Alternativ, kann man ??command im
In[1] =??Det
Det[m] gives the determinant of the square matrix m.
Mathematica Notebook schreiben.
Attributes[Det] = {Protected}Options[Det] = {Modolus -> 0}
www.imms.de 21.04.2008
Einführung in Mathematica 44