Einführung in Mathematica (4)
|
|
- Marta Lorenz
- vor 6 Jahren
- Abrufe
Transkript
1 Einführung in Mathematica (4) Programmieren mit Mathematica Michael O. Distler, Computer in der Wissenschaft, SS 2012 (Vorlage von L. Tiator) Voreinstellungen Grafik - Initialisierung In[1]:= SetOptions Plot, ListPlot, ParametricPlot, Plot3D, Graphics, BaseStyle 18, FontFamily "Times", Italic ; SetOptions Plot, PlotStyle Thickness ; SetOptions ListPlot, PlotStyle Red, PointSize ; dünne Linien und Punkte : SetOptions Plot, ListPlot, Graphics, BaseStyle Medium, FontFamily "Times" ; SetOptions Plot, PlotStyle Thickness ; SetOptions ListPlot, PlotStyle Red, PointSize ; andere mögliche Fonts : BaseStyle 18, FontFamily "Helvetica" BaseStyle Large, FontFamily "Helvetica", Italic, Bold selbstdefinierte globale Funktionen für selbstdefinierte Funktionen etc. eignet sich die Cell-Option : Cell Properties: Initialization Cell solche Zellen können auch an beliebigen Stellen der Datei stehen und werden nach dem Laden der Datei beim ersten Ausführen einer Zelle direkt gestartet In[4]:= RootPlot sol_, opts : OptionsPattern ListPlot : Module, CellPrint ExpressionCell N sol, "Output" ; ListPlot Tooltip Re, Im & N x. sol, opts, AspectRatio Automatic, PlotStyle Red, PointSize.02
2 2 Mathematica_4.nb In[5]:= ComplexNumberPlot list_, opts : OptionsPattern ListPlot : Module, ListPlot Tooltip Re, Im & N list, opts, AspectRatio Automatic, PlotStyle Red, PointSize.02 Definition von Funktionen und Prozeduren Prozeduren im herkömmlichen Sinne einer prozeduralen Sprache gibt es nicht. Letztlich sind alle Definitionen gewöhnliche Regeln. Die syntaktische Ähnlichkeit mit Prozeduren ist allerdings beabsichtigt. Typische Definition einer Funktion In[19]:= f1 x_ : x 2 1 In[20]:= f1 a b Out[20]= 1 a b 2 Typische Definition einer Prozedur mit dem Befehl: Module[...] In[21]:= Polardiagramm r_, phi_, phi0_, phi1_ : Module x, y, x r Cos phi ; y r Sin phi ; ParametricPlot x, y, phi, phi0, phi1, AspectRatio Automatic
3 Mathematica_4.nb 3 In[22]:= Polardiagramm 1 Sin phi, phi, 0, 2 Π 1.5 Out[22]= In[23]:= Polardiagramm 1 Sin 5 phi, phi, 0, 2 Π Out[23]= diese neue Funktion Polardiagramm tut das gleiche wie die Mathematica-Funktion PolarPlot Bedingte Anweisungen If[...] und Switch[...] sind ähnlich wie in C. Anstelle einer Kette von if..then..else..if.. kann man Which[...] verwenden.
4 4 Mathematica_4.nb If In[24]:= func1 x_ : If x 0, 1 x, oder die sphärische Besselfunktion j 0 x In[25]:= j0 x_ : If x 0, Sin x, 1 x In[26]:= Table func1 x, x, 2, 2 Table j0 x, x, 2, 2 Out[26]= 1 2, 1,, 1, 1 2 Out[27]= Sin 2 2, Sin 1, 1, Sin 1, Sin 2 2 Switch In[28]:= func2 n_ : Switch n, 0, f0 x, 1, f1 x, _, def x mit Map[...] bzw. /@ kann man verschiedene Werte der Funktion berechnen: In[29]:= func2 1, n, m, 0, 1, 2, x Out[29]= def x, def x, def x, f0 x, 1 x 2, def x, def x Which In[30]:= vorzeichen x_ : Which x 0, 1, x 0, 0, x 0, 1 In[31]:= vorzeichen 5.5, 0, a Out[31]= 1, 0, Which a 0, 1, a 0, 0, a 0, 1 Select und Cases Zum Auswählen aus einer Liste gibt es Select[...] und Cases[...]. In[32]:= Select 1, 2, 3, 4, 5, 6, 7, 8, 9, PrimeQ Out[32]= 2, 3, 5, 7
5 Mathematica_4.nb 5 oder z. B. die geraden und ungeraden Zahlen mit EvenQ und OddQ In[33]:= Select 1, 2, 3, 4, 5, 6, 7, 8, 9, EvenQ Out[33]= 2, 4, 6, 8 In[34]:= Cases f 1, g 2, f s, f 2.5, f _Integer Out[34]= f 1 Schleifen mit Do und For For[...] ist wie in C. Sollte aber in Mathematica vermieden werden. In[35]:= s 0; For i 1, i 10, i, s s i 2 s Out[37]= 385 Meist genügt eine einfache Do[...] - Schleife. In[38]:= s 0; Do s s i 2, i, 1, 10 s Out[40]= 385 Sowohl bei For als auch bei Do ergeben die Funktionen kein direktes Ergebnis. Man kann dies aber mit einem Print Befehl erreichen, z.b. In[41]:= s 0; Do s s i 2 ; Print s, i, 1,
6 6 Mathematica_4.nb was ist im nächsten Beispiel verkehrt? In[43]:= s 0; Do s s i 2 ; Print "i,s ", i, s, i, 1, 10 i,s 11 i,s 25 i,s 314 i,s 430 i,s 555 i,s 691 i,s 7140 i,s 8204 i,s 9285 i,s In vielen Fällen kann auch strukturierte Iteration verwendet werden. z.b. Sum[f, {i, imin, imax}] In[45]:= 10 i 2 i 1 Out[45]= 385 oder Product[f, {i, imin, imax}] In[46]:= 5 i i 1 Out[46]= 120
7 Mathematica_4.nb 7 Beispiel: Energieniveaus in der QM im 1-dim. Potentialtopf In[47]:= ListPlot 5, 0, 2, 0, 2, 800, 2, 800, 2, 0, 5, 0, Joined True, PlotStyle Red, Thickness 0.01`, AxesOrigin 5, 0, AxesLabel "x", "Potential V x " Potential V x Out[47]= Mit Stetigkeitsbedingungen der 1. und 2. Ableitung an den Rändern des Topfes findet man nach einiger Rechnung 2 transzendente Gleichungen für symmetrische und antisymmetrische Lösungen Cos(k x) und Sin(k x) Suche nach Lösungen der transzendenten Gleichungen: x tan(x) = r 2 x 2 und x cot(x) = - r 2 x 2 In[48]:= r 7.244; U0 800 ev; f1 x_ : r 2 x 2 ; g1 x_ : x Tan x ; u1 x_ : x Cot x ; xs1 1., 4., 7. ; xs2 2., 5. ; En ; In[53]:= Plot f1 x, g1 x, u1 x, x, 0, r 10 Out[53]=
8 8 Mathematica_4.nb In[54]:= Out[54]= Plot f1 x, g1 x, u1 x, x, 0, r, PlotStyle Black, Red, Blue, PlotRange 1, In[55]:= Do x1 FindRoot g1 x f1 x, x, xs1 i ; e1 U0 z r 2. z x1 1, 2 ; AppendTo En, e1 ; If i 3, x2 FindRoot u1 x f1 x, x, xs2 i ; e2 U0 z r 2. z x2 1, 2 ; AppendTo En, e2, i, 1, 3 In[56]:= Column En Out[56]= ev ev ev ev ev
9 Mathematica_4.nb 9 In[57]:= energy Table En i, i, Length En ; ev Plot Evaluate energy, x, 0, 1, PlotStyle Red, Thickness 0.01`, Ticks None, Automatic, AspectRatio 1.3`, AxesLabel " ", "E in ev" E in ev Out[58]= Achtung: Wenn die Plotvariable eine Liste ist, muss Evaluate verwendet werden. Dies liegt am HoldAll Attribut der Plot-Funktion. Stückweise definierte Funktionen mit If Switch oder Which für einfache Beispiele kann man If[...], Switch[...] oder Which[...] verwenden In[59]:= p1 x_ : Sin x ; p2 x_ : x; p x_ : If x 0, p1 x, p2 x
10 10 Mathematica_4.nb In[61]:= Plot p x, p x, p x, x, 5, 2, PlotStyle Black, Red, Blue Out[61]= In[62]:= Integrate p x, x, 5, 5 Out[62]= 23 Cos 5 2 In[63]:= p' x Out[63]= If x 0, p1 x, p2 x In[64]:= p' x Evaluate Out[64]= If x 0, p1 x, p2 x mit Piecewise am besten und allgemeinsten benutzt man dafür die Funktion Piecewise[...] In[65]:= q x_ Piecewise p1 x, x 0, p2 x, x 0 Out[65]= Sin x x 0 x x 0 0 True im Falle, dass alle explizit angegebenen Bedingungen "False" sind, wird der letzte Wert 0 ausgegeben. Diese Darstellung kann auch bei der Eingabe mit Esc und Strg über die Tastatur erreicht werden: erst "Esc pw Esc" dann "Strg,", dann weiter mit "Tab" und für weitere Zeilen "Strg Return"
11 Mathematica_4.nb 11 In[66]:= q x_ Piecewise p1 x, x 0, p2 x, 0 x 2, 2 2 x, x 2 Out[66]= Sin x x 0 x 0 x x x 2 0 True In[67]:= q' x Out[67]= Cos x x 0 1 x 0 0 x x x 2 Indeterminate True In[68]:= Plot q x, q x, q x, x, 5, 4, PlotStyle Black, Red, Blue, Exclusions None 1 Out[68]= In[69]:= Integrate q x, x, 5, 5 Out[69]= Cos 5 3 im Gegensatz zur vereinfachten Definition mit If[...] etc, wird die Piecewise[...] Konstruktion in Mathematica weitgehend auch mit anderen Funktionen wie D[...], Integrate[...], Limit[...], DSolve[...] unterstützt Funktionale Operationen Map In[70]:= Remove f, a, b Map[f, expr], oder f /@ expr wendet die Funktion f auf alle Elemente von expr an.
12 12 Mathematica_4.nb In[71]:= Map f, 1, 2, 3 Out[71]= f 1, f 2, f 3 In[72]:= f a, b, c Out[72]= f a, f b, f c In[73]:= Sin a, b, c Out[73]= Sin a, Sin b, Sin c für Funktionen mit dem Attribut "Listable" geht dies auch einfacher In[74]:= Sin a, b, c Out[74]= Sin a, Sin b, Sin c In[75]:=?? Sin Sin z gives the sine of z. Attributes Sin Listable, NumericFunction, Protected Map ist dagegen allgemeiner, z.b. auch In[76]:= Sin x y Out[76]= Sin x Sin y Apply Apply[f, expr] oder expr ersetzt den Kopf von expr durch f. In[77]:= Apply f, 1, 2, 3 Out[77]= f 1, 2, 3 In[78]:= f a, b Out[78]= f a, b In[79]:= mittel l_list : Plus l Length l
13 Mathematica_4.nb 13 In[80]:= mittel 1, 2, 3, 4, 5, 6 Out[80]= 7 2 In[81]:= mittel c, d Out[81]= c d 2 Scan Scan[f, expr] wendet f auf jedes Element in expr an. Scan gibt jedoch keinen Wert zurück In[82]:= Scan f, 1, 2, 3 Jedoch kann man es sehr gut mit Print anwenden, da Print seinen eigenen Output erzeugt. In[83]:= Scan Print, 1, 2, In[84]:= Scan Print ^2 &, 2, 3, Through Through[{f,g,h} [x,y]] wendet eine Liste von Funktionen auf das gleiche Argument an. (Für weitere Anwendungen, siehe Online Help) In[85]:= Through f, g, h x, y Out[85]= f x, y, g x, y, h x, y In[86]:= Through Sin, Cos, Tan x Out[86]= Sin x, Cos x, Tan x Beispiel: Minimum, Maximum und Dimension einer Liste In[87]:= liste 2, 1, 6, 4, 0, 3 ;
14 14 Mathematica_4.nb In[88]:= min, max, n0 Through Min, Max, Length liste Out[88]= 6, 4, 6 Nest In[89]:= Nest f, x, 5 Out[89]= f f f f f x In[90]:= Nest &, x, 5 Out[90]= x NestList erzeugt eine Liste mit allen Unterelementen von Nest In[91]:= NestList f, x, 3 Out[91]= x, f x, f f x, f f f x FixedPoint Fixpunkt Berechnung In[92]:= FixedPoint g, expr, 10 Out[92]= g g g g g g g g g g expr In[93]:= FixedPoint Cos, 0.1 Out[93]= FixedPointList gibt alle Einzelschritte als Liste an In[94]:= FixedPointList Cos, 0.1 Out[94]= 0.1, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
15 Mathematica_4.nb 15 In[95]:= ListPlot, PlotStyle Red, PointSize Out[95]= Fixpunkte der Logistischen Abbildung x n 1 4 x n a x n, für a 0, 1 In[96]:= a 0.7; FixedPointList 4 a &, 0.2, 1000 ; In[97]:= ListPlot, PlotRange 0, 1, PlotStyle Red, PointSize Out[97]= In[98]:= a 0.8`; FixedPointList 4 1 a 1 &, 0.2`, 1000 ; ListPlot, PlotRange 0, 1, PlotStyle Red, PointSize Out[99]=
16 16 Mathematica_4.nb a = 0.998`; FixedPointList@4 ð1 Ha - ð1l &, 0.2, D; ListPlot@%, PlotRange 80, 1<, PlotStyle 8Red, PointSize@0.005D<D In[100]:= Out[101]= Fold In[102]:= Clear@a, b, cd In[103]:= Fold@g, x, 8a, b, c<d Out[103]= g@g@g@x, ad, bd, cd Beispiel für das Produkt Fold@Times, 1, 82, 3, 4, 5, 6<D In[104]:= Out[104]= 720 Beispiel für das Hornersche Schema Fold@ð1 x + ð2 &, 0, 8a, b, c, d, e<d In[105]:= Out[105]= e + x Hd + x Hc + x Hb + a xlll FoldList erzeugt eine Liste mit allen Unterelementen von Fold, wie auch bei NestList FoldList@g, x, 8a, b, c<d In[106]:= Out[106]= 8x, g@x, ad, g@g@x, ad, bd, g@g@g@x, ad, bd, cd< Thread Mit Thread[...] (thread = einfädeln, durchfädeln) lassen sich Listen umgruppieren, bzw. umsortieren.
17 Mathematica_4.nb 17 In[107]:= Thread k 1, 2, 3, a, b, c Out[107]= k 1, a, k 2, b, k 3, c In[108]:= Thread a, b, c 1, 2, 3 Out[108]= a 1, b 2, c 3 Beispiel mit Vektoren, z.b. bei Bewegungsgleichungen im 3-dimensionalen Raum In[109]:= F m x t, y t, z t Out[109]= m x t, m y t, m z t In[110]:= fr k0 Cos Α, 0, Sin Α Γ x t, 0, 0 Out[110]= k0 Cos Α Γ x t, 0, k0 Sin Α In[111]:= Thread F fr Out[111]= m x t k0 Cos Α Γ x t, m y t 0, m z t k0 Sin Α In[112]:= DSolve, x t, y t, z t, t Out[112]= x t t Γ m m C 1 k0 t Cos Α C 2, Γ Γ y t C 3 t C 4, z t C 5 t C 6 k0 t2 Sin Α 2 m Compile Compiled Functions sind rein numerische Funktionen, die sehr viel schneller als normale Funktionen evaluiert werden können. 1. Beispiel ohne Compile In[113]:= logistic1 n_integer : Module f, t, x, f x_, t_ Evaluate 3 t n x 1 x ; FoldList f, 0.223, Range n In[114]:= logistic ; Timing Out[114]= 4.906, Null 2. Beispiel mit Compile
18 18 Mathematica_4.nb logistic2an_integere := In[115]:= ModuleB8f, t, x<, f = CompileB8x, t<, EvaluateB 3 + t n x H1 - xlff; FoldList@f, 0.223, Range@nDDF logistic2@ D; Timing In[116]:= Out[116]= , Null< ListPlot@logistic2@ D, PlotStyle 8Red, PointSize@0.0025D<, ImageSize 500D In[117]:= Out[117]= logistic2@5d In[118]:= Out[118]= , , , , , < Logistic Map als Funktion des Parameters Μ : f Hx; ΜL = Μ xh1 - xl hier: Ausschnitt von Μ Î (3, 4]
19 Mathematica_4.nb 19 logistican_integere := ModuleB8f, t, x, list<, In[119]:= f = CompileB8x, t<, EvaluateB 3 + t n x H1 - xlff; Transpose@83 + Range@0, 1, 1 nd, FoldList@f, 0.223, Range@nDD<DF ListPlot@logistic@ D, PlotStyle 8Red, PointSize@0.0025D<, AxesLabel 8"Μ", "x "<, ImageSize 500D x Out[120]= Μ Eigene Operatoren definieren z.b. CirclePlus Eine Reihe von Operatoren wie CirclePlus Å, CircleTimes Ä, SmallCircle ë, Del Ñ, Square und weitere haben in Mathematica keine vorgegebene Bedeutung. Sie können daher für eigene Zwecke definiert werden, z.b. Å ("Esc c+ Esc") für die relativistische Geschwindigkeitsaddition In[121]:= CirclePlusAa_, b_e := In[122]:= v1 Å v2 v1 + v2 Out[122]= 1 + v1 v2 a + b 1 + a*b
20 20 Mathematica_4.nb In[123]:= Out[123]= In[124]:= Out[124]= 0.8 In[125]:= 1 1 Out[125]= 1 Erweiterung der Operation auf beliebig viele Elemente In[126]:= v1 v2 v3 v4 Out[126]= v1 v2 v3 v4 Man beachte den 2-fachen Underscore, dieser steht für ein oder mehrere Elemente. Er wird bei der Eingabe zu einem längeren Strich zusammengezogen. In[127]:= CirclePlus a_, b_, c : CirclePlus a, CirclePlus b, c Together In[128]:= v1 v2 v3 v4 Out[128]= v1 v2 v3 v1 v2 v3 v4 v1 v2 v4 v1 v3 v4 v2 v3 v4 1 v1 v2 v1 v3 v2 v3 v1 v4 v2 v4 v3 v4 v1 v2 v3 v4 In[129]:= Out[129]= In[130]:=? CirclePlus CirclePlus x, y, displays as x y. Prozedurale Strukturen: Module und Block einfache Strukturen Die einfachste prozedurale Struktur ist eine Folge von Ausdrücken mit Semikolon getrennt. Dabei wird das letzte Resultat, das ohne Semikolon geschrieben ist als Ergebnis ausgegeben :
21 Mathematica_4.nb 21 In[131]:= r 3; s Sqrt 4 r; r^2 s^2 Out[131]= 34 im folgenden Beispiel werden mit einer runden Klammer 2 Funktionen miteinander zu einer einfachen Prozedur verbunden: In[132]:= func y_ : Print "Das Argument der Funktion ist: ", y ; Plot Sin x y, x, 0, 2 Π In[133]:= func 5 Das Argument der Funktion ist: Out[133]= Module und Block Für Prozeduren mit lokalen Variablen verwendet man am besten Module[...] oder Block[...] Module[{x,y,...}, expr] Block[{x,y,...}, expr] wobei "expr" wieder eine beliebige Folge von Ausdrücken sein kann, die mit Semikolon getrennt werden. Sie bieten die Möglichkeit, mit lokalen Variablen x,y,... zu arbeiten, die außerhalb des Befehls nicht definiert sind, bzw. andere Werte besitzen können. Dadurch wird die Programmierung übersichtlicher und weniger fehleranfällig. Darüber hinaus können mit expr. verschiedene Befehle zusammengefasst werden. Die beiden Befehle unterscheiden sich nur darin, dass bei Module auch die Namen lokal sind, während die Namen bei Block global sind, die Werte sind in beiden Fällen immer lokal. In[134]:= Remove s, u In[135]:= u : s 2 1 ohne lokale Variable verhalten sich beide genau gleich
22 22 Mathematica_4.nb In[136]:= Module, u Out[136]= 1 s 2 In[137]:= Block, u Out[137]= 1 s 2 setzt man u als lokale Variable, dann sind die Ergebnisse sehr verschieden: In[138]:= Module u, u Out[138]= u$1320 im ersten Fall erscheint nur eine interne Variable u$xxxx, die sich bei jedem weiteren Aufruf verändert In[139]:= Block u, u Out[139]= 1 s 2 im zweiten Fall erscheint die globale Variable u 1 s 2 jedoch besteht der Sinn dieser prozeduralen Strukturen gerade darin, lokale Variable zu definieren, die außerhalb keine Gültigkeit haben. Darin unterscheiden sich dann Module und Block: In[140]:= Block s 1, u Out[140]= 2 In[141]:= Module s 1, u Out[141]= 1 s 2 im zweiten Beispiel unterscheidet Mathematica zwischen der äußeren und inneren Variablen s In[142]:= Module s 1, u s Out[142]= 2 s 2 Am besten verwendet man nur Variable und Parameter, die innerhalb des Moduls bzw. in einer Funktionsdefinition explizit aufgeführt werden: In[143]:= fm u_ : Module s 1, u s In[144]:= fm a Out[144]= 1 a
23 Mathematica_4.nb 23 In[145]:= fb u_ : Block s 1, u s In[146]:= fb a Out[146]= 1 a oder In[147]:= Module u, s 1, u : 1 s 2 ; u s Out[147]= 3 In[148]:= Block u, s 1, u : 1 s 2 ; u s Out[148]= 3 tückisches Beispiel innerhalb von Manipulate In[149]:= Manipulate Module g 9.81, l 1, eq1, lsg1, x, x0, x1, t, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; Plot x1 t, t, 0, tmax, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v Out[149]=
24 24 Mathematica_4.nb In[150]:= Manipulate Block g 9.81, l 1, eq1, lsg1, x, x0, x1, t, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; Plot x1 t, t, 0, tmax, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v Out[150]= das Problem hängt mit der Regelanwedung: x1 t_ x t. lsg1 zusammen In[151]:= Manipulate Module g 9.81, l 1, eq1, lsg1, x, x1, t, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; x t, lsg1, x1 t ColumnForm, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v0 4 Out[151]= x$1441 t$1441 x$1441 t$1441 InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0 x$1441 t$1441
25 Mathematica_4.nb 25 In[152]:= Manipulate Block g 9.81, l 1, eq1, lsg1, x, x1, t, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; x t, lsg1, x1 t ColumnForm, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v0 4 Out[152]= x t x t InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0., InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0., , 0 dies lässt sich zwar vermeiden, wenn man bei der Ersetzung globale Variable verwendet In[153]:= Manipulate Module g 9.81, l 1, eq1, x1, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; x t, lsg1, x1 t ColumnForm, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v0 4 Out[153]= x t x t InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0., InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0., , 0 Im nächsten Fall landet man aber in einer Endlosschleife, bei der Mathematica die CPU auf 100% hoch fährt. Eine Funktion, die innerhalb von Manipulate definiert wird, muss immer lokal sein!
26 26 Mathematica_4.nb In[154]:= Manipulate Module g 9.81, l 1, eq1, eq1 l x'' t g Sin x t 0, x 0 0, x' 0 v0 ; lsg1 NDSolve eq1, x t, x' t, t, 0, tmax Flatten; x1 t_ x t. lsg1; x t, lsg1, x1 t ColumnForm, v0, 4, 0, 10, Appearance "Labeled", tmax, 10, 1, 100 tmax v0 4 Out[154]= x t x t InterpolatingFunction 0., 10., 3, 11, 2, 369, 4, 0, 0, 0, 0, 0., x t an dieser Stelle muss man manuell stoppen, z.b. mit Quit In[155]:= Quit aber gerade bei Manipulate ist es sicherer, lokale Variable zu verwenden, daher sollte man in solchen Fällen besser Block[...] statt Module[...] benutzen. Beispiel: Kurvendiskussion (ohne lokale Variable) In[6]:= kd f_, a_, b_ : Module, Print "Die 1. Ableitung ist : ", f x ; Print "Die 2. Ableitung ist : ", f x ; Print "Die 3. Ableitung ist : ", f 3 x ; Print "Die Nullstellen sind : ", Solve f x 0, x ; Print "Die Stellen mit f' x 0 sind : ", Solve f x 0, x ; Print "Die Stellen mit f'' x 0 sind : ", Solve f x 0, x ; Print "Die Stammfunktion von f ist : ", f x x ; Plot f x, x, a, b In[7]:= f x_ : x 3 x In[8]:= kd f, 3, 3
27 Mathematica_4.nb 27 Die 1. Ableitung ist : 1 3 x 2 Die 2. Ableitung ist : 6 x Die 3. Ableitung ist : 6 Die Nullstellen sind : x 1, x 0, x 1 Die Stellen mit f' x 0 sind : x 1 3, x 1 3 Die Stellen mit f'' x 0 sind : x 0 Die Stammfunktion von f ist : x x4 4 Out[8]= Aufruf mit einer namenlosen "pure function" kd 2 2 &, 3, 3
28 28 Mathematica_4.nb 2 x2 Die 1. Ableitung ist : 2 x 2 Die 2. Ableitung ist : 2 x 2 2 x 2 Die 3. Ableitung ist : 6 x x 2 Die Nullstellen sind : x 2, x 2 Die Stellen mit f' x 0 sind : x 2, x 2 x 3 x 4 Die Stellen mit f'' x 0 sind : Die Stammfunktion von f ist : x2 2 Log x Beispiel: Prozedur zur Erzeugung einer Kurvenschar (mit lokalen Variablen) ampl v0_, tmin_, tmax_, color_ : Block x, t, res, lsg, res NDSolve x t x t 0, x 0 0, x 0 v0, x t, t, tmin, tmax ; lsg res; Plot x t. lsg, t, tmin, tmax, PlotStyle color a 1 ampl 0.5, 0, 10, Red ; a 1 ampl 0.5, 0, 10, Red ; a 2 ampl 1.0, 0, 10, Blue ; a 3 ampl 3.0, 0, 10, Green ;
29 Mathematica_4.nb 29 Show Table a i, i, 1, Regeln und Rekursionen Anwendung von Regeln Die grundlegende Arbeitsweise des Evaluators besteht darin, für den zu evaluierenden Ausdruck Regeln zu finden, deren linke Seite anwendbar ist. Dies geschieht auf Verlangen bei der Substitution... In[9]:= term. term neu Out[9]= neu In[10]:= h x, y, z. y alpha Out[10]= h x, alpha, z rekursive Regel, z.b. für Fakultät In[11]:= fac 5. fac 0 1, fac n_ n fac n 1 Out[11]= 5 fac 4 mit //. wird die Regel beliebig häufig angewandt, bis alles aufgelöst ist fac 5. fac 0 1, fac n_ n fac n das nächste Beispiel lässt sich aber auch nach beliebiger Anzahl nicht auflösen, daher ist irgendwann Schluss und es erscheint eine Fehlermeldung
30 30 Mathematica_4.nb fac 5.0. fac 0 1, fac n_ n fac n 1 ReplaceRepeated::rrlim: Exiting after fac 5. scanned times. 0. fac oder automatisch, wenn Regeln global definiert werden. log a_ b_ : log a log b log 2 x y 2 log 2 log x log y 2 log a_ n_ : n log a log 2 log x 2 log y Rekursionen Fibonacci Reihe Fibonacci The F n satisfy the recurrence relation F n F n 1 F n 2 with F 1 F 2 1. f n_ : f n 1 f n 2 f 1 f 2 1; f 3 2 f f 20 Timing 0., 6765
31 Mathematica_4.nb 31 f 30 Timing 1.437, f 32 Timing 3.875, Rekursive Funktionen mit "Gedächtnis" im vorigen Fall steigen die Rechenzeiten mit wachsendem n enorm an, im nächsten Fall merkt man kaum eine Verzögerung g n_ : g n g n 1 g n 2 g 1 g 2 1; g 3 2 g 20 Timing 0., 6765 g 30 Timing 0., g 100 Timing 0., Mustererkennen versciedene Muster (Pattern) Ein Muster (Pattern) ist ein Ausdruck, der besondere Musterobjekte enthalten kann. Das Musterobjekt Blank[ ] oder _ steht für beliebige Ausdrücke. Blank[h] passt auf einen Ausdruck mit Kopf h. BlankSequence[ ] und BlankNullSequence[ ] passen auf Folgen von Ausdrücken
32 32 Mathematica_4.nb expr expr expr _. _ : a symb_ symb_expr symb symb expr symb symb expr symb_. FullForm _ Blank FullForm BlankSequence FullForm BlankNullSequence FullForm symb expr Pattern symb, BlankNullSequence expr FullForm _. Optional Blank Grundlegende Beispiele Remove f, a, b Zur Illustrierung werden wir jeweils die Muster in einer Regel verwenden. Die Leerstelle _ steht für irgend etwas, aber nur ein einzelnes Symbol oder eine Zahl, keine leere Menge
33 Mathematica_4.nb 33 f x, f y, h z, f x, y, f x, y, z, f. f _ uu uu, uu, h z, f x, y, f x, y, z, f Der für die Leerstelle eingesetzte Ausdruck erhält den Namen t, der dann auf der rechten Seite verwendet wird. Standardfall bei Funktionsdefinitionen, wie oben nur wenn es passt, dann erhält es den Namen t f x, f y, h z, f x, y, f x, y, z, f. f t_ t x, y, h z, f x, y, f x, y, z, f Die doppelte Leerstelle steht für irgendeine Reihe mit ein oder mehreren Elementen f x, f y, h z, f x, y, f x, y, z, f. f uu uu, uu, h z, uu, uu, f Die dreifache Leerstelle steht für irgendeine Reihe mit null oder mehreren Elementen f x, f y, h z, f x, y, f x, y, z, f. f uu uu, uu, h z, uu, uu, uu f x, f y, h z, f x, y, f x, y, z, f. f t t x, y, h z, x, y, x, y, z, Das Muster _:a steht für irgend etwas mit dem Defaultargument a f x, f y, h z, f x, y, f x, y, z, f. f t_: a t 2 x 2, y 2, h z, f x, y, f x, y, z, a 2 Dieses "Muster" passt nur auf sich selbst! Es ist gar kein Muster im eigentlichen Sinn. f x, f y, h z. f x x x, f y, h z Tritt eine Mustervariable zweimal auf, so muss jedes Mal dasselbe ersetzt werden f a, b, f 2, 2, f 3, 3.0. f x_, x_ g x f a, b, g 2, f 3, 3.
34 34 Mathematica_4.nb Mustererkennen für Ausdrücke mit Default-Argument bei einer Summe: x_ y_. ist der Default-Wert y 0 f, f a, f a b, f d c. f x_ y_. p x y f, p a, p a b, p c d bei einem Produkt: x_ y_. ist der Default-Wert y 1 f a, f a b, f b a, f a b c. f x_ y_. p x y p a, p a b, p a b, p a b c ebenso bei einem Exponenten ist der Default-Wert y 1 f a, f a b, f a bc. f x_ y_. p x y p a, p a b, p a bc praktische Beispiele zur Mustererkennung Beispiel 1: vereinfachte Taylorreihe, default: x 0 0 und bis O x 6 PotenzReihe f_, x_: x, x0_: 0, nm_: 6 : Series f, x, x0, nm PotenzReihe Sin x x x3 6 x5 O x PotenzReihe Sin x, x, x x x x x x 1. 6 O x 1. 7 PotenzReihe Sin x, x, 1.0, 3 Normal Expand x x x 3 Beispiel 2: Im ersten Fall passt die Regel nur auf erste Element, im zweiten Fall auf die ersten 3 Elemente
35 Mathematica_4.nb 35 1 x 2 y 2, 1 x 2 y 2, 2 x 2 2 y 2, 2 x 2 y 2. x 2 y 2 : z 2 1 z 2, 1 x 2 y 2, 2 x 2 2 y 2, 2 x 2 y 2 1 x 2 y 2, 1 x 2 y 2, 2 x 2 2 y 2, 2 x 2 y 2. a_. x 2 a_. y 2 a z 2 1 z 2, 1 z 2, 2 z 2, 2 x 2 y 2 Beispiel 3: Wurzel-Regel für positive reelle Zahlen (ähnlich wie PowerExpand) SqrtRules x_ y_ x y, 1 y_ 1 y, x_ y_ x y ; z a b x z b x y a b x z b x y z. SqrtRules a b x z b x y z z a b x z b x y. SqrtRules a y Mustererkennen für Ausdrücke eines Typs: _expr Das Muster Blank[expr], oder _expr, passt nur Ausdrücke mit Kopf expr. expr kann als Datentyp angesehen werden. hier passt nur das 2. Beispiel f a, f 2, f 3.5, f 1 I. f x_integer x 2 f a, 4, f 3.5, f 1
36 36 Mathematica_4.nb hier passt nur das 3. Beispiel f a, f 2, f 3.5, f 1 I. f x_real x 2 f a, f 2, 12.25, f 1 hier passt nur das 4. Beispiel, Complex schließt Real nicht ein f a, f 2, f 3.5, f 1 I. f x_complex x 2 f a, f 2, f 3.5, 2 auch Rational gilt als eigener Zahlen Typ f 2 3, f a, f 2, f 3.5, f 1 I. f x_rational x2 b 4 9, f a, f 2, f 3.5, f 1 b Prädikate im Mustererkennen Ein Muster der Form pattern?test passt nur, falls test[expr] den Wert True ergibt, wobei expr der zu vergleichende Ausdruck ist. Typische Verwendungsweise: f x_integer?positive : x Information "f", LongForm False Global`f f x_integer? Positive : x f 1, f 0, f 1, f I, f 0.5, f 1 I, f 3 1, f 0, f 1, f, f 0.5, f 1, 3 g x_?nonnegative : x g 1, 0, 1, I, 0.5, 1 I, 3 1, 0, g 1, g, , g 1, 3
37 Mathematica_4.nb 37 Nebenbedingungen ; Prädikate werden nur auf eine Mustervariable angewendet. Kompliziertere Bedingungen können auf der rechten Seite der Regel angegeben werden. Die Nebenbedingung wird evaluiert, nachdem ein Ausdruck in das Muster passt. Nur wenn das Resultat True ist, wird die Regel auch angewendet. In[20]:= g x_, y_ : x y ; x y && y 0 In[21]:= g 2, 3, g 3, 3, g 2, 1 Out[21]= 8, g 3, 3, g 2, 1 Testen von Eigenschaften Es gibt in Mathematica eine Reihe von Funktionen zum Testen von Eigenschaften von Ausdrücken. Diese Funktionen haben Namen, die mit Q enden, um anzuzeigenm dass sie eine Frage (Question) stellen. Z.B. IntegerQ, EvenQ, OddQ, PrimeQ, etc In[12]:= IntegerQ 1, 3, 2., a12, 2 3 Out[12]= True, True, False, False, False In[13]:= EvenQ 1, 2, 3, 4, 5.0, 6. Out[13]= False, True, False, True, False, False In[14]:= PrimeQ 1, 2, 3, 129, 1001 Out[14]= False, True, True, False, False eine mögliche Anwendung, um sicher zustellen, dass in einer Rechnung eine Integerzahl gerade ist In[15]:= even n_ : If OddQ n, n 1, n In[16]:= even 1, 2, 3, 4, 5 Out[16]= 2, 2, 4, 4, 6 in diesem Beispiel werden die Elemente auf ein Muster getestet und alle erfolgreichen Tests gezählt In[17]:= RandomInteger 1, 100, 10 Out[17]= 57, 52, 98, 84, 23, 91, 24, 2, 52, 78
38 38 Mathematica_4.nb In[18]:= Count, _?EvenQ Out[18]= 7 In[19]:= Count, _?PrimeQ Out[19]= 2
Einführung in Mathematica (6)
Einführung in Mathematica (6) Programmieren mit Mathematica Michael O. Distler, Computer in der Wissenschaft, SS 2010 (Vorlage von L. Tiator) Voreinstellungen Grafik - Initialisierung SetOptions Plot,
MehrEinführung in Mathematica
Einführung in Mathematica Carsten Rezny Institut für Angewandte Mathematik Universität Bonn Pure Funktionen Das vorige Beispiel verwendet eine neue Schreibweise. Das erste Argument von Map oder Apply ist
MehrEine Kurzanleitung zu Mathematica
MOSES Projekt, GL, Juni 2003 Eine Kurzanleitung zu Mathematica Wir geben im Folgenden eine sehr kurze Einführung in die Möglichkeiten, die das Computer Algebra System Mathematica bietet. Diese Datei selbst
Mehr2 Mathematica_2.nb. Hier ist ein einfacher 2-dim Plot, bei dem alle notwendigen Einstellungen, wie Achsenskalierungen automatisch vorgenommen werden:
Einführung in Mathematica (2) Grafik und Manipulate Michael O. Distler, Computer in der Wissenschaft, SS 200 (Vorlage von L. Tiator) Grafik - Initialisierung SetOptions Plot, ListPlot, ParametricPlot,
MehrEinführung in Mathematica
Einführung in Mathematica Carsten Rezny Institut für Angewandte Mathematik, Universität Bonn Einstieg Mathematica ist eine mathematische Allzweck-Software, die vor allem für ihre Stärken im Umgang mit
MehrEinführung in MATHEMATICA
Einführung in MATHEMATICA Prof. Dr. Georg Reents Institut für Theoretische Physik und Astrophysik der Universität Würzburg Inhaltsverzeichnis. Simple Arithmetik........................................................
MehrFortgeschrittene Konzepte
advanced.nb 1 Fortgeschrittene Konzepte Funktionen und Optionen Optionen in eigenen Funktionsdefinitionen ClearAll"Global " Sin2x Sin3x PlotSinx,,,x, 0, 2Π 2 3 1.0 0.5 1 2 3 4 5 6 0.5 1.0 advanced.nb 2
MehrUmformung und Vereinfachung mathematischer Ausdrücke
vereinfachung.nb Umformung und Vereinfachung mathematischer Ausdrücke Die Simplifikationsproblematik ClearAll "Global " Was Sie erwarten können Simplify 576 86 60 9 3 8 5 3 3 Simplify 3 3 Epand Simplify
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrFACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
MehrC.3 Funktionen und Prozeduren
C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrAlgorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration
Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrGewöhnliche Differentialgleichungen (ODEs) I
Gewöhnliche Differentialgleichungen (ODEs) I Autor: Harald Höller letzte Änderung: 17.03.10 Lizenz: Creative Commons Lizenz by-nc-sa 3.0 at Differentialgleichungen lösen und plotten in Mathematica Grundlegendes
MehrMaterialien zur Einführung in Computeralgebrasysteme I (Mathematica)
Materialien zur Einführung in Computeralgebrasysteme I (Mathematica) Ralf Schaper Wintersemester 009 / 0 Einleitung Mathematica wird von seinen Autoren und Herstellern bei Wolfram Research Inc. bezeichnet
MehrEinstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
MehrEinführung in Mathematica
Einführung in Mathematica Grundlegendes Ausführen von Befehlen 4 5 3 6 7^2 700 63 00 Symbolisches Rechnen 2a 5a 490, 469, 532 a b a b 50325, 234632, 6545 Expanda ba b 50325, 234632, 6545 Simplifya^2 2abb^2
MehrEinführung in Mathematica (5)
Einführung in Mathematica (5) Datenmanipulation, Interpolation und Fit Michael O. Distler, Computer in der Wissenschaft, SS 2010 (Vorlage von L. Tiator) Voreinstellungen Grafik - Initialisierung In[8]:=
MehrHier finden Sie die Vorlesungs-Unterlagen sowie die Übungsbeispiele zum Teil (2): Mathematica
. Einführung in Mathematica Die Vorlesung / Übung Programmieren in der Physik: C++ und Mathematica (PHY.A70 und PHY.A80) gliedert sich inhaltlich in Teile: () Programmieren mit C++ () Programmieren mit
MehrJava: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
Mehr2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.
2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int
MehrMögliche Prüfungsfragen zu VO Mathematische Software
Mögliche Prüfungsfragen zu VO Mathematische Software SS 2009 Der Prüfungsstoff umfasst alles, was in der Vorlesung vorgetragen wurde. Die folgende Liste soll Ihnen bei der Vorbereitung helfen. Bei der
MehrAufgabe1 EStrich ist Lennard Jones Potential mit Exponentialfunktion
Aufgabe EStrich ist Lennard Jones Potential mit Exponentialfunktion Ansatz: Exponentialfunktion mit 3 Variablen einführen: a: Amplitude b:stauchung c:verschiebung_entlang_x_achse EStrich r_, ro_, _ : a
MehrFunktionen in Python
Funktionen in Python Prof. Dr. Rüdiger Weis Beuth Hochschule für Technik Berlin 1 / 31 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente
MehrCrashkurs Python und Sage U23 Krypto-Mission
Crashkurs Python und Sage -Mission florob Simon e.v. http://koeln.ccc.de 4. Oktober 2015 Anfang Übersicht Sage Computer-Algebra-System, wie MatLab oder Mathematica sagemath.org Python interpretierte Programmiersprache
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
MehrVisual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!
Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist
MehrDie wichtigsten mathematischen Notationen sind mittels Tastenkombination mit Strg zu bewerkstelligen.
Advanced Mathematica Zusatzbemerkungen zu "Einführung in das Arbeiten mit Mathematica 6 & 7" Autor: Thomas Auzinger Email: tomuz2@gm.at Version: 1.00 Letzte Änderung: 01.04.09 Lizenz: Creative Commons
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrFunktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008
Funktionen in Matlab Vorlesung Computergestützte Mathematik zur Linearen Algebra Lehrstuhl für Angewandte Mathematik Sommersemester 2008 15. und 29. Mai 2008 Funktionen in Matlab Wir kennen schon diverse
MehrWertebereich und Genauigkeit der Zahlendarstellung
Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
MehrDatenanalyse in der Physik. Übung 1. Übungen zu C und MAPLE
Datenanalyse in der Physik Übung 1 Übungen zu C und MAPLE Prof. J. Mnich joachim.mnich@desy.de DESY und Universität Hamburg Datenanalyse in der Physik Übung 1 p. 1 Bemerkungen zu den Übungen Schulungsaccounts
MehrMathematica Kompaktkurs
Mathematica Kompaktkurs Inhaltsübersicht. Einführung 2. Arithmetik 3. Fortgeschrittene Anwendungen 4. Analysis 5. Lösen von Gleichungen 6. Lineare Algebra 7. Grafik 8. Einige vollständige Beispiele. Einführung
MehrCrashkurs Haskell Mentoring WiSe 2016/17. Anja Wolffgramm Freie Universität Berlin
Crashkurs Haskell Mentoring WiSe 2016/17 Anja Wolffgramm Freie Universität Berlin 02/11/2016 , Inhalt Kommandozeile Haskell installieren & starten Ein 1. Haskell-Programm Funktionsdefinition Primitive
Mehr7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
MehrModul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2
Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrVorsicht bei redundanten und unvollständigen Matches!
Vorsicht bei redundanten und unvollständigen Matches! # let n = 7;; val n : int = 7 # match n with 0 -> "null";; Warning: this pattern-matching is not exhaustive. Here is an example of a value that is
MehrTeil 4: Rekursion und Listen
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 4: Rekursion und Listen Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln,
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrMathematica. H. Todt, M. Wendt (UP) Computational Physics - Einführung WiSe 2014/15 1 / 32
Mathematica H. Todt, M. Wendt (UP) Computational Physics - Einführung WiSe 2014/15 1 / 32 Mathematica I Mathematica ist ein Mathematik-Programm zum numerischen und symbolischen Lösen von Gleichungen Gleichungssystemen
MehrZahlen in Haskell Kapitel 3
Einführung in die Funktionale Programmiersprache Haskell Zahlen in Haskell Kapitel 3 FH Wedel IT-Seminar: WS 2003/04 Dozent: Prof. Dr. Schmidt Autor: Timo Wlecke (wi3309) Vortrag am: 04.11.2003 - Kapitel
MehrProgrammierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
MehrJava 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrAnalysis1-Klausuren in den ET-Studiengängen (Ba) ab 2007
Analysis-Klausuren in den ET-Studiengängen (Ba) ab 7 Im Folgenden finden Sie die Aufgabenstellungen der bisherigen Klausuren Analysis im Bachelorstudium der ET-Studiengänge sowie knapp gehaltene Ergebnisangaben.
MehrEinführung in Mathematica (2)
Einführung in Mathematica () L. Tiator, Physik auf dem Computer, SS 5 Notebook File: Z:\Mathematica_.nb Übersicht über die Grafik-Befehle im Mathematica Kernel D Grafik Plot ParametricPlot ContourPlot
MehrVektor- und Tensorrechnung
Vektor- und Tensorrechnung Levi Civita Symbol (e-tensor) Autor: Harald Höller letzte Änderung: 20.10.08 ε = ε = ε = 1 123 231 312 ε = ε = ε = -1 132 213 321 ü Einige nützliche Beziehungen zwischen e-tensoren
MehrWertetabelle für eine Gleichung
1 Wertetabelle für eine Gleichung Wie läßt sich für eine gegebene Gleichung eine Wertetabelle erstellen? - um die Daten zu exportieren - um die Daten in einem Plot darzustellen Wir betrachten diese SigmaPlot-Funktionen
Mehr10.6. Implizite ebene Kurven und Tangenten
0.6. Implizite ebene Kurven und Tangenten Im Gegensatz zu expliziten Darstellungen sind weder implizite noch Parameterdarstellungen einer Kurve eindeutig. Der Übergang von impliziten zu expliziten Darstellungen
MehrR-Tutorial. R bietet zahlreiche Hilfe-Funktionen an. Informiere Dich über die Funktion log():
Statistik für Bioinformatiker SoSe 2005 R-Tutorial Aufgabe 1: Hilfe. Logge Dich ein. Username und Passwort stehen auf dem Aufkleber am jeweiligen Bildschirm. Öffne eine Shell und starte R mit dem Befehl
MehrWiMa-Praktikum 1. Woche 8
WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und
MehrDie Involutfunktion Inhalt
Die Involutfunktion Inhalt Inhalt...1 Grundlagen... Basic-Programm...3 Programm-Ablaufplan Involut rekursiv...3 Programm Involut rekursiv...4 Programme für CASIO fx-7400g PLUS...5 Involutfunktion...5 Involut
Mehr4. Lösung linearer Gleichungssysteme
4. Lösung linearer Gleichungssysteme a x + : : : + a m x m = b a 2 x + : : : + a 2m x m = b 2 : : : a n x + : : : + a nm x m = b n in Matrix-Form: A~x = ~ b (*) mit A 2 R n;m als Koe zientenmatrix, ~x
MehrMathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016
und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 5. Juni 2016 Definition 5.21 Ist a R, a > 0 und a 1, so bezeichnet man die Umkehrfunktion der Exponentialfunktion x a x als
MehrTag 7. Pattern Matching und eigene Datentypen
Tag 7 Pattern Matching und eigene Datentypen Heute werden wir eine Technik kennenlernen, die dafür sorgt, daß wir sehr viel übersichtlichere und kürzere Programme schreiben können. Als Überleitung auf
MehrVokabelliste FB Mathematik Vokabeln 7./8. Klasse // Vokabeln 9./10. Klasse // Vokabeln Sek II. Mengenbegriffe:
Vokabeln 7./8. Klasse // Vokabeln 9./10. Klasse // Vokabeln Sek II Mathematik Symbol, Definition N N 0 Z Q Z + + Q 0 A = {a 1,, a n } Deutsch Erklärung Mengenbegriffe: natürlichen Zahlen natürlichen Zahlen
MehrRekursive Listenverarbeitung
Rekursive Listenverarbeitung Übersicht Rekursion ist die wichtigste Programmiertechnik in Prolog! Rekursive Datenstrukturen Einfache und rekursiv gebildete Strukturen Rekursive Datenstrukturen und rekursive
MehrSpeicherklassen (1) Lokale Variablen
Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrVerarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:
Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =
MehrDer Dreyfus-Wagner Algorithmus für das Steiner Baum Problem
Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner
MehrZum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Mehr1 Zahlenmengen und einige mathematische Symbole
1 Zahlenmengen und einige mathematische Symbole Inhalt 1.1 Vorbemerkung................................................... 3 1.2 Zahlenmengen................................................... 4 1.3 Summenzeichen..................................................
MehrÜberbestimmte lineare Gleichungssysteme
Überbestimmte lineare Gleichungssysteme Fakultät Grundlagen September 2009 Fakultät Grundlagen Überbestimmte lineare Gleichungssysteme Übersicht 1 2 Fakultät Grundlagen Überbestimmte lineare Gleichungssysteme
MehrProgrammieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Formatierte Ausgabe Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick 2 Nachteile von println 3 Formatierte Ausgabe
MehrLazy Pattern Matching. 10. Dezember 2014
Lazy Lazy s Universität Bielefeld AG Praktische Informatik 10. Dezember 2014 Themen-Vorschau : as-s und lazy s Client-Server-Programmierung Lazy s matching (alias Mustervergleich) kennen wir bereits aus
MehrBezeichnung von Funktionen x := y:=
Bezeichnung von Funktionen x := y:= Bezeichnung von Funktionen x := y:= Analytische Darstellung (Funktionsgleichung) Explizit: (aufgelöst nach y) Analytische Darstellung (Funktionsgleichung) Explizit:
Mehrm-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.
MATLAB m-files m-files sind Folgen von MATLAB- oder Daten-Files. Erstellen von m-files Über File New M-file wird ein Texteditor geöffnet. Dort wird das m-file als ASCII-File erzeugt und unter name.m im
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
Mehr9 Anweisungen und Kontrollstrukturen
9 Anweisungen und Kontrollstrukturen Hier beziehen wir uns auf Kapitel 6 von Go To Java 2. Die Steuerung des Programmablaufs geschieht durch sogenannte Anweisungen. Jede Anweisung bewirkt irgendwelche
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrErwin Grüner 15.12.2005
FB Psychologie Uni Marburg 15.12.2005 Themenübersicht Mit Hilfe der Funktionen runif(), rnorm() usw. kann man (Pseudo-) erzeugen. Darüber hinaus gibt es in R noch zwei weitere interessante Zufallsfunktionen:
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrTutorium Mathematik II, M Lösungen
Tutorium Mathematik II, M Lösungen 7. Juni 201 *Aufgabe 1. Gegeben seien fx, y = xy 2 8e x+y und P = 1, 2. Der Gradient von f ist genau an der Stelle P Null. a Untersuchen Sie mit Hilfe der Hesse-Matrix,
MehrS. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
MehrProgrammieren in C (Übungsblatt 1)
21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
MehrAllgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,
MehrArray-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.
Array-Zuweisungen Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen. Ausschnitte (slices) werden über die Indizes gebildet. Mehrdimensionale Arrays Mehrdimensionale Arrays werden
MehrKurvendiskussion. Gesetzmäßigkeiten. Lineare Funktionen. Funktionsgleichung
Kurvendiskussion Gesetzmäßigkeiten Lineare Funktionen Funktionsgleichung y = mx + c m: Steigung c: y-achsenabschnitt (Funktionswert für y, bei dem der Graph die y-achse schneidet Beispiel : y = x 3 mit
MehrSerie 4. Analysis D-BAUG Dr. Cornelia Busch FS 2015
Analysis D-BAUG Dr. Cornelia Busch FS 05 Serie 4. Finden Sie die lokalen Extrema der Funktionen f : R R auf dem Einheitskreis S = {x, y R : x + y = } und geben Sie an, ob es sich um ein lokales Minimum
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.
Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert
MehrLexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
MehrKorn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung
1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung 1. Übersicht und Einführung 1.1 Die Shell allgemein 1.2 Die korn-shell 1.3 Der Weg zum ersten Skript 1.4 Nutzen und
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral
MehrProgrammieren in Haskell Programmiermethodik
Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs
Mehr1 Potenzen und Polynome
1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels
MehrMethoden und Funktionen in Scala
Methoden und Funktionen in Scala Kapitel 11 und 12 des Buches 1 Jede Methode hat einen Typ Für die folgende Methode def square(v: Int) = v*v erhalten wir von der Scala-Shell die Rückmeldung square: (Int)Int
Mehr