Výpočtové možnosti systému Mathematica

Systém pracuje s prakticky neobmedzeným množstvom aritmetických symbolov a používa najefektívnejšie algoritmy pre komplexné symbolické a numerické výpočty. Pokúša sa vypočítať výsledok vždy čo najpresnejšie, pričom výsledkom môže byť číslo alebo matematický výraz. Odporúča sa požadovať iba dosažiteľné (vypočítateľné) reálne a komplexné čísla, numerickú metódu výpočtu, alebo zaokrúhľovaciu chybovú funkciu.

Príklad 1. Ako si systém Mathematica poradí s iracionálnym číslom π . Dá sa zapísať symbolicky ako π, alebo ako desatinné číslo so štandardnou presnosťou na 6 desatinných miest, či s počtom desatinných miest zvoleným používateľom, napr. 100.
Veľké písmeno N sa používa na zabezpečenie výsledku v tvare desatinného čísla.
Napokon zobrazíme hodnotu Eulerovho čísla e s presnosťou na 50 desatinných miest.

π π//N N[π, 100] N[, 50]

π

3.14159

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

2.7182818284590452353602874713526624977572470937000

Príklad 2. Mathematica si jednoducho poradí aj so zložitými výpočtami. Keď chceme získať výsledok v tvare desatinného čísla (numerický), je potrebné zapísať aspoň jedno z použitých čísel s desatinnou bodkou (typ premennej Real).

RowBox[{RowBox[{(, RowBox[{23.78,   , RowBox[{RowBox[{(, RowBox[{333,   ,  ...  )}], ^, RowBox[{(, RowBox[{1, /, 0.34}], )}]}]}], )}], ^, RowBox[{(, RowBox[{1, /, 3.456}], )}]}]

560.99

560.99

Posledný výsledok je číslo s dvojnásobnou presnosťou. Na zobrazenie tohoto tvaru musíme umiestniť kurzor myši do výstupného riadku a stlačiť klávesu ENTER.

Príklad 3. Výsledok bezprostredne vykonaného príkazu sa dá okamžite použiť pomocou symbolu %, resp. symbolu %% pre výsledok bezprostredne predchádzajúceho príkazu, atď.:

% %% + %%

560.99

1121.98

Alternatívou je použitie čísla príkazového riadku v danom súbore, ktoré sa zobrazuje na začiatku riadku ako In[number], Out[number].

%74

560.99

Príklad 4. Mathematica pracuje rovnako dobre a rýchlo aj s komplexnými číslami, pričom znak komplexnej jednotky sa zapisuje I, alebo použijeme symbol z palety základných matematických symbolov Basicinput - i.

RowBox[{RowBox[{(, RowBox[{-, 999.123}], )}], ^, (1/2)}] (1 + ) + (2 - 3)

RowBox[{RowBox[{RowBox[{(, RowBox[{2., +, 3I}], )}], ^, 1000000}], *, RowBox[{RowBox[{(, RowBox[{55., -, 6}], )}], ^, (-20000)}]}]

RowBox[{RowBox[{-, 6.954188330*10^522112}], +, RowBox[{8.570777409*10^522112,  , }]}]

Príklad 5. Mathematica dokáže spracovať aj zložité maticové výpočty. Funkcia Random[ ] generuje náhodné číslo z intervalu [0,1]. Použitím príkazu Table vytvoríme napr. maticu typu 100 x 100 s prvkami generovanými ako náhodné čísla.
Znak ; (bodkočiarka) sme v tomto prípade použili z toho dôvodu, aby sme zamedzili zobrazeniu matice obsahujúcej 10 000 prvkov.

Random[] Random[] Random[] m = Table[Random[], {100}, {100}] ;

0.482908

0.825038

0.976982

Príklad 6. Ďalší príkaz vypočíta a zobrazí vlastné čísla matice m z predchádzajúceho príkladu.

ListPlot[Abs[Eigenvalues[m]]]

[Graphics:HTMLFiles/index_22.gif]

⁃Graphics⁃

Príklad 7. V zlomku sekundy dokáže systém Mathematica vypočítať hodnotu faktoriálu čísla 500 - exaktne a správne.

500 !

1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502 ... 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

1.220136825991*10^1134

Príklad 8. Rozklad polynómu x^99 - y^123 s reálnymi koeficientami je časovo náročným výpočtom pri ručnom počítaní. Zabudovaný príkaz systému si s výpočtom poradí okamžite.

x=. y=. Factor[x^99 - y^123] Simplify[%]

(x^33 - y^41) (x^66 + x^33 y^41 + y^82)

x^99 - y^123

Príklad 9. Vysoko hodnoteným kvalitným prvkom systému Mathematica sú efektívne výpočty týkajúce sa prvočísel. Vypočítanú tabuľku s prvými 200 prvočíslami uložíme ako premennú tp a zobrazíme graficky.  

tp = Table[Prime[k], {k, 1, 200}]

{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 9 ... 7, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223}

gg = ListPlot[tp] 

[Graphics:HTMLFiles/index_34.gif]

⁃Graphics⁃


Created by Mathematica  (October 6, 2007)