Einführung in Mathematica

Jürgen Ecker, Peter Mayr, WS 2005

Mathematica als Taschenrechner

Ein paar einfache Rechnungen. Beachten Sie, dass jede Eingabe mit <Shift><Return> oder <Enter> bestätigt werden muss.

2 + 3*(4^5)

Rechenergebnisse dürfen beliebig groß werden.

111!

(3^1234)

Das zuletzt berechnete Ergebnis ist mit % wieder abrufbar. Das vorvorletzte mit %%%, usw.

%

%%%

Ein nützliches Hilfsmittel zur Eingabe mathematischer Symbole sind die Paletten, die Sie in der Menüleiste unter File->Palettes...->... finden. Die wichtigste Palette für den täglichen Gebrauch ist "BasicInput". Versuchen Sie, den folgenden Ausdruck mit Hilfe der Palette einzugeben.

((5 + (2^3))/(Sqrt[(1/(4 + (5/4)))]))

Natürlich lassen sich derartige Ausdrücke auch ohne Palette eingeben. Diesmal speichern wir das Ergebnis unter dem Namen erg.

erg = (5 + 2^3)/Sqrt[1/(4 + 5/4)]

Nettes Ergebnis, aber wieviel ist das?

N[erg]

Das möchte ich jetzt aber genauer, sagen wir 500 Stellen.

N[erg, 500]

Zahlentheoretische Funktionen

Was ist der Rest von 13 bei Division durch 5?

Mod[13, 5]

Der Rest von 13^1234 bei Division durch 37:

PowerMod[13, 1234, 37]

Der groesste gemeinsame Teiler von 10 und 14:

GCD[10, 14]

ExtendedGCD[10, 14]

Das kleinste gemeinsame Vielfache von 10 und 14:

LCM[10, 14]

Ist 331 eine Primzahl?

PrimeQ[331]

Welche Primzahlen teilen 350?

FactorInteger[891]

Gleichungen lösen

Gleichungen lassen sich lösen, auch wenn Parameter darin vorkommen.

lsg = Solve[(1/x) - a == 2  x, x]

Das Ergebnis wird in Form einer "Ersetzungsregel" ausgegeben. Die erste Regel \(TraditionalForm\`x -> \(1\/4\) \((\(-a\) - \@\(8 + a\^2\))\)\) beispielsweise besagt einfach, dass jedes x durch (1/4) (-a - (Sqrt[8 + (a^2)])) ersetzt werden soll. Ein Grund dafür ist, dass auf diese Weise das x eine Unbekannte bleibt.

x

Wollen wir das Ergebnis in Variablen speichern so brauchen wir den Operator /.. Experimentieren Sie einfach mit der folgenden Zeile. x/.lsg heisst ganz einfach: "Wende die Ersetzungsregeln in lsg auf den Ausdruck x an. Sie müssen nicht sofort verstehen, was hier passiert, versuchen Sie's aber trotzdem, man wächst an seinen Aufgaben.

x1 = x /. lsg[[1]]

{x1, x2} = x /. lsg

x1

x2

Wir lösen ein Gleichungssystem mit mehreren Unbekannten.

Solve[{2  x - y  ==  
          3,  -4 x + 2  y  == -6}, {x, y}]

Dieses Gleichungssystem hat also keine eindeutige Lösung.

Vektoren

Vektoren sind in Mathematica einfach als Listen repraesentiert:

v  = {1, 2, 0};  w  =  {-3, 2, 1};

2  v

v + w

Das Skalarprodukt zweier Vektoren wird mit "." berechnet und nicht mit "*" :

v . w

Matrizen

Lineare Gleichungssysteme lassen sich praktisch mit sogenannten Matrizen schreiben. Statt
    1x+2y+0z = 1
   -3x+2y+1z = 3
  also 
    (({{1}, {-3}})).x+(({{2}, {2}})).y+(({{0}, {1}})).z = (({{1}, {3}}))
 oder noch uebersichtlicher:
   (({{1, 2, 0}, {-3, 2, 1}})).(({{x}, {y}, {z}})) = (({{1}, {3}}))

Matrizen sind in Mathematica Listen von Listen (Achtung: Zeilenvektoren):

A  = {{1, 2, 0}, {-3, 2, 1}};
b  = { 1, 3};

Wir suchen eine Loesung des lineare Gleichungssystems:

u = LinearSolve[A, b]

Also x = -1/2, y = 3/4, z=0.
Um die Loesung zu ueberpruefen, multiplizieren wir sie mit der Koeffizientenmatrix:

A . u

Eine weitere Loesung finden wir durch's Betrachten der 1. und der 3. Spalte von A und von b:

v = {1, 0, 6};
A . v

Funktionen

Funktionen dürfen so viele Argumente haben, wie Sie wollen, auch variable Anzahl von Elementen für eine Funktion ist möglich, wir kennen das ja schon von der Funktion N[].

Üblicherweise sieht eine Funktion folgendermaßen aus.

f[x_, y_, z_] := (x^2) - (y^2) + (z^2)

Verwenden kann man f wie jede andere Mathematica-Funktion, zum Beispiel so:

f[1, 2, 3]

So werden wir die Belegung von f wieder los:

Remove[f]

f[1, 2, 3]

Listen, Schleifen, If-Bedingung:

Wir berechnen alle Quadratzahlen von 1 bis 100:

Entweder so:

Table[x^2, {x, 1, 10}]

Oder so:

i = 1;
While[i < 11, Print[i^2]; i = i + 1]

Wir definieren eine Funktion, die fuer alle positive Zahlen 1 ist und sonst -1:

h[x_] := If[x > 0, 1, -1]

h[3]

h[-Pi]

h[0]

Zum Ausruhen: 2D und 3D Grafiken mit Mathematica.

Der Graph der Funktion sin(x) + sin((Sqrt[x]))

Plot[Sin[x] + Sin[(Sqrt[x])], {x, 0, 40}]

Hier eine 3D-Grafik, der Graph der Funktion (x,y)->sin(xy).

graph  = 
      Plot3D[Sin[x y], {x, 0, 4}, {y, 0, 4}, 
        PlotPoints -> 30]

Hier eine Ebene:

ebene = 
      Plot3D[0.5  x + y - 2, {x, 0, 4}, {y, 0, 4}]

Und jetzt beide gemeinsam:

Show[{graph, ebene}]

Der Help Browser:

In der Menüleiste unter Help finden Sie ein vollständiges Manual "The Mathematica Book"  und eine Ubersicht von existierenden Mathematica-Funktionen "Built-in Functions". Schauen Sie nach, was Solve alles kann.