Mathematica

Numerika

Z Mathematico lahko računamo kot z navadnim kalkulatorjem. 
Za razliko od njega pa lahko dobimo tudi eksaktne rezultate.

Eksaktna racionalna aritmetika

Nekaj primerov: Mathematica zna seštevati... 
(račun izvrednotiš z shift+enter ali samo z desnim enter)

15 + 20

računati z ulomki...

((16/14) + (5/7)) (2/3)

Velika števila niso problem...

(2^1000)

Sešteti malo več ulomkov
	1/2 + 1/3 + 1/4 + ... + 1/25.

(∑_(i = 2)^25) (1/i)

Realna aritmetika

N[((16/14) + (5/7)) (2/3)]

N[(∑_(i = 2)^25) (1/i)]

Število Pi

Pi

N[π]

Malo več decimalk...

N[π, 200]

Zadnji rezultat pomeni da je rezultat natančen na 200 cifer.

v  =  N[1/Cos[(10^(-10))] - 1, 50]

Mathematica pozna dva načina računanja z decimalnimi števili:
(1) za manjše število decimalk uporablja vgrajeno aritmetiko v procesorju (na PC je to 16 mest) in ne vodi evidence o izgubljenih cifrah (običajen način)
(2) če so vsi podatki v računu dani na več kot 16 mest, potem vodi evidenco o natančnost, cifre, ki jih dobimo so vse prave.

Kako izračunati Sin(1.12) na 20 decimalk? 
Takole ne gre:

v  =  N[Sin[1.12], 20]

Ali je naslednje število naravno?

(E^(π (Sqrt[ 163])))

v =  N[(E^(π (Sqrt[ 163]))), 30]

Celi del našega števila dobimo takole

v1 =  Floor[v]

desno od decimalne pike pa so naslednje cifre

N[v - v1, 30]

Simbolično računstvo

Malo srednješolskega računstva. Vzemimimo polinom p

p  =  (x^4) + 3  (x^3) - 16  (x^2) - 9  x + 9

Faktorizirajmo ga.

Factor[p]

Včasih nas zanimajo tudi ničle...

Solve[p == 0, x]

Če hočemo numerične vrednosti zgornjih eksaktnih rešitev

N[Solve[p == 0, x]]

Grafika

Narišimo nekaj grafov. Recimo graf našega polinoma p

Plot[p,  {x,  -4,  6}];
p

Z Mathematico lahko narišemo tudi ploskve.

Plot3D[ 
        Sin[x] Sin[3 y],  {x,  -2,  2},  {y,  -2,  
          2} ];

Kakor smo se naučili, nihanje opne opisuje naslednja funkcija

u[m_, ω_, r_, θ_, t_] :=  
      BesselJ[m, ω r] Cos[m θ] Cos[ω t]

Pa udarimo po bobnu...

\(\(Do[
        ParametricPlot3D[
\ \ \ \ \ \ 	{r\ Cos[θ], r\ Sin[θ], 
            u[1, \ 7.01559, \ r, \ θ, \ t]}, \ 
						{r, \ 
            0, \ 1}, \ \ {θ, \ 0, \ 
            2  π}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PlotRange\  -> \ {{\(-1\), \ 1}, \ {\(-1\), \ 1}, \ {\(-1\), \ 
                1}}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Axes\  -> \ 
            False, \ Boxed\  -> \ False], 
{t, \ 0, \ 
          2\ π/7, π/\ 42}];\)\)

Vzemimo poljuben štirikotnik. Nad vsako stranico narišimo kvadrat in povežimo središča nasprotnih kvadratov. Pokažimo, da sta dobljeni daljici enako dolgi ter pravokotni druga na drugo!

Potrebna koda za ilustracijo.

\(\(zavrti[vek_, 
          fi_]\  := 	
Module[{c = Cos[fi], \ 
            s = Sin[fi]}, \ \ {{c, \(-s\)}, {s, c}} . vek	];\)\)
\(\(kvadrat[{t1_, t2_}] := 
	
        Graphics[\ {{AbsoluteThickness[1.5], 
	
              Line[{t2, \ \ t2\  + \ 
                    zavrti[t2 - t1, 
                      Pi/2], 
	\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ t1\  + \ 
                    zavrti[t2 - t1, Pi/2], t1}]}, 
	{AbsoluteThickness[
                1], 
	Line[{t1, t2\  + \ zavrti[t2 - t1, Pi/2]}], 
	
              Line[{t2, t1\  + \ zavrti[t2 - t1, Pi/2]}]}}];\)\)
sredisce[{t1_, t2_}] := 
        t1  +  1/Sqrt[2] zavrti[t2 - t1, Pi/4];
\(\(stirikotnik[t1_, t2_, t3_, t4_] := 
	
        Show[\ kvadrat\  /@ \ 
            Partition[{t1, t2, t3, t4, t1}, 2, 
              1], 
\ \ \ \ \ \ \ \ \ \ Graphics[{{AbsoluteThickness[1], 
                RGBColor[0, 0, 
                  1], 
	\ \ \ \ \ Line[{sredisce[{t1, t2}], \ 
                    sredisce[{t3, 
                        t4}]}], 
\ \ \ \ \ \ \ \ \ \ \ \ \ Line[{sredisce[{t2, t3}], 
                    sredisce[{t4, 
                        t1}]}]}, 
\ \ \ \ \ \ \ \ \ \ \ \ {AbsoluteThickness[
                  2], RGBColor[1, 0, 
                  0], 
\ \ \ \ \ \ \ \ \ \ \ \ \ Line[{t1, t2, t3, t4, 
                    t1}]\ \ }}], 
	\ \ AspectRatio -> Automatic, 
          PlotRange -> {{\(-4\), 6}, {\(-6\), 6}}\ ]\ ;\)\)
t1 = {- .5, 0}; t2 = {2 + t/5, t^2/4}; t3 = t {1, 2}; 
    t4 = t^2 {0, 1};

Do[stirikotnik[t4, t3, t2, t1], {t,  .9, 1.6,  .07}];

Še kakšna slika

\(\(ParametricPlot3D[{r\^2\ Cos[2\ φ]/2\  - \ 
            Log[r], \(-φ\)\  - \ r\^2/2\ Sin[2\ φ], \ 
          2\ r\ Cos[φ]}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {r, 
          0.1, 2}, {φ, \(-2\) π, 
          3  π}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PlotPoints -> {25, 150}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ViewPoint -> {\(-2.1\), \(-1.1\), 1.2}, 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ PlotRange -> \ 
          All, \ Axes -> False, \ \ Boxed\  -> \ 
          False];\)\)

<< RealTime3D`