Beseda o systému Mathematica 15. 2. 2006

4 pilire

Numericke pocitani

Vypocet: Shift+Enter nebo Enter na numericke klavesnici

1 + 1

Mozne sdruzit i vice vypoctu do jedne bunky. (Ta je oznacena modrou svislou carou vpravo. Jsou ruzne druhy bunek.)

1 + 1
2 + 1
3 + 
4
3
+4

Pi
π

Poznamka k zapisu specialnich znaku sekvencemi Esc: viz take Palettes

EscpEsc dava π

N[π, 10]

(2^1000)

Symbolicke pocitani

e1 = Expand[(((x + y))^5)]

e2 = Factor[e1]

TeXForm[(a + 1)/e1]

Grafika

Plot[Sin[x + (x^2)], {x, 0, π}]

Export grafu do TeXu: Vyber bunku s grafem (kursor na svislou modrou caru - vypada pak |← - klik mysi), Menu Edit ⟶ Save Selection as ⟶ EPS.

Plot3D[Sin[x + (y^2)], {x, 0, π}, {y, 0, π}]

Plot[
      Sin[x + I y], {x, 0, π}, {y, 0, π}]

{Sin[I], Exp[I]} // TrigExpand

Vysvetlivka: x//f je totez co f[x].

Programovani

Odlozene prirazeni := je vyhodnoceno az v okamziku vyvolani

?e2

?Global`*

({{FullForm[a, e1, e2, jana, n, x, y], , , , , }})]

Clear["."]

Poznamka k vymazani vsech symbolu a definic (doplneno 16. 2. 2006)

Pri pozornem cteni Helpu se zjisti toto: Vymazani vseho: Clear["*"]. Vymazani vseho v urcitem kontextu napr. Clear["Global`*"]

Clear[jana];
jana[n_] := 
      (n^2)
{jana[2], jana[4]}

Hilbertova matice

Clear[hil1];hil1[n_] := 
        Table[(1/(i + j - 1)), {i, 1, n}, {j, 1, 
            n}]
Clear[hil2];
hil2[n_] := 
      Array[(1/(#1 + #2 - 1)) &, {n, n}]

hil1[5] // MatrixForm

(hil3 = hil2[5]) // MatrixForm

Ukazka inverse:

Inverse[hil2[5]] // MatrixForm

Technicke zalezitosti, zakladni vstup

Obecne

Front End ⟷ Kernel
Menu
Help (Pozor, v Master Index neni vse!)

Vstup

x = 5

Potlaceny vystup (vhodne v pripade, kdy vystup je zrejmy nebo rozsahly)

x = 6;

?x

x

x := 7;

x

Priklad okamziteho a odlozeneho prirazeni

Clear[x, addone, addtwo];
addone[x_] := 
      x + Random[] - 0.5

addtwo[x_] = x + Random[] - 0.5

NestList[f, x, 3]

walkone = NestList[addone, 0, 100];
walktwo = NestList[addtwo, 0, 100];

ListPlot[walkone, PlotJoined -> True]

ListPlot[walktwo, PlotJoined -> True]

Zavorky

[] argumenty funkci
() priorita algebraickych operaci
{} listy (matice,vektory, stromy, iteratory)
[[ ]] casti listu, Esc[[1]]Esc dava [[1]]

list1 = {Sin[Pi], Sin[3.14], Sin@3.14, 3.14 // Sin, sin[3.14], 
        Sin[1001 (π/4)], Sin[1001.  (π/4)]}

\(Print[\*""\n Presna hodnota Sin[1001 (π/4)] = "", 
      presnahodnota = 
        Sin[1001\ π\/4], \*""\n Priblizna hodnota Sin[1001. (π/4)] = "", pribliznahodnota = Sin[1001. \ π\/4]]\)

Porovnani vysledku

presnahodnota - pribliznahodnota

pribliznahodnota2 = Sin[1001.`30 (π/4)]

presnahodnota - pribliznahodnota2

(Sqrt[2.])

$MachinePrecision

1.4142135623730951`

(Sqrt[2.])`30

(Sqrt[(5/2)])/(Sqrt[2.5])

1.`

zuzanka = {1, Sin@3, Sin@3. , Sin[3/4], 
          Integrate[1/(1 + (x^4)), x]} // FullSimplify

Derivace celeho listu

zuzankaD = D[zuzanka, x]

Simplify[zuzankaD]

Uzivejte Ctrl+K pro kompletaci vyrazu. Staci napsat z+Ctrl+K a pak si vybrat z pripadne nabidky.

(* 
      Ctvrty prvek listu: *)  zuzanka[[4]]

Operace

* nasobeni, ekvivalentni je mezera. Pozor xy neni x y!!, /,+,^
Ctrl^ dava (x^4), vracime se pomoci → ; je mozne take vytvorit vyraz typu (Overscript[((Subscript[x, (Subscript[t, 1])])), (a^5)]), nejlepe pomoci vhodne palety.

Maticove nasobeni: . (Dot)
Pozor na rozdil mezi vektory a maticemi!

(({{1, 2}, {3, 4}})).{1, 2}

xx = Table[(Subscript[x, i]), {i, 1, 3}]

x13 = {xx}
x31 = Transpose[x13]

Map[Dimensions, {x13, x31}]

Clear[x, y, xy];
e1 = x y; 
    e2 = x*y;
  
e1 == e2

e3 = xy;
e1 == e3

e1 === e3

Porovnani presnych a pribliznych cisel

{2 == 2. , 2 === 2. }

{IntegerQ[2], IntegerQ[2. ]}

Mozne pracovat s jednotkami

EUR = 28.9 CZK
11 EUR

2D zapis bud z palet nebo ESQ-sekvencemi (ty jsou v dolni casti palety), priklad (∑_(k = 1)^n) (k^4)

(∑_(k = 1)^n) (k^4)

Moznosti systemu

Kalkulacka a numericke vypocty

Eigenvalues[mat1=(({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}))]

Eigenvalues[hil1[3]] // N

Eigenvalues[N[hil1[3], 30]]

tim1 = Timing[mat3 = Table[Random[], {1000}, {1000}];]

Vypreparovani casu

tim1[[1]]/Second

Vlastni cisla

eig3 = Eigenvalues[mat3];

Graficke znazorneni

ListPlot[
      Abs[eig3],   PlotRange -> 
        All]

Hypoteza

Stredni hodnota max. vl. cisla je n/2

Moznost prace s velkymi systemy (Sparse Arrays) a databazemi

mat3inv = Inverse[mat3];

Max[mat3 . mat3inv - IdentityMatrix[Length[mat3]]]

Min[mat3 . mat3inv - IdentityMatrix[Length[mat3]]]

Zabudovane algoritmy

Clear[x, a];
Solve[(Sqrt[x]) + a == 2  x, 
      x]

Solve[eq1 = Cos[x] == x + Log[x], x]

fr1 = FindRoot[eq1, {x, 1}]

x /. 
      fr1

Slozene zavorky, zvlaste u vektoru s jednou slozkou cini potize. Odstrani se takto:

aa = {1}

aa[[1]]

eig3 = Eigenvalues[N[hil1[1], 30]]

facint1 = FactorInteger[num1 = (2^105) - 1]

testint1 = Apply[Times, Map[First[#]^Last[#] &, facint1]]

num1 - testint1

Nebo elegantneji

num1 == testint1

Symbolicke a numericke reseni obycejnych a parcialnich diferencialnich rovnic a jejich soustav

sol1 = 
      NDSolve[{x''[t] + x[t]^3 == Sin[t], 
          x[0] == x'[0] == 0}, x, {t, 0, 50}]

ParametricPlot[
      Evaluate[{x[t], x'[t]} /. sol1], {t, 0, 50}]

Roztahovani a stahovani grafu

Import a Export

$ImportFormats

Priklad 1 (Nelinearni vyrovnavani)

ir3 = {{7, 4.74`}, {14, 4.72833333333333`}, {30, 4.705`}, {60, 
            4.595`}, {90, 4.53`}, {180, 4.42`}, {270, 4.415`}, {360, 
            4.41`}, {730, 4.51`}, {1095, 4.68`}, {1460, 4.85`}, {1825, 
            4.99`}, {2190, 5.09`}, {2555, 5.19`}, {2920, 5.27`}, {3285, 
            5.33`}, {3650, 5.38`}, {4015, 5.42`}, {4380, 5.46`}, {4745, 
            5.48666666666667`}, {5110, 5.51333333333333`}, {5475, 
            5.54`}};

Needs["Statistics`"]

fit3 = 
      NonlinearFit[ir3, 
        b0 + (b1 + b2)*(1 - Exp[-t/c])/(t/c) - 
          b2*Exp[-t/c], t, {b0, b1, b2, c}]

?NonlinearFit

Remove[NonlinearFit]

p2ir3 = ListPlot[ir3];

p1ir3 = Plot[fit3, {t, 0, 6230}];

Show[p1ir3, p2ir3];

Priklad 2 (Shlukova analyza)

Priklad 3 (Optimalizace)

Advanced Documentation

Solve[
      Floor[(x^2)] == 196 && Mod[x, 10] == 4, {x}]

NMinimize[{1, 
        Floor[(x^2)] == 196 && Mod[x, 10] == 4}, {x}]

Priklad 4 (Nerovnosti)

Nejdrive pres Help

<< Algebra`InequalitySolve`

InequalitySolve[x (x^2 - 2) (x^2 - 3) > 0, x]

InequalitySolve[x/Abs[x - 1] ≥ 0 && 1/x < x + 1, 
      x]

3.  + (10. ^(-17)) I

3.  + (10^(-17)) I // Chop

Odkazy

Obecne:

http://www.wolfram.com

http://www.wolfram.cz

The Mathematica Journal
Vyvolejte 
http://www.wolfram.com/services/premiersupport/

a jako licencni cislo zadejte L4667-9660.  Tam najdete vyznaceny The Mathematica Journal. Je pravdepodobne, ze bude fungovat pouze ze site na fakulte

Klavesove zkratky (vyhodna prevence neustaleho prehmatavani mezi mysi a klavesnici): http://media.wolfram.com/brochures/mathematicashortcuts.pdf

Velmi dukladna uvodni instruktaz, viz take dalsi zajimave soubory v adresari Demos, GetingStarted:

"C:\Program Files\Wolfram \
Research\Mathematica\5.2\Documentation\English\Tour\Tour.nb"

Dalsi zajimave zdroje pouceni

"C:\Program Files\Wolfram \
Research\Mathematica\5.2\AddOns\ExtraPackages"

Help⟶ Master Index ⟶ Built - 
      in Functions ⟶ Advanced Documentation

Konecne je take vyhodne se podivat na nektere zdrojove programy ze Standard Add On Packages. Nektere jsou snadno srozumitelne, u nekterych je tomu naopak.