Wolfram Mathematica Mgr. Jindřich Soukup. 7. 0
Mathematica Tento soubor má sloužit jako první seznámení s programem Mathematica. Většina věcí je pouze přeložená z Help Tutorial.... V souboru je text a několik příkladů, co Mathematica umí a jak to zapsat. Jednotlivé výpočty jsou v závorkách Hmodré okraje rámečků na pravé straně této stránkyl. Příkaz se nejdříve zadá celý, příkaz k jeho vypočítání je Shift + Enter. Výpočty jsou číslovány Hčísla vstupu a výstupu se zobrazují před daným řádkeml. Na jejich výsledky se může odkazovat pomocí % Hposlední výsledekl, %% HpředposledníL, %5 Hvýsledek číslo 5L. Pokud budete soubor pouze číst, v pořádku, pokud si ale budete zkoušet měnit příklady a zadávat si jiná čísla a jiné příklady, dejte prosím pozor na příklady, kde je jako argument % číslo, mohly by pak odkazovat na jiný výsledek, než jsem měl původně v plánu. Poslední věc, než se půstíme do příkladů... nejlepší způsob, jak se naučit M je listovat si v Helpu a hledat si sám, jak se co dělá. M má výborně zpracovaný Help a skoro u každé funkce je i vzorový příklad, jak se daná funkce používá. All built-in functions start with a capital letter. Use [ ] to enclose function arguments. Abs@ D Mod@7, 3D Use {} to enclose list elements. 8,, 3< Use () to indicate grouping of terms. a ê Hb cl expr/.x Æ y means in expr replace x by y. p^ ê. p Use = to assign a value to a variable. y = 3.8 Use == to express equality. Use := to define a function. Use x_ to indicate an arbitrary expression named x. Solve@x^ 3, xd f@x_d := x^ f@x_d := x^ Mathematica může sloužit jako normální kalkulačka : 5 + 8 3 64 ê 4 66 Na rozdíl od kalkulačky však nejste omezeni počtem míst : ^00 606 938 044 58 990 75 54 96 09 34 6 60 5 0 993 78 79 835 30 376 Pro přibližný výsledek stačí za doplnit desetinou tečku :
prednaska_uvod.nb. ^00.60694 0 60 S výsledkem můžeme dále pracovat pomocí odkazu % Sqrt@%3D 67 650 600 8 9 40 496 703 05 376 Sqrt@%D 66 Zde vidíme další výhodu, kterou Mathematica má. Pokud jí to výslovně nepřikážeme, tak nezaokrouhluje. Místo aby vypsala přibližnou hodnotu 66, výpíše hodnotu přesnou. Nedochází pak k chybám v důsledku zaokrouhlování. V posledním případě jsme se také seznámili se zápisem funkcí v Mathematice. Funkce se píší s velkým prvním písmenem, argumenty jsou v hranaté závorce. Funkce můžeme navzájem řetězit, jako např. zde : Sqrt@Sin@3DD Sin@3D Pokud chceme přbližnou hodnotu, stačí použí N@D : N@Sqrt@Sin@3DD, 0D 0.3756594309 Číslo za čárkou nám ukazuje, na kolik destinných míst se má počítat. Syntaxe je N@výraz, desetinných místd, jak se můžeme přesvědčit pomocí nápovědy :? N N@exprD gives the numerical value of expr. N@expr, nd attempts to give a result with n digit precision. More Syntaxi je důležité dodržovat, při záměně závorek můžete dostat úplně jiný výraz, než jste chtěli : Sin@Pi ê 4D^3 + Sin^3@Pi ê 4D + Sin 3A π 4 E Konstanty, jako je Eulerovo nebo Ludolfovo číslo píšeme písemně jako Pi resp. E. Nikdy tedy nepoužívejte za proměnnou velké E. M umí také pracovat se vzorci a výrazy, upravovat je a zjednodušovat, či je naopak roznásobovat : Expand@Ha b c dl^ + Ha d + b cl^ D a b + b c + a d + c d
prednaska_uvod.nb 3 Factor@%D Ia + c M Ib + d M Simplify@Cos@xD ^ 4 Sin@xD ^ 4D Cos@ xd FullSimplify@Gamma@zD Gamma@ zdd π Csc@π zd Další zajímaostí v M jsou takzvané "listy". Nahrazují zde vektory, matice... List je pole čísel, uzavírá se do složených závorek. Složené závorky se vyskytují vždy, když používáme více argumentů nebo hodnot na jednom místě. Matici 5 x3 můžeme tedy zapsat jako : 885, 3, 4,, 0<, 89, 4, 0, 0, <, 84, 5, 6, 8, 7<< 885, 3, 4,, 0<, 89, 4, 0, 0, <, 84, 5, 6, 8, 7<< Složené závorky ovšem můžou znamenat jen několik argumentů, hodnot : Sin@Pi ê 8, 3, 4, 5, 6, 7<D :, 3,, J5 5 N,, SinB π 7 F> Matici můžeme vytvářet automaticky podle pravidel, které zadáme : Table@ ^x, 8x,, 0<D 84, 8, 6, 3, 64, 8, 56, 5, 04< Předchozí zápis ukazuje, že v listu mají být hodnoty ^x a u x máme postupovat od do desíti. Nyní vytvoříme dvourozměrnou matici : mx = Table@a x ^ b, 8a, 3<, 8b, 5<D 99x, x, x 3, x 4, x 5 =, 9 x, x, x 3, x 4, x 5 =, 93 x, 3 x, 3 x 3, 3 x 4, 3 x 5 == Pokud do složených závorek nezadáme první číslo, bere se implicitně hodnota. Výraz mx =..... znamená, že do proměnné mx vložíme výsledek daného výrazu. Danou proměnnou není potřeba nikde deklarovat ani iniciovat. Pomůže nám to při dalším počítání. Pokud chceme vidět poslední prvek na druhé řádce matice, napíšeme :
4 prednaska_uvod.nb Part@mx,, 5D x 5 Musíme si ale dát pozor, data zadaná do proměnné v proměnné zůstávají až do vypnutí M nebo jejich vynulování a při každém použití názvu proměnné se do výpočtu automaticky dosadí její číselná hodnota. Nulování proměnných se provádí příkazem Clear@proměnná, proměnná,...d. Naopak pokud do proměnné načtete nějaká data, s kterými budete pracovat, musíte je po vypnutí a znovuzapnutí M znova načíst. M. rozlišuje velká a malá písmenka, pro ni mm není to samé jako Mm nebo MM či mm. Jako jméno proměnné můžete zadat téměř libovolný řetězec znaků. Snad jediným omezením je číslice na začátku. Zatímco m uzná M jako název proměnné, m bere jako m. Nedoporučuje se také zadávat jména proměnných s velkými prvními písmeny, tak jsou obvykle pojmenovávány zabudované funkce M a mohlo by to být bráno jako volání dané funkce. Další výhoda M jsou grafy : Plot@Sin@Exp@xDD, 8x, 0, 4<D Graphics? Plot Plot@f, 8x, xmin, xmax<d generates a plot of f as a function of x from xmin to xmax. Plot@8f, f,... <, 8x, xmin, xmax<d plots several functions fi. More? Exp Exp@zD is the exponential function. More
prednaska_uvod.nb 5 Plot3D@Cos@xD Sin@yD, 8x, 0, Pi<, 8y, 0, Pi<D 0.5 0-0.5-0 4 6 4 6 0 SurfaceGraphics Další věc, co M umí je derivovat a integrovat : Integrate@ ê Hx^4 a^4l, xd ArcTanB x F Log@a xd + Log@a + xd a 4 a 3 Můžeme též použít paletu na symbolické vkládání a vypisování funkcí si zjednodušit a zpřehlednit : x Ix 4 a 4 M ArcTanB x F Log@a xd + Log@a + xd a 4 a 3 K derivování stačí použít D@8výraz<, 8podle čeho derivujeme<d : D@%5, xd + + a x a+x 4 a 3 Simplify@%D a 4 + x 4 a + x a x 3; ê. působení na výraz před lomítkem Řešení rovnic Hrovnost se v M. píše jako "==", jednoduché "=" slouží k přiřazování hodnot do proměnnél :
6 prednaska_uvod.nb Solve@x ^ + x a, xd ::x J + 4 a N>, :x J + + 4 a N>> Solve@8x ^ k ^ 0, y^ x^<, 8x, y<d 88x k, y k<, 8x k, y k<, 8x k, y k<, 8x k, y k<< Solve@Log@x + Sqrt@a + x^ DD b, xd ::x b I a + b M>> Pokud M neumí najít přesné řešení pomocí Solve, můžete použít funkce NSolve a FindRoot. Na počítání diferenciálních rovnic slouží funkce DSolve a NDSolve HN jako numerické řešení, D jako diferenciálníl Někdy dopíšu i komentáře k následujícím věcem, pokud chcete, můžete si to najít v Helpu : Import a Export dat, obrázků Random Zvuky, Furierova transformace add ones, packages Jakékoli připomínky, rady a stížnosti mi můžete posílat na jindra @ matfyz.cz Jindra Soukup