Seznámení se systémem Mathematica 9

Prostředí M9, definice proměnných

© Jaroslav Reichl, SPŠST Panská, Praha
reichl@panska.cz

Obsah

Prezentace obsahuje tato témata:

Co Mathematica umí?
Jak Mathematica funguje?
Nápověda Mathematicy
Základy práce s Mathematicou
Užitečné klávesové zkratky Mathematicy
Úpravy výrazů
1. úkol
Jak z jednoho výrazu udělat různé varianty?
Definice proměnných
2. úkol

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Co Mathematica umí?

Mathematica umí:

běžné výpočty

zobrazování grafů funkcí

symbolické počítání (úpravy algebraických výrazů, řešení rovnic, derivace, integrály, ...)

animované simulace (grafy goniometrických funkcí, kmitání oscilátorů, ...)

pracovat s programovými kódy v C++

...

Jakýkoliv problém z matematiky, fyziky a dalších technických předmětů dokáže Mathematica vyřešit!

Je jen nutné najít odpovídající příkazy v anglicky psané nápovědě!

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Jak Mathematica funguje?

Mathematica je aplikace pracující pod systémem Windows => využívá všech jeho výhod (i nevýhod) => menu File (Save, Print, ...), Edit (Find, ...), ... je velmi podobné jako u ostatních aplikacích. Fungují i klávesové zkratky F1, Ctrl + C a Ctrl + V.

Základem je práce v tzv. NOTEBOOKu - souboru, do něhož se píší vlastní příkazy, poznámky, ... (Při uložení dostává automaticky příponu *.NB.)

Základním objektem notebooku je BUŇKA, do níž se píší příkazy; buňka může obsahovat jeden nebo více příkazů. Kvůli přehlednosti a zamezení chybám ve výpočtu je dobré do jedné buňky dávat příkazy, které zpracovávají určitý problém (např. vyřeší kvadratickou rovnici, vypíše hodnoty kořenů a v závislosti na kořenech nakreslí graf příslušné funkce). Zpočátku (než získá člověk určitou zručnost) je dobré každý příkaz psát do jedné buňky a ty potom spojit (zejména u rozsáhlejších projektů).
Buňka, do které se píše zadání, se nazývá vstupní buňka (má označení In[cislovstupu]), buňka, do níž se zobrazí "výsledek", se nazývá výstupní buňka (Out[cislovystupu]).

Požadavek na výpočet dané buňky se musí předat JÁDRU systému (tzv. KERNEL) - pomocí kláves Shift + Enter nebo NumEnter.

Pokud se vyskytne problém, není nutné restartovat celou Mathematicu - stačí restartovat KERNEL příkazem Evaluation - Quit Kernel - Local. Tím ovšem Mathematica "zapomene" všechny předchozí výpočty, byť výsledky, grafy, ... stále vidíme na obrazovce. Znovuzapnutí KERNEL se provede dalším stiskem kláves Shift + Enter nebo NumEnter.

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Nápověda systému Mathematica

F1

Ctrl + K - po napsání i jediného písmene z hledané funkce

nápověda ke všem příkazům je strukturovaná a obsahuje:
	název funkce nebo příkazu;
	syntaxi zápisu - u řady funkcí je více možností zápisu;
	More information - detailnější popis funkce (jak je definovaná, s jakými dalšími funkcemi souvisí, jaké má parametry, ...); tuto volbu je nutné kliknutím otevřít;
	Examples - běžné příklady použití dané funkce;
	See also - interaktivní odkazy na funkce a příkazy, které souvisí se zobrazenou funkcí (doplňky, inverzní, ...);
	Tutorials - anglicky psané návody na práci s danou funkcí či příkazem;
	More about - dodatečné informace a komentáře;
	Related links - odkazy na internetové stránky firmy Wolfram;

možnost zkoušet si s předdefinovanými příklady hrát (měnit je, doplňovat, ...) a vyhodnocovat stejně jako buňky NOTEBOOKu - NIC SE NESMAŽE ANI NEZMĚNÍ

možnost příklady kopírovat do vlastních notebooků

po vybrání vhodné funkce lze použít Ctrl + Shift + K - vypíší se základní parametry vybrané funkce

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Základy práce s Mathematicou

rychlé získání informací:
	 (psáno pomocí = jako první znak buňky) - jednoduše zadané (resp. jednoduchou angličtinou popsané) příkazy
		solve x+7=12
		print sin x from -3 to 5
		...
	 (psáno pomocí == jako první znaky buňky) - heslo, které systém (s připojením počítače k internetu!) vyhledá v databázi WolframAlpha
		Prague
		weather Prague
		Gates
		...

matematické výrazy lze psát buď do řádku a oddělovat závorkami nebo “matematicky”

(7/3 + 2/5-11/8)/(3/5+11/4)
(((7/3)+(2/5)-(11/8))/((3/5)+(11/4)))

"matematicky" lze výrazy zapisovat pomocí palety Palletes - Other - Basic Math Input nebo pomocí klávesových zkratek:

operátory:
	= se používá ve smyslu přiřazení, dosazení (a = 3 + 2, a = 2* a + 1, ...);
	== se používá v zápisu rovnic, podmínek, ... ; je to "rovná se" v tom smyslu, v jakém se běžně používá (Solve[2*x + 3 == 1, x], If[diskriminat == 0, Print["Rovnice má dvojnásobný kořen."], Print["Rovnice nemá dvojnásobný kořen."]], ...);
	=== se používá k porovnání typů proměnných (nutné pro speciální účely);
	:= tzv. odložené přiřazení (odložená definice);
	<, > standardní operátory;
	<=, >= v buňce se většinou zobrazí ve tvaru ≤ resp. ≥;
	!= operátor "nerovná se" ("je různé od"), v buňce se zobrazuje většinou jako ≠.
Po zadání výrazu, který chceme v Mathematice upravit nebo vyčíslit, se znak = NEPÍŠE!!!

operátor potlačení výstupu ; - výsledek příkazu, za nímž operátor je, se nezobrazí ve výstupní buňce

operátor postfixového zápisu // - funkce, kterou chceme na objekt aplikovat, píšeme až za daný objekt

dosazovací operátor /. - slouží k dosazení výrazu do jiného výrazu (viz práce s výrazy)

testovací operátor /; - za ním následuje test, který Mathematica provede před vyčíslením výrazu, který je před tímto operátorem (viz definice proměnných)

Mathematica používá tři druhy závorek:
	kulaté ( ) slouží k uzávorkování matematických výrazů a vyznačení preferencí při jejich výpočtech;
	hranaté [ ] - píší se do nich argumenty a parametry jak předefinovaných funkcí, tak funkcí definovaných uživatelem (Abs[3*x + 5], Cos[2*x], Log[a, x], ...);
	dvojité hranaté [[ ]] (resp. [[]]) - slouží k indexaci seznamů (resp. polí);				Poznámka: Při nastavené české klávesnici je lze psát pomocí Alt + 91 a Alt + 93.
	složené { } - slouží ke "sloučení" více objektů ve vstupních parametrech funkcí 
(Plot[Sin[x], {x, 0, 2*π}], ...).
		Poznámka: Při nastavené české klávesnici je lze psát pomocí Alt + 123 a Alt + 125.

funkce, které má Mathematica předdefinované, se píší tak, že první písmeno každého slova, z něhož je název funkce složen, je velké: Sin[x], ArcSin[x], TrigExpand[Sin[2*x]], ...

funkce, které si bude definovat sám uživatel, je proto vhodné psát malými písmeny, aby nedošlo k záměně

Mathematica počítá přesně (symbolicky); umí ale také počítat přibližně

Sqrt[2]
(Sqrt[2])
Sqrt[2.]
(Sqrt[2.])
(Sqrt[2])//N
N[(Sqrt[2])]
N[(Sqrt[2]),10]

názvy funkcí není nutné umět zpaměti - stačí znát první (prvních několik) písmen a použít klávesovou zkratku Ctrl + K - Mathematica nabídne seznam všech funkcí, které začínají zadanými písmeny

využít poslední spočítaný výsledek lze pomocí znaku %, předposlední pak pomocí znaku %%; lze využít i %[cislo_vystupu]

5*4 + 10
%*3
%% - 30

Pozor!!! Při výpočtech s použitím znaku % mohou vznikat chyby!!! Používat raději v rámci jedné buňky a nebo se používání vyhnout!!!

do NOTEBOOKU si lze dělat i poznámky - ty nejjednodušší se vytvoří pomocí (* ... *)

1+3 (*Příklad na sčítání dvou čísel*)

některé chyby, které by mohly vést ke špatným výsledkům:
	nepoužívat zbytečně mezery - kde je to nutné, tam si je Mathematica dodá sama;
	součin lze psát buď pomocí symbolu * nebo pomocí mezery; NEPIŠTE SOUČIN BEZ OPERÁTORU!!!;
	dodržovat psaní velkých písmen (hlavně v názvech funkcí);
	pozor na některá vybraná písmena (E, I, ...), která jsou vyhrazena pro konstanty (Eulerovo číslo, imaginární jednotku, ...).

Některé vytvořené NOTEBOOKy mohou být datově značně velké (zejména obsahují-li obrázky, grafy, ...). Proto je vhodné (např. při posílání NOTEBOOKu mailem) výstupy, které spočítala Mathematica, vymazat. To lze provést příkazem Cell - Delete All Output. V NOTEBOOKu zůstane jen text a soubor se tím zmenší.
Pozor!!! Operace je nevratná! Všechny vymazané výstupy lze vrátit zpět postupným přepočíváním všech buněk nebo příkazem Evaluation - Evaluate Notebook.

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Užitečné klávesové zkratky Mathematicy

Ctrl + K - zobrazí nabídku funkcí, které začínají napsanými písmeny

Ctrl + Shift + K - zobrazí nutné parametry právě napsané funkce

F1 - zobrazí nápovědu k funkci (slovu), v němž je právě kurzor; není-li kurzor na žádné předdefinované funkci, zobrazí se úvodní stránka nápovědy

Ctrl + / - zobrazí symbol pro zápis zlomku

Ctrl + 2 - zobrazí symbol pro zápis druhé odmocniny

Ctrl + 6 - zobrazí symbol pro zápis mocnin

EscpEsc - zobrazí symbol π

EsceeEsc - zobrazí symbol e (Eulerovo číslo)

EsciiEsc - zobrazí symbol i (imaginární jednotka)

EscinfEsc - zobrazí symbol ∞

EscdegEsc - zobrazí symbol °

EscintEsc - zobrazí symbol ∫

EscddEsc - zobrazí symbol d, který se využívá po označení totálního diferenciálu (resp. proměnné, podle které se integruje)

EscpwEsc - zobrazí symbol { používáný při definice funkce různými předpisy na různých intervalech (Pozor! Nejedná se o "složenou závorku"!)

Následující klávesové zkratky jsou obecně platné a v případě práce s českou klávesnicí mohou značně urychlit zápis výrazů:

Alt + 39 - zobrazí ' (tzv. apostrof), který se využívá k Mathematice k označení derivace

Alt + 60 - zobrazí <

Alt + 62 - zobrazí >

Alt + 91 - zobrazí [

Alt + 93 - zobrazí ]

Alt + 123 - zobrazí {

Alt + 125 - zobrazí }

Ctrl + / - zobrazí zlomek, do kterého lze vyplnit čitetele a jmenovatele ((( )/(   )))

Ctrl + 2 - zobrazí znak pro druhou odmocninu ((Sqrt[ ]))

Ctrl + 6 - zobrazí horní index

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

1. úkol: Začneme jednoduše ... :-)

Zapište správně do svých notebooků následující matematické výrazy a zjednodušte je:

((1+((2*b)/(a-b)))/(a-b*((b-a)/(a-b))))
(((32*((21+(Sqrt[121]))^(1/5)))^(1/6))/((Sqrt[(Sqrt[20*(Sqrt[25])])-1])+3))

Zjednodušte výraz (Sqrt[8])+(Sqrt[50])-(Sqrt[18]). Kromě symbolického zápisu udejte též jeho přibližnou číselnou hodnotu zaokrouhlenou na 2 desetinná místa.

Řešení

(Sqrt[8])+(Sqrt[50])-(Sqrt[18])
N[%,3]
Print[%%," ≐ ",%]

Zjistěte funkční hodnoty goniometrických funkcí sinus, kosinus, tangens a kotangens pro (30^∘) a (90^∘).

Řešení

Sin[30 Degree]
Cos[30 Degree]
Tan[30 Degree]
Cot[30 Degree]
Sin[90 Degree]
Cos[90 Degree]
Tan[90 Degree]
Cot[90 Degree]

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Jak z jednoho výrazu udělat různé varianty?

dosazovací příkaz: výraz[x]/.x->výraz
Poznámka: Symbol -> lze psát jako - a > (při nastavené české klávesnici lze znak > psát pomocí Alt + 62.

((1+((2*b)/(a-b)))/(a-b*((b-a)/(a-b))))/.a->-2
((1+((2*b)/(a-b)))/(a-b*((b-a)/(a-b))))/.{a->25,b->1}
((1+((2*b)/(a-b)))/(a-b*((b-a)/(a-b))))/.a->2*b

tabulka: Table[vyraz[i], {i, (Subscript[i, min]), (Subscript[i, max]), krok}]
Poznámka: Pro znalce programování jde vlastně o for - cyklus s definovaným krokem.

Table[((1+((2*b)/(a-b)))/(a-b*((b-a)/(a-b)))),{a,1,10,2}]

Jaroslav Reichl, SPŠST Panská, Praha, © 2010

Definice proměnných

názvy proměnných - maximální délka 256 znaků, bez mezer, MUSÍ začínat písmenem

"barvy" proměnných

Mathematica umožňuje definovat proměnné těmito způsoby:
	okamžité přiřazení
	odložené přiřazení

okamžité přiřazení - používá se znak = (např. x = 3; x = x + 3; ...); po přepočítání BUŇKY se do proměnné dosadí daná hodnota, Mathematica si už ale "nepamatuje", jak danou proměnnou vytvořila (podle jakého předpisu) - "pamatuje" si jen její hodnotu

odložené přiřazení - používá se znak := (např. x := 0 je-li proměnná i sudá; x := 1 je-li proměnná i lichá; ...); po přepočítání BUŇKY Mathematica neposkytne žádný výstup, protože konkrétní výstup závisí na dalších proměnných, Mathematica si v tomto případě "pamatuje", jak danou proměnnou vytvořit (podle jakého předpisu, co dosadit, ...)

následující příklad pomůže objasnit rozdíl mezi uvedenými typy přiřazení

ClearAll["Global`*"];
a=Random[] (*Do proměnné a se dosadí náhodné číslo z intervalu (0; 1).*)
b:=Random[] (*O proměnné b si Mathematica zapamatuje, že jí má vytvořit jako náhodné číslo z intervalu (0; 1).*)
Table[a,{5}]
Table[b,{5}]

ClearAll["Global`*"];
j=10
a:=Print[j," je cislo liche cislo"]/;Mod[j,2]==1 (*Definice pro lichá čísla j.*)
a:=Print[j," je cislo sude cislo"]/;Mod[j,2]==0 (*Definice pro sudá čísla j.*)
a

analogicky lze definovat i funkce

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

Úpravy výrazů

užitečné jsou funkce
	Simplify[vyraz] - upraví algebraický výraz; finální tvar nemusí odpovídat "školnímu tvaru";
	Simplify[vyraz, predpoklad] - upraví algebraický výraz za daneho předpokladu; finální tvar ani zde nemusí odpovídat "školnímu tvaru";
	FullSimplify[vyraz] - používá se pro speciální výrazy obsahující speciální funkce (někdy ovšem může pomoci tam, kde funkce Simplify[vyraz] selhala);
	Expand[vyraz] - roznásobí výraz;
	Factor[vyraz] - rozloží výraz na součin činitelů;
	TrigReduce[vyraz] - upraví zadaný výraz i s využitím trigonometrických vztahů;

vyraz=(1/(3 (1+x)))-((-1+2 x)/(6 (1-x+(x^2))))+(2/(3 (1+(1/3) (((-1+2 x))^2))))

Simplify[vyraz]

Simplify[(Sqrt[(((a+5))^2)])]

Simplify[(Sqrt[(((a+5))^2)]),a∈Reals]

Simplify[(Sqrt[(((a+5))^2)]),a≥-5]
Simplify[(Sqrt[(((a+5))^2)]),a<-5]

Expand[(((a+b))^2)]

Expand[(((1+x))^2)(((2+x))^3)(((3+x))^4)]
(*%//TraditionalForm*)

Expand[((a+b+c+d+e+e+f)/2)]

Factor[(a^2)-(b^2)]

Factor[(a^2)+(b^2)]
(*Factor[(a^2)+(b^2),Extension->I]*)

Simplify[((Sin[x])^2)+2Sin[x]Cos[x]+((Cos[x])^2)]
TrigReduce[((Sin[x])^2)+2Sin[x]Cos[x]+((Cos[x])^2)]

Jaroslav Reichl, SPŠST Panská, Praha, © 2014

2. úkol: Úprava výrazů

Napište správně výraz ((sin(x+y)-cos(x-y)+sin(x-2*y))/(sin(x))) a upravte jej. Zjednodušte výraz pro případ, že a) y=x, b) y=-x, c) y=0, d) x=(π/3) a y=(π/4)

Řešení

ClearAll["Global`*"];
vyraz=((Sin[x+y]-Cos[x-y]+Sin[x-y])/(Sin[x]))
%//Simplify
vyraz/.y->x
vyraz/.y->-x
vyraz/.y->0
vyraz/.{x->(π/3),y->(π/4)}

Napište 20 různých zadání písemné práce z matematiky na téma rozklad algebraického výrazu na součin, tj. aplikace výrazů (((A±B))^2), (((A±B))^3), (A^2)-(B^2) a (A^3)±(B^3)

Řešení

Table[Print["Napište jako součin: ",TraditionalForm[Expand[(x+q)(x-p)(x+p)]]],{p,{-2,-1,1,2,3}},{q,2,5}]
Print[Style["ŘEŠENÍ:",24,Red,FontFamily->Times,Bold,Underlined]]
Table[Print["Napište jako součin: ",TraditionalForm[Expand[(x+q)(x-p)(x+p)]]," = ",TraditionalForm[(x+q)(x-p)(x+p)]],{p,{-2,-1,1,2,3}},{q,2,5}]

Jaroslav Reichl, SPŠST Panská, Praha, © 2014