vl-evaluated.nb Einführung Was ist und kann Mathematica? VL Mathematische Software WS 6/7 Rudolf Schürer Letzte Änderung: 8. Jänner 7 Merkmale Mathematischer Software ø Numerisches Rechnen mit beliebiger Genauigkeit ø Symbolisches bzw. exaktes Rechnen ø Graphische Darstellung von Funktionen und anderer mathematischer Objekte. ø Programmiersprache, mit der man eigene Funktionen oder Algorithmen definieren kann. Mathematica hat alle diese Merkmale. Exaktes und numerisches Rechnen + H7 + 4 L 5 Punkt- vor Strichrechnung! Andere Reihenfolge muss durch runde Klammern vorgegeben werden. Multiplikationszeichen (*) kann weggelassen werden. 474679467999889586676746878458597758879755695478566689 6446665686554696499747776884454965848959994887444987 9947664895859796785494949787655656967966464846685758887 7766748967 Es können beliebig große Zahlen dargestellt werden. Begrenzung ist nur der verfügbare Speicher!
vl-evaluated.nb! 6575644665746976869885888475769994677674594765767686 74655594477574999478887766886469775954684979697455984 547697954648577657685455965569567887564896649965 4576448888997594489654655987765784769449867867568 57968946499564649866457765857654646946479746658 58568756979468855757554989647575488849795665845 556964846799545949576868688788887496 45 45 êê Short 8678655669448 5469 99588795976565 Nachgestelltes //Short kürzt das Ergebnis auf eine Zeile. Die Zahl zwischen den Klammern gibt die Anzahl der ausgelassenen Teiel (hier Ziffern) an. Nichts desto trotz wurden auch alle ausgelassenen Ziffern berechnet. ê 6 Mathematica rechnet exakt, d.h. es werden nicht automatisch gerundete Zahlen verwendet, sonder lieber Ausdrücke unausgewertet stehen gelassen. ü Näherungslösungen i j y z k 4 { 6999564649944968554849 4455484595494748676 % êê N.858 Eine Näherungslösung kann immer mittels nachgestelltem //N erhalten werden. % steht für das zuletzt berechnete Ergebnis. 9SinA π E, Sin@D= 9, Sin@D= Der Sinus von ÅÅÅÅ p kann exakt bestimmt werden, der von jedoch nicht. Die geschwungenen Klammern { und } erzeugen eine Liste. Listen werden immer dann verwendet, wenn man mehrere Objekte gleichzeitig bearbeiten will. % êê N 8.8665,.9997<
vl-evaluated.nb Cos@ πd Sin@ArcCos@ DD + Exp@ D êê N Abs@Log@ DD 8.6 Natürlich sind alle mathematischen Standardfunktionen vorhanden. Die Funktionsargumente werden immer mit eckigen Klammern [...] eingefasst. ü Numerische Auswertungen mit beliebiger Genauigkeit π π N@πD.459 N@π, D.459655897984664879588497699975589749445978646868 998684854767984886586647984469555875594884874 584798555596446948954989644889756659446847564878678 6579945648566946486454664896764947 7 NASin@ D + Log@4 id, E i= 5.9655959549485594568779794997686857854594997687 5549557699879588546797857987579689798688579768556455655 95647989868665596788766 Numerische Ergebnisse können mit beliebiger Genauigkeit ermittelt werden. ü Primzahlen Prime@7D 59 Die siebzehnte Primzahl Timing@Prime@ DD 8.5 Second, 59786< Auch die -milliardste Primzahl wird noch schnell gefunden. ü Faktorisierung ganzer Zahlen FactorInteger@456789D 88, <, 8, <, 85, <, 867, <, 88, <<
vl-evaluated.nb 4 Das Ergebnis ist so zu lesen: ÿ ÿ 5 ÿ 67 ÿ 8. Mit etwas mehr Wissen über Mathematica lässt sich so ein Ausdruck auch schnell wieder zurücktransformieren: Times @@ Apply@Power, %, 8<D 456789 Symbolisches Rechnen a a + a + a Simplify@%D + a Simplify[] bringt Ausdrücke in eine möglichst einfache Form. Simplify@Sin@ π n + φdd Sin@ n π + φd Simplify@Sin@ π n + φd, n IntegersD Sin@φD Mathematica verfügt über umfangreiches mathematisches Wissen. Zum Beispiel lassen sich gewisse Ausdrücke vereinfachen, wenn man weiß, dass eine Variable (hier n) eine ganze Zahl ist. Simplify@Mod@a p, pdd Mod@a p, pd Simplify@Mod@a p, pd, 8a Integers, p Primes<D Mod@a, pd Mathematica weiß auch über Zahlentheorie bescheid, hier über den Satz von Fermat. Factor@x 99 + y 99 D Hx + yl Hx x y + y L Hx 6 x y + y 6 L Hx x 9 y + x 8 y x 7 y + x 6 y 4 x 5 y 5 + x 4 y 6 x y 7 + x y 8 x y 9 + y L Hx + x 9 y x 7 y x 6 y 4 + x 4 y 6 + x y 7 x y 9 x y x 9 y + x 7 y + x 6 y 4 x 4 y 6 x y 7 + x y 9 + y L Hx 6 + x 57 y x 5 y 9 x 48 y + x 4 y 8 + x 9 y x y 7 x y x 7 y + x y 9 + x 8 y 4 x y 48 x 9 y 5 + x y 57 + y 6 L Eine Vielzahl von Funktionen zur Manipulation von Ausdrücken ist vorhanden. Factor[], zum Beispiel, zerlegt einen Ausdruck in ein Produkt von möglichst vielen einzelnen Faktoren. Simplify@%D x 99 + y 99
vl-evaluated.nb 5 ü Integrale x ArcTan@xD x I 8 x ArcTanA x E + ArcTanA + x E + 6 4 x ê ArcTan@xD LogA + x xe + LogA + x + xem Stimmt das überhaupt? Machen wir die Probe! D@%, xd i 6 j k D[f,x] leitet f nach x ab. Und stimmt! I + M x + è!!! è!!! x x è!!! 4 x + J + I è!!! è!!! x M N è!!! + x I + J + I + x M N + x M x + x + x Simplify@%D x ArcTan@xD Log@xD Exp@ x D x 8 GammaA E I6 EulerGamma + π + 9 Log@DM Wer hätte das händisch ausrechen können? + 4 xê + x + 6 y x ArcTan@xD z { ü Summen Endliche Summen k 9 i= 9k, k, i= so wie unendliche: k i, i = i= k H + kl, k H + kl H + kl= 6
vl-evaluated.nb 6 9 i= i, i= i, i= i = Sum::div : Sum does not converge. Mehr Sum::div : Sum does not converge. Mehr 9 i, π 6, Zeta@D= i= Das Problem des kleinen Gauß (Berechne die Summe der ersten Zahlen): i i= 55 Größenvergleiche von Zahlen: Log@D < Zeta@D < True 9Log@D, Zeta@D, = êê N 8.6947,.6,.44< Numerische Auswertung zeigt, dass der Größenvergleich gestimmt hat. Visualisierung Ein- und zweidimensionale Funktionen können geplottet werden. Plot@Sin@xD + Sin@.6 xd, 8x,, 4<D; - 4 -
vl-evaluated.nb 7 PlotD@Sin@x yd, 8x,, 4<, 8y,, 4<, PlotPoints 4D;.5 -.5-4 4 ContourPlot[] erzeugt die Höhenlinien zum vorhergehenden PlotD[]. 4 ContourPlot@Sin@x yd, 8x,, 4<, 8y,, 4<, PlotPoints, Contours D; 4 Beliebige -dimensionale Flächen im können dargestellt werden.
vl-evaluated.nb 8 ParametricPlotD@ 8u Cos@uD H4 + Cos@v + udl, u Sin@uD H4 + Cos@v + udl, u Sin@v + ud<, 8u,, 4 π<, 8v,, π<, PlotPoints 8, <D; - -5-5 5 5 4 - -4 Schließlich können auch ganz allgemeine Objekte im und erzeugt und dargestellt werden. g = GraphicsD@ Flatten@ Table@If@OddQ@Multinomial@x, y, zdd, Cuboid@. 8x, y, z<d, 8<D, 8x,, 5<, 8y,, 5<, 8z,, 5<DD, Boxed False D; Show@gD; Needs@"Graphics`Animation`"D SpinShow@g, Frames 4D;