Univerzita J. E. Purkyně v Ústí nad Labem Přírodovědecká fakulta
VÝPOČTY V PROGRAMU MAPLE KCH/0104
Magda Škvorová
Ústí nad Labem 2013
1
Obor:
Chemie, Fyzika, Biologie, Informatika
Klíčová slova:
MAPLE, výpočty, programování, analýza, lineární algebra, řešení rovnic
Anotace:
Opora se zabývá využitím moderního programu MAPLE pro chemické a fyzikální výpočty. Program velice usnadní především časově náročné výpočty (složité úpravy výrazů, derivace a integrály složitějších funkcí, numerické výpočty) a může být dobrým nástrojem např. při přípravě protokolů k laboratorním cvičením nebo při výpočtech v bakalářských a diplomových pracích. Opora je rozdělena do sedmi částí. Nejprve se seznámíme s prostředím samotného programu Maple, poté se bude probírat postupně využití programu k různým matematickým operacím. Kapitoly jsou doplněny o řadu příkladů a to jak obecných, tak z odborné praxe.
Projekt „Mezioborové vazby a podpora praxe v přírodovědných a technických studijních programech UJEP“ Registrační číslo projektu: CZ.1.07/2.2.00/28.0296 Tento projekt byl podpořen z Evropského sociálního fondu a státního rozpočtu České republiky.
©
UJEP v Ústí nad Labem, 2013
2
Autor:
Magda Škvorová
3
OBSAH 1. Úvod do programu MAPLE …………………………………………………………………….. 5. 2. MAPLE jako kalkulačka …………………………………………………………………………… 9. 3. Dokument vs. Worksheet ……………………………………………………………………… 14. 4. Úprava výrazů ………………………………………………………………………………………. 22. 5. Algebra, Diferenciální a integrální počet ……………………………………………….. 42. 6. Řešení rovnic a jejich soustav ……………………………………………………………….. 56. 7. 2D a 3D grafy ……………………………………………………………………………………….. 69.
4
Úvod do programu MAPLE Naučíme se požívat prostředí MAPLE aniž bychom znali jediný příkaz (možná jeden...). Otevřeme si prázdný dokument MAPLE: File/New/Document Mode - V horní části najdeme nabídku a nástroje. - Vpravo najdeme různé záložky pro řešení matematických problémů, druhy písma a programování. - Abychom mohly vkládat matematické výrazy a MAPLE je uměl spočítat, musíme se nacházet v na horní liště dokumentu. modu pro matematiku. To poznáme pomocí zvýrazněného políčka Math Pokud máme zvírazněné políčko Text, pak píšeme pouze text a program nám nic nespočítá.
Použití [Enter] - potvrdíme provedení matematické operace (umocnění provedeme pomocí operátoru ^) - Na prázdnou řádku napíšeme 1 + 3 a [Enter]. 1 C3 4
(1.1)
x C3
(1.2)
2
x C5 K2 2
Použití "Context menu" - nabídka k danému výrazu - Umístětě kurzor na výsledek daného výrazu a klikněte pravím tlačítkem myši. - Rozbalí se nabídka, která vám říká, co vše lze s daným výrazem provést (itegrovat → integrate/x, zobrazit graf → Plots/2-D plot) - Vybereme např. integrate a proměnnou x a klikneme. 2
x C5 K2 x2 C3
(2.1)
1 3 x C3 x 3
(2.2)
integrate w.r.t. x
/
300
200
100
K10
0
K5
5 x
10
K100
K200
K300
Tip: Graf lze libovolně upravovat → Klikneme levím tlačítkem myši na graf (Můžeme použít opět "Context menu" (pravý klik) nebo nástroje v horní části obrazovky).
Změna výrazu a jeho přepočet: - Výpočet lze libovolně měnit. - Vrátíme se k výrazu, změníme jej dle požadavku a použijeme [enter] 2 C3 5 (3.1) - Pokud potřebujeme změnit veškerý výsupy související se změněným výrazem, pak použijeme nástroj "! ", který nalezneme v horní části obrazovky. - Výraz změníme (např. místo x2 napíšeme 10x2 ), označíme veškěré původní výstupy daného výrazu (včetně grafu) a klikneme na "! " 10 x2 C5 K2
2
10 x C3
(3.2)
10 3 x C3 x 3
(3.3)
integrate w.r.t. x
/
3000
2000
1000
K10
0
K5
5 x
10
K1000
K2000
K3000
Tip: Pokud klikneme na nástroj "!!! " přepočítá se nám celý dokument aniž bychom museli něco označovat. Pokud naopak potřebujeme odstranit všechen výstup při výpočtech použijeme: Edit/Remove Output/From Worksheet Vyzkoušejte si sami: 1, Proveďte derivaci funkce 4(2a +3a2)-10a+30. 2, Zobrazte graf vzniklé funkce. 3, Proveďte to samé s pozměněnou funkcí (např. 3a2 → 3a3)
MAPLE jako kalkulačka Matematické výrazy lze vkládat v programu MAPLE několika způsoby. Vyberte si, co je pro vás nejpohodlnější sami.
MAPLE a čísla: - Maple vždy dává přesný výsledek daného výrazu: 1 1 C 2 3 5 (1.1) 6 - Pokud máme zájem o přibližnou hodnotu výsledku (jako na kalkulačce), pak použijeme: pravý klik na výsledku + Approximate/počet des. míst 1 1 C 3 2 5 6
(1.2)
0.83333333333333333333
(1.3)
0.83333
(1.4)
at 20 digits
at 5 digits
- Jestliže již vkládaný výraz obsahuje desetiná čísla, pak i MAPLE zobrazí výstup v desetinných číslech - POZOR: Desetinná čísla obsahují vždy tečku. (Jedná se o kanadský program.) 0.5 x C
1 x 3
0.8333333333 x (1.5) - Pokud máme zájem o jiný číselný formát výstupu, pak popužijeme: pravý klik na výsledku + Numeric Formatting... a zvolíme druh formátu, počet deset. míst atd. 0.5 x C
1 x 3 8,333 # 10 - 1 x
(1.6)
Záložky (Palettes): MAPLE poskytuje přes tisíc různých matematických symbolů a výrazů na více než 20 záložkách
vlevo na obrazovce. Záložky slouží k přímému vkládání běžných matematických výrazů. Vše funguje na základě vzoru, do kterého lze doplňovat. - Použijeme záložku "Expression" k výpočtu integrálu fuknce: 6
4 t Csin t 6
4 t Csin t
(2.1)
- Klikneme na symbol neurčitého integráu f dx v rozbalené záložce Expression a vzor k vyplnění se nám objeví na obrazovce. Vyplníme daná pole. Pomocí [TAB] se přesouváme k vyplnění dalších polí. Po vyplnění stiskneme [ENTER]. 4 t6 Csin t dt 4 7 t Kcos t 7
(2.2)
Vyzkoušejte si sami: Vypočítejte limitu funkce f(x)=sin(x2)/x pro x →0. Tip: Výrazy, které používáte nejčastěji, si můžete uložit do záložky "Favorites". Kliknete pravým tlačítkem na daný výraz v záložkách a zvolíte "Add to Favorites Palette".
Doplňování symbolů a příkazů: - Mechanismus doplňování nebo kompletování výrazů a symbolů je ekvivalentem k používání záložek. - Stačí napsat pár prvních písmen symbolu, který chcete vložit a stisknout [ESC]. Poté vyberete symbol ze seznamu nabýdky. 2
- Vložíme výraz: π C x → Pro vložení π napíšeme "pi" a [ESC] a vybereme π; pro napíšeme "sqrt" [ESC] a vybereme x .
x
2
π C x 2
π C x Vyzkoušejte si sami: Zobraste graf funkce y=ex. Použijte vlastnost doplňování.
Malá a velká písmena v MAPLE: Rozlišujeme psaní malých a velkých písmen při volbě proměnné! - podívejte se na rozdíl: x Cx
(3.1)
2x
(4.1)
z CZ
(4.2)
z CZ
Implicitní násobení Mezera mezi proměnými automaticky znamená pro MAPLE násobení! Pokud nechcete použít mezeru, funguje i symbol "*". - Napište 3xy → 3[SPACE]x[SPACE]y 3xy 3xy
(5.1)
3$x$z 3xz (5.2) POZOR - Nevadí pokud vynecháte mezeru mezi číslem a proměnou (3x[SPACE]y). MAPLE to považuje automaticky za násobení. - Pokud vynecháte nezeru mezi x a y, MAPLE to bere jako jednu proměnou xy - Vyplívá z toho další pravidlo → název proměné nikdy nezačíná číslem ! - Napíšeme výraz "x [Space] y C xy " a derivujeme podle x (již v nabídce proměnných, podle kterých lze derivovat, vidíte tři varianty) x y Cxy x y Cxy
(5.3)
y
(5.4)
differentiate w.r.t. x
Tip: Pozor na zadávání celých výrazů. Např. pokud napíšete f(x+1), pak to bude chápáno, jako volání funkce, nicméně x(x+1) napsáno bez nezery bude pro MAPLE znamenat úplně to samé. Musíme tedy mezi x a (x+1) použít operátor násobení nebo mezeru. f x C1 f x C1
(5.5)
differentiate w.r.t. x
D f
x C1
(5.6)
x x C1 x x C1
(5.7)
2 x C1
(5.8)
differentiate w.r.t. x
Obecné matematické značení MAPLE porozumí i jiným než standardním matematickým zápisům. - Pokud napíšeme y''+y'+y=0, pak program pozná, že se jedná o diferenciální rovnici pro y(x) y''Cy'Cy = 0 2
d d y x C y x Cy x = 0 2 dx dx
(6.1)
solve DE K
y x = _C1 e
1 x 2
sin
K
1 2
3 x C_C2 e
1 x 2
cos
1 2
3 x
(6.2)
Odkaz na výraz - MAPLE dokáže rozpoznat odkaz na daný výraz, který byl již jednou zadán. - Každý vypočtený výraz má zároveň číslo, na které se lze odkazovat. Referenci na daný výraz zadáme pomocí kláves [CTRL]+[L]. Do okna poté napíšeme číslo námi odkazované rovnice. 6 4 t Csin t 6
4 t Csin t
(7.1)
(7.1) cos t 6
4 t Csin t
cos t
(7.2)
Přiřazení proměnné Většinou se při výpočtech nevyhneme tomu, abychom pracovali dále z danými výrazy. Proto je velice užitečné daným výrazům přiřadit nějaké jméno. Můžeme to udělat dvěmi způsoby: - Vložíme výraz, ketrý např. můžeme i upravit (roznásobit atd). Výsledku poté přiřadíme jméno pomocí "context menu", kde zvolíme "Assign to a Name" a vložíme název. x C2 y
3
x C2 y
3
(8.1)
expand
=
x3 C6 x2 y C12 x y2 C8 y3
(8.2)
z1
(8.3)
assign to a name
z1 C3 x x3 C6 x2 y C12 x y2 C8 y3 C3 x - Další možností je přiřadit jméno proměnné rovnou při vlkádání → název proměnné:= výraz.
(8.4)
a1 d 5 x 5x
(8.5)
7x
(8.6)
a2 d 7 x a3 d a1 Ca2 12 x - Pokud nechceme zobrazovat výpis dané proměnné, pak za výrazem napíšeme ":".
(8.7)
b1 d 5 x C2 : 2 b1 5 x C2
2
(8.8)
- Pokud chceme danou proměnnou "osvobodit" od přiřezeného jména, pak musíme přistoupit k použití příkazu unassign('jméno'). b1 d 5 x C2 5 x C2
(8.9)
5 x C2
(8.10)
b1
b1 d unassign 'b1' (8.11) b1 Vyzkoušejte si sami: 1, Zadejte funkci cos x + x2 a spočítejte její derivaci a integrál různými způsoby. 2, Výrazu po integraci a po derivování přiřaďte různá jména a zobrazte graf jejich součtu.
DOKUMENT vs. WORKSHEET MAPLE nabízí dva módy práce. Jedním z nich je tzv. Document mode a druhý Worksheet mode. Oba nabízejí různou formu, jak se dostat k požadovanému výsledku a umožňují přepínání mezi sebou v průběhu práce. Document mode, který se otevírá defaultně s Maple, umožňuje tvorbu vzhledově přijatelnějších výstupů. Worksheet mode je pro Maple tradičnějším prostředím a pro práci v něm je nutné na začátku práce otevřít nový list pomocí: File/New/Worksheet mode.
Porovnání Document a Worksheet modu: Document Mode
Workseet Mode
• Vypadá jako klasický dokument - mohu vkládat text i řešit příklady v uživatelsky velmi přijatelném prostředí. • Na začátku řádku se nezobrazuje znak [ >.
• Původní prostředí pro práci s programem MAPLE. Pro složitější příklady může být mnohem rychlejší výpočet. • V dokumentu se zobrazují na počátku řádku tyto znaky: O
• Matematické výrazy se zadavají ve 2-D modu (výraz vypadá tak, jak jej známe z běžného textu):
• Matematické výrazy lze zadat ve 2 -D i 1-D modu 2-D:
x dx x C5 1 ln x2 C5 2
2 = 1, x 3 Cx K1 C 6 , K1 K 6
O solve x K
2
(1.1)
(1.2)
O 1-D (červená barva, výraz se ukončuje ";"):
• Matematický výraz lze vyřešit pomocí context menu, a to jak kliknutím na vstupní výraz tak i na výsledek.
O solve(x-2/(3+x)=1, x); K1 C 6 , K1 K 6 (1.3) O • Matematické výrazy lze řešit pomocí context menu kliknutím na výsledek (modrý výstup, řešení)
Přepnutí mezi zadávání textu a zadávání matematiky.
[F5] nebo horní lišta Text
Přepnutí mezi 2D a 1-D zadáním matematického výrazu.
[F5] 2-D černá 1-D červená
Výpočet zadaného výrazu a zobrazení výsledku na dalším řádku.
[ENTER]
Výpočet zadaného výrazu a zobrazení výsledku na dalším řádku.
[ENTER]
Výpočet zadaného výrazu a zobrazení výsledku na stejném řádku.
[CTRL] [=]
Pokračování psaní výrazu na další řádce bez zobrazení výsledku.
[SHIFT] [ENTER]
Přepnutí do worksheet mode
[> na horní liště
Přepnutí do document mode
Format/Create Dokument Block
Math
Spuštění File/New/Docume Spuštění dokument mode nt Mode worksheet mode (otevírá se jako default)
File/New/Worksh eet Mode
Kombinování textu a matematických výrazů v Dokument modu Zobrazení výsledku v jednom řádku se zadaným výrazem Pokud chceme, aby se nám zobrazoval výsledek vloženého výrazu v jedné řádce, tak jak je tomu v normálním textu, použijeme: [CTRL] [=] místo doposud používaného [ENTER] Př: Napište 3x+2(x+1) a poté použijte [CTRL] [=] 3 x C2 x C1 = 5 x C2
Matematické výrazy v textu 1. Zadáme jednoduchý výraz. Spočítáme integrál funkce x3+x2+3 tak, aby se výsledek oběvil v jednom řádku se zadáním: x3 Cx2 C3 dx =
1 4 1 3 x C x C3 x 4 3
2. Umístíme kurzor před integrál, stiskneme [F5] nebo změníme v horní liště Math na Text a napíšeme: 3
2
Integrál x Cx C3 dx =
1 4 1 3 x C x C3 x 4 3
3. Poté označíme "=" a opět stiskneme [F5] a napíšeme: 3
2
Integrál x Cx C3 dx se rovná
1 4 1 3 x C x C3 x 4 3
4. Nakonec umístíme kurzor za výsledek a opět změníme Math na Text a napíšeme: 3
2
Integrál x Cx C3 dx se rovná
1 4 1 3 x C x C3 x , jak můžete sami vidět. 4 3
Přepočítání výrazu v textu Pokud nyní změníme nějak matematický výraz a stiskneme ! v horní liště, výraz se nám přepočítá, ale text se nezmění. Integrál x3 C5 x2 C3 dx se rovná
1 4 5 3 x C x C3 x , jak můžete sami vidět. 4 3
POZOR: Vše co zadáte jako text s tím MAPLE nebude počítat při výpočtech. Je vždy dobré si zkontrolovat v jakém modu pracujete na horní liště.
Vyzkoušejte si sami: 2
Výraz sin y C10$y Cy nejprve derivujte a následně integrujte. Poté vše popište textem a nakonec výraz změňte a přepočítejte. (Pokud funkci sin x C10$y Cy2 derivujeme podle y 10 C2 y a následně integrujeme podle y 10 y Cy2, obdržíme totožnou funkci.)
Vkládání matematiky pomocí příkazů Většinu základních matematických operací můžete provést pomocí context menu nebo použitím záložek.
Úkol: Vyzkoušejte si, co vše lze v contex menu najít. Např. dosazení do výrazu - evaluate at point 3 x2 C5 x C7
evaluate at point
145
Další alternativou pro zadání matematické operace je příkaz (command). Pomocí Maple můžeme řešit mnoho i velmi složitých příkladů, proto většinu operací lze zadat pouze pomocí příkazu. Nicméně, zadávání těch nejběžnější, se tvůrci snažili uživatelům co nejvíce usnadnit a tak postupem času vytvořili záložky a context menu. Pokud budeme používat 1-D matematiku ve worksheet modu musíme používat příkazy. 2
Př. Integrál ex může být vypočten pomocí záložky se symbolem inetgrálu a nebo pomocí příkazu int (výraz, x=a..b), kde a a b jsou meze integrálu, pokud jej řešíme jako určitý. Pro neurčitý integráz píšeme pouze proměnou. Zároveň sama funkce, kterou řešíme může být zapsána pomocí příkazu exp (). 2.4
x2
e dx 2.1
51.48568229
(3.1)
51.48568229
(3.2)
O int(exp(x^2), x = 2.1 .. 2.4); 51.48568229 O
(3.3)
2
int exp x , x = 2.1 ..2.4 Worksheet mode 1-D:
Vypočtěte sami: Napište polynom x2+xy+y2 v 1-D i 2-D a řešte pro x=10. Poté výraz integrujte podle y.
Nápověda v MAPLE Je zřejmé, že použití příkazů nemusí být jednoduché. Asi těžko si budete pamatovat příkazy, které běžně nebudete používat. Právě kvůli tomu Maple disponuje velice dobře propracovaným systémem nápověd. Zavolání nápovědy provedeme pomocí Help/Maple Help nebo stisknutím [CTRL] [F1] . Do vyhledávače zadáme požadovaný výraz např. "integral" a stiskneme Search. POZOR - program pracuje pouze v anglickém jazyce. Nápověda nám nabýdne několik možností, kde se slovo "integral" oběvuje. Hned první nabýdka je příkaz int. Můžete vidět, že nápověda je velice dobře srozumitelná i pro ty, kteří nemají moc rádi angličtinu. Je zde mnoho příkladů, které si můžete libovolně zkopírovat do dokumentu a vyzkoušet si je sami.
int - definite and indefinite integration Calling Sequence
int(expression,x, options)
expression dx
int(expression,x=a..b, options)
b
expression dx a
int(expression, [x, y, ...], options) int(expression, [x = a..b, y = c..d, ...], options)
expression dx dy d b
expression dx dy c a
Parameters expression
- algebraic expression; integrand
x, y
- names; variables of integration
a, b, c, d
- endpoints of interval on which integral is taken
options
- (optional) various options to control the type of integration performed. For example, numeric=true will perform numeric instead of symbolic integration. See ?int/details for more options.
Description • The int(expression, x) calling sequence computes an indefinite integral of the expression with respect to the variable x. Note: No constant of integration appears in the result. • The int(expression, x = a..b) calling sequence computes the definite integral of the expression with respect to the variable x on the interval from a to b. • The int(expression, [ranges or variables]) calling sequence computes the iterated definite integral of the expression with respect to the variables or ranges in the list in the order they appear in the list. Note: The notation int(expression, [x = a..b, y = c..d]) is equivalent to int(int(expression, x = a..b), y = c..d) except that the single call to int accounts for the range of the outer variables (via assumptions) when computing the integration with respect to the inner variables. • You can enter the command int using either the 1-D or 2-D calling sequence. For example, int(f,x) is equivalent to f dx. • If any of the integration limits of a definite integral are floating-point numbers (e.g. 0.0, 1e5 or an expression that evaluates to a float, such as exp(-0.1)), then int computes the integral using numerical methods if possible (see ?evalf/int). Symbolic integration will be used if the limits are not floating point numbers unless the numeric=true option is given. • If Maple cannot find a closed form expression for the integral (or the floating-point value for definite integrals with float limits), the function call is returned.
Examples No constant of integration appears in the result for indefinite integrals. 3 2 O f := 7 x C3 x C5 x : O
f dx 7 4 5 2 3 x Cx C x 4 2
O
(4.4.1)
sin x dx Kcos x x
O
3
x K1
dx
1 1 1 2 ln x K1 K ln x Cx C1 C 3 6 3 O
(4.4.2)
3 arctan
1 3
2 x C1
3
(4.4.3)
2
eKx dx
1 π erf x (4.4.4) 2 If Maple cannot find a closed form expression for the integral, the function call is returned. O
2
eKx ln x dx Kx2
e
ln x dx
(4.4.5)
2
(4.4.6)
Compute definite integrals. π
O
sin x dx 0
N
2
eKx ln x dx
O 0
K N
2
eKx ln x
O
2
1 4
π γK
1 2
π ln 2
(4.4.7)
dx
0
1 5/2 1 π C 16 8 An Elliptic integral
2
π γ C
1 2
π γ ln 2 C
1 2
π ln 2
2
(4.4.8)
3
O
1
2 t4 K3 t2 K2 2 1 1 5 EllipticF 5 3 A double integral O
dt 7,
1 5
5
K
1 5
5 EllipticF
1 2
2,
1 5
5
(4.4.9)
2
O int x y , x, y 1 2 3 x y 6 2
(4.4.10)
y 2
O
x y dxdy K2 0
32 (4.4.11) 5 If either of the integration limits are floating point numbers, then int computes the integral using numerical methods. 2
y 2
O
x y dxdy K2.0 0.0
6.400000000 An integral with decimal limits using numerical methods:
(4.4.12)
1.25
O
x dx x C1 3
0.75
0.2459707569 (4.4.13) To apply symbolic integration methods instead, use numeric=false: x O int 3 , x = 0.75 ..1.25, numeric = false x C1 1 1 1 1 K 3 arctan 3 K ln 13 C ln 7 (4.4.14) 3 6 6 2 1 1 1 C 3 arctan 3 K ln 3 3 2 2 The option numeric=true or simply numeric may also be used to compute a numerical integral even with exact limits: x 3 5 O int 3 ,x= .. , numeric 4 4 x C1 0.2459707569 (4.4.15)
Details For detailed information including: • Integration over a complex interval • Numerical integration • Handling discontinuities • Series expansions • Inert form of the int command, Int see the ?int/details help page.
See Also convert,rational, diff, evalf/int, int/details, IntegrationTools, VectorCalculus, VectorCalculus[int]
Pokud potřebujete zobrazit příklady v 1-D matematice, pak stisknete na horní liště
Jestliže již pracujete na dokumentu a potřebuje nápovědu ohledně nějakého příkazu, pak máte dvě možnosti: 1. Napíšete v matematickém modu ?jméno a [ENTER]. (Používáme většinou v případě, že již známe volání příkazu, ale nevíme jak jej přesně zadat) Př. ?solve 2. Pokud potřebujete informaci o již napsaném výrazu, pak najedete kurzorem na dané slovo a stiskneme [F2]. Vyzkoušejte si sami. Další nápověda: • Help/Quick Help nebo [F1] - Klávesové zkratky • Help/Quick Reference nebo [CTRL] [F2] - Přehled důležitých • ?examples, index - Dokument se seznamem příkazů. Otevře se v novém okně. ?examples,index • Tools/Task/Browse - Dokument pro řešení úkolů.
Vyzkoušejte si sami: Najděte si nápovědu pro příkaz expand. Prostudujte a zkopírujte si příklady do dokumentu na vyzkoušení. Vymyslete si vlastní příklad. Najděte si další příkaz pro úpravu výrazů v nápovědě.
ÚPRAVA VÝRAZŮ Významným krokem při řešení algebraických úloh je úprava výrazù, která umožńuje převod výrazù do jiné, často jednodušší formy. Vhodnými úpravami lze eliminovat přebytečné členy ve výrazech nebo převést výraz do tvaru, který je výhodnější pro další výpočty. Tak například, při integraci je zpravidla výhodné složité výrazy roznásobit, provést vlastní integraci jednotlivých členù vzniklého součtu a nakonec výsledný tvar zjednodušit. Neexistuje však jednoznačný předpis, jak u složitých výrazů postupovat. Proto MAPLE běžně provádí pouze základní formu úpravy výrazù, např. sčítá a odčítá shodné členy ve výrazech a krátí ve zlomcích shodné součinitele. Složitìjší úpravy je nutno provádìt voláním jednotlivých funkcí, které Maple pro úpravy výrazů nabízí. Ale rozhodnutí o tom, co je nejjednodušší tvar určitého vzorce, mùže být i záležitostí vašeho vkusu nebo účelu, pro který hodláte výraz dále použít.
Základní elementy používané v Maple Při použití běžných programovacích jazyků jako jsou FORTRAN, Pascal nebo BASIC se většinou používá pouze několik základních elementů jako jsou čísla, proměnné, řetězce nebo jejich pole. V jazyce Maple je počet běžně používaných elementů podstatně vyšší. Kromě již výše zmíněných typů se zde totiž objevují i další typy jako jsou rovnice, řady, operátory, množiny atd. Přehled nejdůležitějších základních elementů je obsahem této kapitoly.
Čísla Celá čísla Celé číslo (integer) je libovolný sled číslic eventuálně s přidaným znaménkem. Narozdíl od jiných jazyků není v Maple omezen počet číslic. (Omezení je dáno pouze velikostí paměti počítače, jeho rychlostí a trpělivostí uživatele.) Zápis čísla nesmí obsahovat desetinnou tečku, jinak je číslo považováno za typ desetinné číslo. Celá čísla lze definovat i pomocí vhodných výrazů obsahujících opět celá čísla např. 10^6. Př. K123 K123
(1.1.1.1)
23695876
(1.1.1.2)
1200000000000000000000000000000000000
(1.1.1.3)
23695876 12$10
35
7256 221359540004604815545018861547494593716251705026007306991636639052470\ (1.1.1.4) 49740079899968480034338379403807827944552623126075988673634259405\ 60014856027866381946458951205837379116473663246733509680721264246\ 243189632348313601
Racionální čísla Racionální číslo (fraction) se zapisuje jako dvojice kladných celých čísel eventuálně s
přidaným znaménkem oddělených lomítkem. Opět zde není žádné omezení na velikost čísel. Pokud racionální číslo není v základním tvaru provede Maple automaticky jeho zkrácení. Př. K221 17 K13
(1.1.2.1)
256987 5889651
(1.1.2.2)
256987 5889651
Desetinná čísla Desetinné číslo (float) se zapisuje jako číslo obsahující desetinnou tečku. Alternativní formou je zápis N1eN2 kde N1 a N2 jsou celá čísla vyjadřující desetinné číslo pomocí výrazu N1* 10^N2. Použití desetinných čísel se v Maple příliš nedoporučuje, protože mnoho příkazů s nimi nedokáže pracovat. Je proto výhodnější je nahradit příslušným racionálním číslem. Převod mezi oběma typy lze provést pomocí příkazů convert(číslo,rational) nebo evalf(číslo). Př. 0.5 0.5
(1.1.3.1)
0.5000000000
(1.1.3.2)
6.023 e23
(1.1.3.3)
1. 2 23
6.023 e
Komplexní čísla Komplexní čísla (complex) se uvádějí ve tvaru C1+C2*I, kde I je imaginární jednotka a C1 a C2 jsou celá, racionální nebo desetinná čísla. Př. 1 CI 1 CI
(1.1.4.1)
3.6 I
(1.1.4.2)
3.6$I
Systémové konstanty Systémové konstanty jsou čísla a symboly, kterým jsou od počátku přiřazena symbolická jména (Pi, imaginární jednotka, true, false,...). Př. Rozdíl mezi zápisem pi a Pi
Pi
at 10 digits
3.141592654
pi π
(1.1.5.1)
K1
(1.1.5.2)
Př. Imaginární jednotka 2
I
Interval Při mnoha příležitostech se v rámci Maple používá konstrukce nazývaná interval (range), který vyjadřuje určité rozmezí, ve kterém se může proměnná pohybovat. Rozsah je definován jako od .. do kde od a do jsou čísla udávající spodní a horní mez intervalu. Rozsah se obvykle používá v součtech a násobeních, pro vymezení mezí polí, v grafických zobrazeních, pro interval zobrazení s operátorem opakování ($) nebo s operátorem spojování řetězců (||) pro vytváření sekvencí výrazů. Př. sum i, i = 1 ..3 6
(1.2.1)
1 ..3
(1.2.2)
1, 2, 3
(1.2.3)
1 ..3 $ 1 ..3
Symboly Nejdůležitějším rysem Maple je schopnost pracovat přímo s proměnnými, kterým není přiřazena žádná číselná hodnota. V běžných programech má výraz a*b význam: Vezmi hodnotu čísla přiřazeného symbolu a a vynásob ji hodnotou čísla přiřazeného symbolu b. K tomu aby měl uvedený výraz smysl, musí být proměnným a a b předem přiřazena určitá číselná hodnota. Maple však může pracovat jak s čísly, tak přímo s proměnnými, kterým nebyla přiřazena žádná hodnota a Maple s nimi pracuje stejně tak jako člověk s papírem a tužkou. Maple rozeznává čtyři typy symbolů: jména, řetězece, tabulky a pole.
Jméno Jméno (name) je název jednoduché symbolické proměnné. Jména se obyčejně skládají z malých a velkých písmen, číslic a znaku pro podtržení. (Přitom se rozlišují malá a velká písmena, tedy Pi, PI a pi jsou různá jména a pouze Pi má přiřazenu hodnotu Ludolfova čísla.)
Jména mohou ve výjimečných případech také obsahovat i všechny ostatní znaky včetně mezer. V tom případě však je nutno jméno ohraničit obrácenými apostrofy. Př. a a
(1.3.1.1)
velmi divne jmeno
(1.3.1.2)
CHYBA
(1.3.1.3)
'velmi divne jmeno' CHYBA
Řetězce Velmi obdobné použití jako proměnné má v Maple další typ symbolu - řetězec (string). Výraz se napíše v uvozovkách "". Oproti algebraickým proměným nelze hodnotu řetězce nahrazovat výrazem. (Nelze do něj "dosazovat"). Lze však pro něj provádět operace běžné u jiných programovacích jazyků - vybírat jeho části, měřit jeho délku atd. Př. a a
(1.3.2.1)
"a"
(1.3.2.2)
1
(1.3.2.3)
"a" ad1 "a" d 1 Error, illegal use of an object as a name "a" d 1 substring "abcd", 2 ..3 "bc" substring abcd, 2 ..3 bc substring "b", 2 ..3 "" substring b, 2 ..3
(1.3.2.4) (1.3.2.5) (1.3.2.6) (1.3.2.7)
length "abcd" 4
Tabulky Pokud je řetězec zapsán ve tvaru jméno1[jméno2]
(1.3.2.8)
vytvoří Maple automaticky strukturovanou proměnnou jméno1 nazývanou tabulka (table). Velikost tabulky je teoreticky neomezená, prakticky je omezena pouze dostupnou pamětí počítače. Jednotlivé prvky tabulky jsou pak definovány pomocí proměnné jméno2, což muže být nejen číslo, ale i další řetězec, pole, sekvence atd. Př. a 1 a1
(1.3.3.1)
b1, 1
(1.3.3.2)
anglickypes
(1.3.3.3)
xz
(1.3.3.4)
b 1, 1 anglicky pes x z y y
Spojování řetězců Zejména při pokročilejším použití Maple a při programování v Maple se používá operace spojování řetězců. Spojováním řetězců dostaneme nový řetězec. Spojování řetězců se provede pomocí výrazů jméno||číslo jméno||řetězec jméno||(výraz) jméno||(interval) Pokud je výraz za tečkou číslo, řetězec nebo výraz je výstupem opět řetězec, je-li výraz za tečkou interval, je výstupem sekvence výrazů pro všechna celá čísla v daném rozmezí. Při posledních dvou tvarech spojování řetězců je nutno do výrazu vložit závorky, aby bylo zřejmé, že tečka se vztahuje k celému výrazu závorce a ne pouze k jeho prvnímu členu. Př. id5 5
(1.4.1)
p5
(1.4.2)
a10
(1.4.3)
a1, a2, a3
(1.4.4)
p i a a
2i 1 ..3
Př. Viriální rozvoj do B
6 5
zd1C
>B j=1
j C1 j V 1C
B2 B3 B4 B5 B6 C 2 C 3 C 4 C 5 V V V V V
(1.4.5)
Vnitřně definované funkce Součástí výrazů mohou být i reálné nebo komplexní funkce. Program Maple zná mimo jiné průběh a vlastnosti následujících matematických funkcí: trigonometrické a hyperbolické funkce: sin, cos, tan, sec, csc, cot, sinh, cosh, tanh, sech, csch, coth inverzní trigonometrické a hyperbolické funkce: arcsin, arccos, arctan, arcsec, arccsc, arccot, arcsinh, arccosh, arctanh, arcsech, arccsch, arccoth ostatní funkce abs
- absolutní hodnota reálného nebo komplexního čísla
ceil conjugate Dirac erf erfc exp factorial floor frac hypergeom Im ln log log10 max, min Re round signum sqrt trunc
- nejmenší celé číslo větší nebo rovno než argument - číslo komplexně sdružené - Diracova delta funkce - chybová funkce - doplňková chybová funkce - exponenciální funkce - faktoriál - největší celé číslo menší nebo rovno než argument - zlomková část reálného čísla - obecná hypergeometrická funkce - imaginární část komplexního čísla - přirozený logaritmus - obecný logaritmus - dekadický logaritmus - maximum a minimum posloupnosti čísel - reálná část komplexního čísla - nejbližší celé číslo - znaménko reálného čísla - druhá odmocnina - celá část reálného čísla
Uvedená tabulka je pouze výběrem z funkcí definovaných v základní knihovně Maple. Kompletní
seznam všech funkcí dostanete po vyvolání nápovědy ?inifcn nebo stačí klepnout na tento odkaz. I pro jednotlivé funkce můžete získat nápovědu klepnutím na její název v předchozí tabulce. Další matematické funkce jsou definovány v různých programových balíčcích např. kombinatorické funkce v balíčku combinat nebo ortogonální polynomy v balíčku orthopoly. Př. ln 10. 2.302585093 sin
(1.5.1)
Pi 4 1 2
2
(1.5.2)
ceil Pi 4
(1.5.3)
3
(1.5.4)
3
(1.5.5)
round Pi floor Pi
Sekvence výrazů Několik výrazů oddělených od sebe čárkami tvoří sekvenci výrazů. Sekvenci výrazů například dostáváme jako výsledek řešení složitějších rovnic. Například řešení kubické rovnice poskytuje zpravidla sekvenci tří řešení. Sekvenci lze vytvořit též pomocí operátoru opakování $. Např. x$3 je identické se sekvencí x,x,x. Další variantou je kombinace operátoru opakování s intervalem $a..b nebo $i=a..b, kde a a b jsou celá čísla a i proměnná. Poslední možností je pak využití funkce seq seq( x , i = a..b ) kde x je výraz, který závisí na proměnné i. Na jednotlivé výrazy sekvence se lze odkazovat podobně jako na prvky pole, tedy $x[1] je první výraz sekvence x. Př. x d 10, 20, 30, 40 10, 20, 30, 40
(1.6.1)
30
(1.6.2)
a, a, a, a, a
(1.6.3)
x 3 x d a$5
$2 ..5 2, 3, 4, 5
(1.6.4)
a1, a2, a3
(1.6.5)
1, 4, 9, 16, 25, 36, 49, 64, 81, 100
(1.6.6)
a1, a2, a3
(1.6.7)
a i $i = 1 ..3 2
seq i , i = 1 ..10 seq a i , i = 1 ..3
Seznam a množina Uzavřeme-li sekvenci výrazů do hranatých závorek [ ] dostáváme jediný výraz nazývaný seznam (list). Uzavřeme-li sekvenci výrazů do svorkových závorek { } dostáváme jediný výraz nazývaný množina (set). Oba výrazy jsou tedy velmi podobné, rozdíl mezi seznamem a množinou je pouze v tom, že množina obsahuje pouze rozdílné prvky, seznam může obsahovat i prvky identické. Mnoho příkazů Maple ale vyžaduje buď použití seznamu nebo množiny, případně je výsledek funkce závislý na tom, kterou formu výrazu použijeme. Na jednotlivé prvky seznamu a množiny se můžeme odkazovat opět jako na prvky pole nebo sekvence, tedy například jako x[i]. Př. sekvence d 1, 2, x,'ahoj' 1, 2, x, ahoj
(1.7.1)
1, 2, x, ahoj
(1.7.2)
1, 2, x, ahoj
(1.7.3)
x, x, x, x, x, x, x, x, x, x
(1.7.4)
x, x, x, x, x, x, x, x, x, x
(1.7.5)
x
(1.7.6)
x
(1.7.7)
s d sekvence m d sekvence s d x$10 ld s md s l 2
Rovnice a nerovnice V programu Maple lze definovat jako výrazy také rovnice nebo nerovnice, tedy výrazy obsahující následující operátory: = , > , < , <> , >= , <=
Rovnice se nejčastěji používají v příkazech pro řešení rovnic a jejich soustav, podrobněji se jimi budeme zabývat v kapitole Řešení rovnic. Zde se jen seznámíte s několika příklady. Př. 2
rovnice d x Cy = 1 2
x Cy = 1
(1.8.1)
solve for x
x=
1 Ky , x = K 1 Ky
(1.8.2)
2
nerovnice d x Cy O 1 1 ! x2 Cy
(1.8.3)
solve for y 2
1 Kx ! y
(1.8.4)
Úprava výrazů normal - převod do normálního tvaru Volání: normal(f) Parametry: f - libovolný algebraický výraz Popis: Funkce normal poskytuje pouze základní formu zjednodušení. Tato funkce zjednodušuje pouze omezenou třídu výrazů. Je schopen zjednodušit například libovolný výraz tvořený součty, součiny a celočíselné mocniny celých čísel a proměnných. Výraz je převeden do formy zlomku s celočíselnými koeficienty. Je-li f seznam, množina, interval, řada, rovnice nebo funkce je funkce normal použita na všechny členy f. Příklady: normal x2 K x C1 $ x K1 K1 0 2
normal
x Ky x Ky
3
x Cy x Ky normal
(2.1.1)
2
f x 2 K1 f x K1
2
(2.1.2)
f x C1 2 y 1 5 C = 0, K 2 =1 x 3 x x x K5
normal
2
= 1,
x
1 6 Cy x =0 3 x
(2.1.3)
(2.1.4)
normal sin x x C1 Kx 2
sin x
(2.1.5)
expand - roznásobení výrazu Volání: expand(v, v1, v2, ..., vn) Parametry: v v1,v2, ... vn
- libovolný algebraický výraz - další (nepovinné) výrazy
Popis: • Základním použitím funkce expand je roznásobení součinů součtů v polynomech. Funkce expand také umí rozložit některé matematické funkce, včetně funkcí sin, cos, tan, sinh, cosh, tanh, det, erf, exp, factorial, ln, max, min, binomial, sum, product, int, limit atd. • Případné další argumenty v1,v2, ... vn se používají k tomu, aby bylo možno zabránit v rozkladu určitých částí vstupního výrazu. Výrazy takto uvedené zůstanou v původním výrazu bez roznásobení. • Mimoto lze expanzi výrazů řídit pomocí dvojice funkcí expandon a expandoff. Příklady: expand x C1
x C2 2
x C3 x C2
(2.2.1)
sin x cos y Ccos x sin y
(2.2.2)
expand sin x Cy a C ln b
expand e
a
e b (2.2.3) Př. Pokud potřebujeme výraz upravit jen částečně, tedy zabránit v roznásoberní některé části výrazu, pak použijeme parametr: expand x C1
y Cz , x C1 x C1 y C x C1 z
s d a Cb z Csin a Cb Cea C b a Cb z Csin a Cb Cea C b
(2.2.4) (2.2.5)
expand s z a Cz b Csin a cos b Ccos a sin b Cea eb
(2.2.6)
expand s, sin a Cb a b
z a Cz b Csin a Cb Ce e
(2.2.7)
Př. Příkaz se provede pouze, pokud je to možné: expand ln
x 1 Kx
2
ln
x 1 Kx
2
(2.2.8)
factor - převedení polynomu na součin Volání: factor(a,parametr) Parametry: a - libovolný výraz parametr - (nepovinné) výraz Popis: • Funkce factor převede polynom jedné nebo více proměnných s celočíselnými, racionálními nebo reálnými číselnými koeficienty na součin, pokud tento převod existuje. Jinak je výstupem opět vstupní výraz. • Funkce factor je vlastně inverzní funkcí k expand. • Je-li vstupním výrazem racionální lomená funkce, je nejprve převedena do normálního tvaru (normal) a čitatel a jmenovatel výsledného výrazu jsou pak převedeny do formy součinu. Je-li vstupním výrazem a seznam, množina, rovnice, interval, řada, rovnice nebo funkce, je funkce factor použita postupně na všechny jeho složky. • Je-li současně použit i nepovinný výraz parametr, lze řídit způsob jakým je výraz převeden na součin. Lze tak například hledat i součiny v komplexním oboru. factor 6 x2 C18 x K24 6 x C4 3
factor
x K1
(2.3.1)
x2 Cx y Cy2 x Cy x2 Cy2
(2.3.2)
3
x Ky
x4 Ky4
kd
1 1 C 2 x K1 x C3 x C2 2
1
1
C
2
x K1
(2.3.3)
2
x C3 x C2
normal k 2 x C1 x C3 x C2 x K1
(2.3.4)
2 x C1 x C1 x C2 x K1
(2.3.5)
2
factor k
4
factor x K1 x K1
2
x C1
x C1
(2.3.6)
3
factor x C5 x3 C5 factor x3 C5.0 x C1.70997594667670
(2.3.7)
x2 K1.70997594667670 x C2.92401773821287
factor x3 C5.0, complex x C1.70997594667670 x K0.854987973338349 C1.48088260968236 I K0.854987973338349 K1.48088260968236 I Př. Rozklad na součin prvočísel - příkaz ifactor:
x
(2.3.8) (2.3.9)
ifactor 6 2
3
(2.3.10)
ifactor 10! 2
8
3
4
5
2
7
collect - sdružení koeficientů u stejných mocnin Volání collect(a, x) collect(a, x, forma, funkce) Parametry: a x forma funkce
- libovolný výraz - proměnná nebo seznam či množina proměnných - (nepovinný) tvar výsledku - (nepovinná) procedura
Popis: • Funkce collect upraví výraz a tak, že spojí všechny členy, které mají shodné mocniny proměnné x. Přitom výsledný výraz není automaticky setříděn. Pokud ho chcete setřídit,
(2.3.11)
použijte následně funkce sort. • Druhý argument x může být pouze proměnná nebo seznam nebo množina proměnných ( např. [a,b,c]). Jednotlivé proměnné přitom mohou být buď jména nebo názvy funkcí. • Tvar výsledku ,forma, lze volit pouze buď recursive nebo distributed. - Rekurzivní tvar je forma, v níž se sdruží nejprve koeficienty u stejných mocnin a, v rámci každého koeficientu pak u b atd. - U distributivního tvaru jsou pouze sdruženy vždy koeficienty u stejné mocniny všech proměnných a, b atd. • Čtvrtý argument funkce může určovat akci, která se provede s každým koeficientem získaným po spojení všech členů se stejnou mocninou. Pomocí funkce factor je lze například převést na součiny nebo pomocí simplify zjednodušit apod. Příklady: f d x$ x C1 Cy$ x C1 x x C1 C x C1 y
(2.4.1)
x2 C y C1 x Cy
(2.4.2)
x x C1 C x C1 y
(2.4.3)
a ln x Kln x x Kx
(2.4.4)
Kln x K1 x Ca ln x
(2.4.5)
collect f, x collect f, y z d a ln x Kln x x Kx collect z, x 2
x
x
Kx
e Ce
2
x
x
Kx
e Ce
(2.4.6)
integrate w.r.t. x
x2 2x 2 x e K2 x e C2 e K x K x K x e e e
(2.4.7)
zz
(2.4.8)
2 x
x
x
assign to a name
x
collect zz, e
2 Cx2 K2 x ex C
K2 x K2 Kx2
(2.4.9) ex Př. úprava rekurzivně - nejprve se sdruží koeficienty u první proměnné a poté u druhé v rámci koeficientů té první: p := x y Ca x y Cy x2 Ka y x2 Cx Ca x x y Ca x y Cy x2 Ka y x2 Cx Ca x
(2.4.10)
1 Ka y x2 C
(2.4.11)
collect p, x, y , recursive collect p, y, x , recursive
1 Ca y C1 Ca x
2
1 Ka x C 1 Ca x y C 1 Ca x Př. úprava distributed - sdružíme koeficienty u stejné mocniny obou proměnných. collect p, x, y , distributed 2 1 Ca x C 1 Ca x y C 1 Ka y x
(2.4.12)
(2.4.13)
Př. následná úprava sdružených koeficientů r d a3 x Kx Ca3 Ca 3
3
a x Kx Ca Ca
(2.4.14)
collect r, x 3
3
a K1 x Ca Ca
(2.4.15)
collect r, x, factor a K1 a2 Ca C1 x Ca a2 C1 Př. Příkaz také umí setřídit podle obecných funkcí (derivace, sin,...) DE :=
d2 2
y x
sin x K
dx
Csin y x
d2 2
d y x dx
sin y x
(2.4.16)
d y x dx
Csin x
y x
dx d2 y x dx2
sin x K
d y x dx
Csin x
sin y x
d y x dx
(2.4.17)
2
Csin y x
d y x dx2
collect DE, diff Ksin y x
Csin x
d y x dx
C sin x Csin y x
d2 2
y x
(2.4.18)
dx
collect DE, sin 2
d d y x C y x 2 dx dx
sin x C K
d y x dx
sort - setřídění polynomu nebo seznamu Volání: sort(A) sort(A, p) sort(L) Parametry: A - algebraický výraz (polynom)
2
C
d y x dx2
sin y x
(2.4.19)
p - seznam proměnných L - seznam Popis: • Polynomy nejsou v Maple automaticky setříděny ve stoupajících nebo klesajících mocninách nezávislé proměnné. Pro tento účel je nutno použít funkci sort, která setřídění členy polynomu v pořadí klesajících mocnin. • Je-li zadán současně seznam p, setřídí se polynom podle několika proměnných uvedených v p. • V posledním případě třídí funkce sort prvky seznamu L buď podle velikosti, jedná-li se pouze o čísla, nebo podle abecedy, jedná-li se o jiné řetězce. Příklady: sort 1 Cx Cx2 x2 Cx C1 3
p d expand y $ x C1
2
2
2
(2.5.1)
3
Cy $x Cx Cy y3 x2 C2 y3 x Cy3 Cx2 y2 Cx3 Cy
(2.5.2)
x3 Cy2 x2 Cy3 x2 C2 y3 x Cy3 Cy
(2.5.3)
x3 C y3 Cy2 x2 C2 y3 x Cy3 Cy
(2.5.4)
y3 Cx2 y3 C2 x y3 Cx2 y2 Cy Cx3
(2.5.5)
x2 C2 x C1 y3 Cx2 y2 Cy Cx3
(2.5.6)
sort p, x sort collect p, x , x sort p, y sort collect p, y , y sort collect p, y, factor , y x C1
2 3
y Cx2 y2 Cy Cx3
(2.5.7)
sort 2, 1, 3 1, 2, 3
(2.5.8)
a, aa, aaa, b, bb, cc, ff
(2.5.9)
sort aa, b, cc, bb, a, ff, aaa
combine - spojování několika členů do jednoho Volaní: combine(f) combine(f, n) Parametry: f - libovolný výraz nebo množina nebo seznam výrazů
n - jméno nebo seznam jmen Popis: • Funkce combine transformuje složité výrazy obsahující součty, součiny nebo mocniny do jediného členu. • Tato operace se rekurzivně aplikuje na všechny prvky seznamů, množin a výrazů. • Funkce combine umí podobným způsobem zjednodušit také mnoho základních funkcí. V tomto případě je funkce combine vlastně inverzní funkcí k expand. Například ve známé rovnosti sin(a+b) = sin(a)cos(b) + cos(a)sin(b) umožní funkce expand přechod zleva doprava a funkce combine zprava doleva. • Speciální množina transformací se provádí tak, že použijeme druhou formu volání funkce combine s druhým (nepovinným) argumentem n, kde n je exp, ln, power, trig atd. V těchto případech jsou použita pouze pravidla pro transformaci, která se týkají specifikované třídy funkcí. • Funkce assume nastaví vlastnost proměnné. Příklady: combine 4 sin x
3
Ksin 3 x C3 sin x
(2.6.1)
x2
combine e $ey 2 Cy
ex sin a $cos b
ee d e
(2.6.2)
cos a $sin b
$e
esin a
cos b
ecos a
sin b
esin a
cos b C cos a sin b
(2.6.3)
combine ee, exp (2.6.4)
combine ee, trig e
1 1 sin a C b C sin a K b 2 2
e
1 1 sin a C b K sin a K b 2 2
(2.6.5)
combine ee esin a C b
(2.6.6)
2 ln y Kln z
(2.6.7)
Př. není možné výraz sloučit: combine 2$ln y Kln z , ln pokud stanovíme podmínky: assume 0 ! y, 0 ! z
combine 2$ln y Kln z , ln ln
y~2 z~
(2.6.8)
2
2 sin x cos x , 2 cos x K1 sin 2 x , cos 2 x
combine
(2.6.9)
simplify - maximální zjednodušení výrazu Volání: simplify(x) simplify(x, n1, n2, ...) simplify(x, assume=vlastnost) Parametry: x - výraz n1, n2, ... - (nepovinná) jména nebo množiny nebo seznamy vlastnost - klíčové slovo Popis: • Nejúčinnější, nicméně v případě velmi komplikovaných výrazů dosti pomalý, způsob zjednodušení představuje funkce simplify. • Při prvním způsobu volání (s jediným argumentem) se postupně aplikují pravidla pro zjednodušování odmocnin a mocnin, dále se upraví části výrazu obsahující funkce (např. exp, ln, sqrt) a všechny trigonometrické a hypergeometrické funkce. • Při druhém způsobu volání se aplikují pouze pravidla pro třídu funkcí specifikovanou pomocí n1, n2, .... Celá operace je pak mnohem rychlejší. Zároveň lze také řídit, co ve výrazu chceme zjednodušit. Jména n1, n2, ... mohou být libovolně vybrána z množiny hypergeom, ln, polar, power, radical, sqrt, trig. • U třetího způsobu volaní lze zároveň stanovit za jakých předpokladů lze definovat za jakých předpokladů se má zjednodušení provádět. Lze tak například specifikovat komplexní nebo reálný obor, kladná nebo záporná čísla či dokonce rozsah použitých proměnných. Příklady:
simplify 4
1 2
C3 5
(2.7.1)
b ea C c
(2.7.2)
a C ln b ec
simplify e
simplify sin x 2 Cln 2 x Ccos x
2
1 Cln 2 Cln x 2
(2.7.3)
2
simplify sin x Cln 2 x Ccos x , trig 1 Cln 2 x simplify
x2 , assume = positive (2.7.5)
x
Př. úprava výrazu na za předpokladu platnosti rovnice (zvládá převádět na pravou a levou stranu): 2
eqns d sin x Ccos x
2
=1 2
sin x Ccos x
2
(2.7.6)
=1
e := sin x 3 K11 sin x 2 cos x C3 cos x 3 Ksin x cos x C2 sin x 3 K11 sin x 2 cos x C3 cos x 3 Ksin x cos x C2 simplify e, eqns 2 C14 cos x 3 Ksin x cos x Ksin x cos x 2 Csin x K11 cos x f := 8 sin x 4 cos x C15 sin x 2 cos x 3 K15 sin x 2 cos x C7 cos x 5 K14 cos x C7 cos x 8 sin x 4 cos x C15 sin x 2 cos x 3 K15 sin x 2 cos x C7 cos x 5 K14 cos x 3 C7 cos x simplify f, eqns 0 gd
(2.7.7) (2.7.8) 3
(2.7.9)
(2.7.10)
x2 2
x
(2.7.11)
csgn x x
(2.7.12)
x
(2.7.13)
x
(2.7.14)
simplify g simplify g, assume = real simplify g, assume = positive
a4 Kb4
jj d a2 b2 1 C
b2 a2
1K
2a a2 C 2 b b a4 Kb4
2 2
a b
b2 1C 2 a
2a a2 1K C 2 b b
(2.7.15)
simplify
=
a Cb Kb Ca
(2.7.16)
subs a algsubs - substituce ve výrazech Volání: subs( s1, s2, ..., sN, expr) algsubs( s, expr, podminka) Parametry: sI - rovnice nebo seznam či množina rovnic expr - výraz Popis: • Funkce subs postupně provádí substituce vyjádřené pomocí rovnic sI ve výrazu expr. • Je-li zadáno více rovnic, jsou všechny substituce prováděny postupně od první po poslední. Jeli zadán seznam nebo množina rovnic, jsou v nich obsažené substituce prováděny současně. Substituce se provádí tak, že každý výskyt výrazu uvedeného na levé straně rovnice, je postupně nahrazen výrazem na pravé straně této rovnice. • Po substituci provede Maple pouze základní zjednodušení výrazu, pokud chceme dosáhnout další úpravy, musíme použít některou metodu zjednodušování. • Funkce algsubs provede nahrazení algebraického výrazu na levé straně rovnice s její pravou stranou. Tato substituce se provede rekurzivně v celém výrazu expr. Použijeme-li při volání podminku exact, provede se substituce pouze při nalezení hladaného výrazu, jinak se Maple pokusí substituovat ve všech místech, kde to jen trochu půjde. Příklady: subs x = 2, x2 Cx C1 7
(2.8.1)
3 r1/3 ln r
(2.8.2)
3 r1/3 ln r
(2.8.3)
1 3
subs x = r , 3 x ln x3 3
k d 3 x ln x
evaluate at point
subs sin x = y,
sin x 1 Ksin x
y 1 Ky Př. Na algebraický výraz se musí použít příkaz algsubs: subs a Cb = y, a Cb Cc
(2.8.4)
2
a Cb Cc algsubs a Cb = y, a Cb Cc
2
(2.8.5)
2
y Cc
2
(2.8.6)
Př. Vyjádřete rovnici vdW v hustotě místo objemu a upravte: p d RT / VKb Ka2 / V
Příklady a úkoly Př. Vyjádřete rovnici vdW v hustotě místo objemu a upravte: pd
RT V Kb
K
a2 V
RT a2 K V Kb V Př. Připravte si popis a příklady funkcí whattype, nops a op.
(2.9.1)
ALGEBRA, DIFERENCIÁLNÍ A INTEGRÁLNÍ POČET Nejvýznamnìjší oblastí, kde zejména oceníte vlastnosti Maple, jsou složitìjší práce s algebraickými výrazy: nekonečné součty, limity, řešení rovnic a jejich soustav nebo diferenciální a integrální počet atd.
Součty a součiny sum - konečné a nekonečné součty Volání: sum(f,k) sum(f,k=m..n) nebo v záložce Expression: n
>f i=k
Parametry: f - výraz k - jméno sumační proměnné m..n - rozsah součtu Popis: • V prvním tvaru počítá funkce sum(f,k) součet výrazù f(k) pro všechna k v intervalu 1..k-1. Druhý tvar, sum(f, k=m..n), počítá konečný součet f(k) pro všechny hodnoty k v daném rozsahu m..n. • U součtů a následujících součinů je výhodné a někdy dokonce nezbytné, aby jak f(k) tak k byly uzavřeny v páru apostrofù, aby tedy byly zadány ve formě nevyčísleného výrazu. Pokud totiž sumační proměnná byla v předchozích výrazech již nahrazena jiným výrazem, hlásí Maple ve tvaru bez apostrofů syntaktickou chybu. Důvodem je skutečnost, že Maple provádí před zpracováním syntaktickou kontrolu výrazu a předchozí dosazení do sumační proměnné ji samozřejmě znemožňuje.
Příklady sum k, k = 0 ..4 10
(1.1.1.1)
sum k, k = 0 ..n 1 2
n C1
2
K
1 1 nK 2 2
(1.1.1.2)
sum n, n 1 2 1 n K n 2 2
(1.1.1.3)
sum a k xk, k = 0 ..4 2
3
4
(1.1.1.4)
2
3
4
(1.1.1.5)
a0 Ca1 x Ca2 x Ca3 x Ca4 x 4
>a x
k
k= 0
k
a0 Ca1 x Ca2 x Ca3 x Ca4 x k
sum a k x , k = 0 ..n n
>a x
k
(1.1.1.6)
>a x
k
(1.1.1.7)
e
(1.1.1.8)
k= 0
k
sum a k xk, k k
k
sum 1 / k!, k = 0 ..infinity 2
sum '1 / k ', 'k'= 1 ..infinity 1 2 π (1.1.1.9) 6 POZOR: Použijeme-li velké první písmeno Sum, dostáváme symbolickou sumu, kterou Maple okamžitě nevyčísluje. Tuto vlastnost mají i další funkce např. product, diff nebo int a lze ji například využít při psaní textů. 4
4
Sum 1 / i , i = 1 ..infinity = sum 1 / i , i = 1 ..infinity N
> 1i i= 1
4
=
1 4 π 90
product - konečný nebo nekonečný součin Volání: product( f, k ) product( f, k=m..n ) nebo v záložce Expression: n
?f i=k
(1.1.1.10)
Parametry: f k m..n
- výraz - jméno proměnné - rozsah součinu
Popis: Funkce produkt je obdobou funkce pro součet sum. Pouze místo součtu provádí součin jednotlivých členů. Platí zde také stejné pravidla jako pro funkci sum.
Příklady product k, k = 1 ..4 24
(1.2.1.1)
a0 a1 a2 a3 a4
(1.2.1.2)
Γ 5 x C1 Γ x
(1.2.1.3)
4
?a k= 0
k
product k, k = x ..5 x
2
product 1 C1 / i , i = 1 ..infinity sinh π π
Diferenciální a integrální počet limit - výpočty limit Volání: limit( f, x=a) limit( f, x=a, smer) nebo v záložce Expression: lim f
x/a
Parametry: f x a
- algebraický výraz - jméno proměnné - výraz udávající limitní bod
(1.2.1.4)
smer
- (nepovinný) směr limity: left, right, real nebo complex
Popis: • Funkce limit počítá limitu výrazu f pro x blížící se a. Za a je možno dosadit jak libovolnou konečnou hodnotu, tak nekonečno (tedy infinity). • Pokud není zadán směr limity, počítá funkce limit oboustrannou limitu. Směr limity lze pak zadat buď left pro limitu zleva, right pro limitu zprava, real pro limitu v oblasti reálných čísel nebo complex pro limitu v komplexním oboru čísel. • Výstupem může být buď číslo (včetně nekonečna), výraz nebo rozmezí (což znamená, že výsledek limity sice neexistuje, nicméně funkce v blízkosti a kolísá v daném rozmezí). series
Příklady limit 1 / x, x = 3
lim
x/0
1 3
(2.1.1.1)
1
(2.1.1.2)
lim ln x2
(2.1.1.3)
N
(2.1.1.4)
sin x x
Limit ln x2 , x = Kinfinity x/KN
limit exp x , x = infinity Tip: Symbol pro nekonečno, N, najdete v záložce Common Symbols lim ex
x /KN
0
(2.1.1.5)
limit 1 / x, x = infinity 0 (2.1.1.6) Pozor: Pokud potřebujeme použít k výpočtu parametr real nebo complex, musíme použít 1-D formát. limit 1 / x, x = 0, real undefined
(2.1.1.7)
NKN I
(2.1.1.8)
N
(2.1.1.9)
KN
(2.1.1.10)
limit 1 / x, x = 0, complex
limit 1 / x, x = 0, right limit 1 / x, x = 0, left g d piecewise x ! 3, x2 K6, 3 % x, 2 x K1
2
x K6
x !3
2 x K1
3 %x
(2.1.1.11)
lim g x/3
undefined
(2.1.1.12)
5
(2.1.1.13)
3
(2.1.1.14)
lim g
x/3C
lim g
x/3K
diff - obyčejné a parciální derivace Volání: diff( a, x1, x2, ..., xn ) nebo d f a dx
v f vx
Parametry: a x1, ...
- algebraický výraz - jména
Popis: • Funkce diff počítá derivace výrazu a podle proměnných x1 , x2 ... xn. • Obsahuje-li volání více proměnných, pak odpovídá postupnému několikanásobnému derivování, tedy např. diff(f(x),x,y) je ekvivalentní diff(diff(f(x),x),y). • Jestliže derivaci nelze vyjádřit, například protože výraz je nedefinovaná funkce, vrátí příkaz pouze symbolické znázornění derivace. • Pro výpočet vyšších derivací lze použít operátor opakování, $. Např. příkaz diff(f(x),x$4) odpovídá diff(f(x),x,x,x,x) nebo d4 d x4
f
• Kromě derivací výrazů lze také derivovat funkce nebo procedury. K tomu slouží operátor D. Obě derivace pak lze vzájemně přepočítat.
Příklady diff sin x , x
cos x
(2.2.1.1)
0
(2.2.1.2)
diff sin x , y d dx
x sin cos x sin cos x
Kx cos cos x
sin x
(2.2.1.3)
diff sin x , x$3 2
d dx2
3
Kcos x
(2.2.1.4)
18 x C4
(2.2.1.5)
2 x Cy2
(2.2.1.6)
2y
(2.2.1.7)
2y
(2.2.1.8)
x2 Cx y2
(2.2.1.9)
2
3 x C2 x C23 x C2342
2
2
diff x Cx y , x v vy
2 x Cy2 2
2
diff x Cx y , x, y 2
2
Diff x Cx y , x, y v2 vy vx h := 5 x2 C2 x2 y C3 x y2 C12 y x C
3 y3 x
3 y3 5 x C2 x y C3 x y C12 y x C x 2
2
2
(2.2.1.10)
differentiate w.r.t. x
10 x C4 y x C3 y2 C12 y K
3
3y x2
(2.2.1.11)
differentiate w.r.t. y
4 x C6 y C12 K
9 y2 x2
(2.2.1.12)
v3 h vy3 18 x
(2.2.1.13)
0
(2.2.1.14)
diff f x, y , x, y Kdiff f x, y , y, x
implicitdiff - derivace implicitně zadané funkce
V některých případech není funkce zadána explicitně, ale pomocí implicitního predpisu tedy například ve formě f(y(x),x)=0. V tomto případě je možno drivaci funke určit pomocí příkazu implicitdiff. Volání: implicitdiff(f,y,x) Parametry: f - rovnice y - závisle proměnná z - nezávisle proměnná Popis: Výstupem je deivace funkce y(x) pro funkci zadanou implicitně pomocí rovnice f.
Příklady f d xKa
2
C yKb
2
= r2 x Ka
2
C y Kb
2
= r2
(2.3.1.1)
implicit differentiation
Kx Ca y Kb
(2.3.1.2)
Kx Ca y Kb
(2.3.1.3)
nebo implicitdiff f, y, x
VdW d V Kn b
a n2 PC 2 V
=n RT
V Kn b
PC
a n2 V
2
=n RT
(2.3.1.4)
der d implicitdiff VdW, P, V P V 3 Ka n2 V C2 a n3 b K V 3 V Kn b
(2.3.1.5)
VdW V Kn b
PC
a n2 V2
=n RT
(2.3.1.6)
solutions for P
n R T V 2 Ka n V Ca n2 b V 2 V Kn b assign to a name
(2.3.1.7)
P
(2.3.1.8)
P 2
2
n R T V Ka n V Ca n b 2 V V Kn b
(2.3.1.9)
derKdiff P, V 2 2 n R T V Ka n V Ca n b V 2 3 Ka n V C2 a n b V Kn b n 2 R T V Ka n K K 3 V V Kn b V 2 V Kn b C
2 n R T V 2 Ka n V Ca n2 b V
3
C
V Kn b
(2.3.1.10)
n R T V 2 Ka n V Ca n2 b V
2
V Kn b
2
simplify % 0
(2.3.1.11)
int - integrace Volání: int( f, x ) int( f, x = a..b ) nebo b
f dx a
f dx a
int(f, [x, y, ...]) int(f, [x = a..b, y = c..d, ...]) Parametry: f - výraz x, y - proměnná a..b - interval, přes který se integruje Popis: • Funkce int počítá neurčitý nebo určitý integrál výrazu f přes proměnnou x . • Neurčitý integrál se počítá v prvním případě a k výrazu se nepřidává žádná integrační konstanta. • Určitý integrál odpovídá druhému způsobu volání s x=a..b, kde a a b jsou meze integračního intervalu. • Jestliže integraci nelze vyjádřit například, protože výraz je nedefinovaná funkce nebo integrál neexistuje nebo jej Maple neumí, vrátí příkaz pouze symbolické znázornění integrálu. • Výpočet výcenásobného integrálu provedeme tak, že seznam proměnných, podle kterých integrujeme zobrazíme takto [x, y, ...].
• Pokud neexistuje analytická metoda integrace, lze hodnotu určitého integrálu získat numericky. Použije se přitom funkce evalf. Všimněte si, že v tomto případě je vhodnější použít funkci Int ( s počátečním velkým písmenem), která zabraňuje marným pokusům Maple o analytickou integraci.
Příklady Cp d A CB T A CB T
(2.4.1.1)
int Cp, T A TC
1 2 BT 2
(2.4.1.2)
1 B T12 KT02 2
(2.4.1.3)
int Cp, T = T0 ..T1 A T1 KT0 C int exp sin x , x = 0 ..Pi π
esin x dx
(2.4.1.4)
0
evalf Int exp sin x , x = 0 ..Pi 6.208758036
(2.4.1.5)
Výpočet entropie reálného plynu z vdW rovnice (S0 - entropie id. plynu, v - objem):
Pd
RT V Kb
K
a V2 RT a K 2 V Kb V
(2.4.1.6)
v R Cint Kdiff P, T , V = v ..infinity RT V Warning, unable to determine if 0 is between v and infinity; try to use assumptions or use the AllSolutions option Warning, unable to determine if b is between v and infinity; try to use assumptions or use the AllSolutions option S d S0 CR ln
N
v S0 CR ln RT Musím zadat podmínky. assume v O b additionally v O 0 S
C v
R R K V V Kb
dV
(2.4.1.7)
S0 CR ln
v~ RT
CR ln v~Kb~ KR ln v~
(2.4.1.8)
collect S, R, combine ln
v~Kb~ RT
R CS0
(2.4.1.9)
Taylor - Taylorova řada Volání: taylor( expr, eq/nm, n ) Parametry: expr eq/nm n
- výraz - rovnice (jako x = a) nebo proměnná (jako x) - (nepovinné) přirozené číslo
Popis: • Funkce taylor počítá Taylorovu řadu výrazu expr v proměnné x kolem bodu x=a. V řadě jsou zanedbány členy řádu xn a vyšší. Běžně se zanedbávají členy s exponentem 5 a vyšším. Tato hodnota je definována systémovou proměnnou Order, přiřaze Order:=10; lze například zvýšit exponent prvního zanedbaného členu na 10. • V některých případech nelze výraz pomocí Taylorova rozvoje aproximovat. • Někdy však lze i v tomto případě výraz aproximovat ve formě obecnější řady. Výsledkem příkazu taylor je zvláštní struktura nazývaná series. Nejedná se tedy o klasický výraz a nelze ji běžně zpracovávat pomocí dalších funkcí. Lze ji však převést na polynom pomocí příkazu convert(...,polynom).
Příklady Sin d taylor sin x , x, 9 1 3 1 1 5 7 9 x C x K x CO x 6 120 5040 Sin d convert Sin, polynom 1 3 1 1 xK x C x5 K x7 6 120 5040 plot Sin, sin x , x = 0 ..Pi xK
(2.5.1.1)
(2.5.1.2)
1
0.8
0.6
0.4
0.2
0 1
2
3
x taylor x^x, x Error, does not have a taylor expansion, try series() series x^x, x 1 Cln x x C
1 ln x 2
2 2
x C
1 ln x 6
3 3
x C
1 ln x 24
4 4
x C
1 ln x 120
5 5
x
(2.5.1.3)
CO x6 Viriální rozvoj v hustotě z vdW rovnice: Pd
Vd
RT V Kb
K
a V2 RT a K 2 V Kb V
(2.5.1.4)
1 ρ
(2.5.1.5)
1 ρ
zd
PV RT 2 RT Ka ρ 1 Kb ρ ρRT
(2.5.1.6)
taylor z, ρ 1C
5 R T b Ka 2 2 3 3 4 4 ρ Cb ρ Cb ρ Cb ρ CO ρ RT
(2.5.1.7)
solve - analytické řešení rovnice a jejich soustav Volání: solve( {eqns1,eqns2,...}, {vars1,vars2,...} ) Parametry: eqns - rovnice nebo množina rovnic nebo nerovnic vars - (případná) neznámá proměnná nebo množina proměnných Popis: • Nejběžnějším použitím funkce solve je řešení jedné rovnice nebo soustavy rovnic. Pro jednu zadanou rovnici vrací funkce solve řešení ve formě výrazu nebo (existuje-li více řešení) jako sekvenci výrazů. Soustava rovnic a odpovídající proměnné se zadávají jako množiny. Výsledkem je pak množina přiřazovacích rovnic. Přiřazením této množiny rovnic příkazem assign dosadíme za všechny proměnné hodnoty, které tvoří řešení příslušné soustavy. • Když funkce solve není schopna nalézt řešení, nevrací žádný výraz. To může znamenat, že žádné explicitní řešení neexistuje, nebo pouze, že program není schopen řešení nalézt.
Příklady Hledání kritického bodu pomocí vdW rovnice: P=
RT V Kb
K
a V2
Postup: 1, Na křivce Tc vidíte závislost tlaku P na objemu V při kritické teplotě Tc. Kritický bod C je v v2 inflexním bodem této křivky. V inflexním bodě bude tedy platit, že Pa P budou rovny vV v V2 nule. 2, Po zderivování vdW rovnice obržíme tři rovnice o dvou neznámích. Těmi jsou parametry a a b. K řešení použijeme soustavu dvou rovnic: v P=0 vV v2 P=0 v V2 3, Poté jen dosadíme do rovnice vdW a získáme vztahy mezi kritickými veličinami. restart; RT Pd V Kb
K
a V2 RT a K 2 V Kb V
dPdV d
v P vV K
RT V Kb
dPdV2 d
(3.1.1)
v2 P v V2
2
C
2a V3
(3.1.2)
2RT V Kb solve
3
K
6a V4
(3.1.3)
dPdV = 0, dPdV2 = 0 , a, b a=
9 1 R T V, b = V 8 3
(3.1.4)
Přiřazení proměnných a a b: assign % a d subs T = Tc, V = Vc, a 9 R Tc Vc 8
(3.1.5)
1 Vc 3
(3.1.6)
3 R Tc 8 Vc
(3.1.7)
b d subs V = Vc, b
Pc d subs T = Tc, V = Vc, P
ŘEŠENÍ ROVNIC A JEJICH SOUSTAV Program Maple obsahuje několik algoritmù pro řešení lineárních a nelineárních rovnic a jejich soustav. Pomocí příkazu dsolve je pak možno získat řešení některých diferenciálních rovnic.
Řešení algebraických rovnic a jejich soustav solve - analytické řešení rovnice a jejich soustav Volání: solve(eqns,vars) Parametry: eqns - rovnice nebo množina rovnic nebo nerovnic vars - (případná) neznámá promìnná nebo množina promìnných Popis: • Nejběžnějším použitím funkce solve je řešení jedné rovnice nebo soustavy rovnic. • Pro jednu zadanou rovnici vrací funkce solve řešení ve formě výrazu nebo (existuje-li více řešení) jako sekvenci výrazů. • Soustava rovnic a odpovídající proměnné se zadávají jako množiny. Výsledkem je pak množina přiřazovacích rovnic. Přiřazením této množiny rovnic příkazem assign dosadíme za všechny proměnné hodnoty, které tvoří řešení příslušné soustavy. • Když funkce solve není schopna nalézt řešení, nevrací žádný výraz. To může znamenat, že žádné explicitní řešení neexistuje, nebo pouze, že program není schopen řešení nalézt. • Pro automatické zadaní neznámých je možno použít funkce indets. Jejím vstupním parametrem je výraz tedy například i množina rovnic a výstupem pak všechny nepřiřazené proměnné.
Příklady: VdW d P C
a V2
VKb = R T PC
a V2
V Kb = R T
(1.1.1.1)
indets VdW P, R, T, V, a, b
(1.1.1.2)
8.314
(1.1.1.3)
P, T, V, a, b
(1.1.1.4)
R d 8.314 indets VdW solve f = m a, a
f m solve
(1.1.1.5)
f=ma , m m=
f a
(1.1.1.6)
rov d x4 K5 x2 C6 x = 2 4
2
x K5 x C6 x = 2
(1.1.1.7)
solve rov, x 3 K1, K1 K 3 , 1, 1
(1.1.1.8)
3 K1, K1 K 3 , 1, 1
(1.1.1.9)
3 K1
(1.1.1.10)
reseni d solve rov, x reseni 1 evalf reseni 0.732050808, K2.732050808, 1., 1. rovnice d u Cv Cw = 1, 3 u Cv = 3, u K2 v Kw = 0 3 u Cv = 3, u K2 v Kw = 0, u Cv Cw = 1 solve rovnice, indets rovnice 2 4 3 u = , v= , w =K 5 5 5 solve cos x Cy = 9, x π Karccos y K9 solve
solve solve
(1.1.1.11) (1.1.1.12) (1.1.1.13)
(1.1.1.14)
2
x Cy ! 10, x = 9 , x, y x = 3, y ! 7 , x = K3, y ! 13
(1.1.1.15)
x2 y2 = 0, x Ky = 1 x = 1, y = 0 , x = 1, y = 0 , x = 0, y = K1 , x = 0, y = K1
(1.1.1.16)
x2 y2 = 0, x Ky = 1, x s 0 x = 1, y = 0 , x = 1, y = 0
(1.1.1.17)
6
2
solve x K2 x C2 x, x 0, RootOf _Z5 K2 _Z C2, index = 1 , RootOf _Z5 K2 _Z C2, index = 2 ,
(1.1.1.18)
RootOf _Z5 K2 _Z C2, index = 3 , RootOf _Z5 K2 _Z C2, index = 4 , RootOf _Z5 K2 _Z C2, index = 5
fsolve - numerické řešení rovnic Pro složitìjší rovnice a jejich soustavy není pøíkaz solve schopen nalézt øešení v uzavøeném tvaru. (Napø. pro obecný polynom pátého a vyššího stupnì). Pokud však známe numerické hodnoty všech konstant, vyskytujících se v daných rovnicích, je možno získat pøibližné numerické øešení.
Volání: fsolve(eqns,vars,podm) Parametry: eqns vars podm
- rovnice nebo jejich množina - neznámá nebo jejich množina - (případné) podmínky
Popis: • Volání fsolve je obdobou volání solve. Pro obecnou rovnici fsolve vyhledá jeden reálný kořen. Pokud chceme najít urèité řešení je možno buď definovat interval pro řešení (viz dále) nebo použít vhodný počáteční odhad ve tvaru např. x=n, kde n je hodnota odhadu. • Pro polynomy fsolve ve většině případů najde všechny reálné kořeny, jen ve výjimečných případech špatně podmíněných polynomů, se mohou některé kořeny ztratit. V rámci funkce fsolve lze použít následující podmínky: complex - pro nalezení řešení pomocí desetinných komplexních čísel. fulldigits - pro použití výpoèčù mezivýsledkù na všechny platné cifry zadané systémovou konstantou Digits. Při bìžných výpočtech totiž Maple počítá mezivýsledky během iteračního postupu řešení na méně platných cifer. Tím je řešení dosaženo rychleji, ale v některých příkladech může selhat. maxsols=n - pro nalezení maximálně n kořenů polynomu. interval - Např. a..b nebo x=a..b nebo x=a..b,y=c..d. Vyhledává řešení pouze v daném intervalu. Jestliže fsolve nenalezne řešení přestože očividně existuje, volba vhodného intervalu může většinou pomoci k jeho vyhledání
Příklady fsolve tan Pi x = 1, x 0.2500000000 5
4
(1.2.1.1)
2
pol d 23. x C 105 x K10 x C 17 x 23. x5 C105 x4 K10 x2 C17 x fsolve pol, x,K1 ..1 K0.6371813185, 0. fsolve pol, x, maxsols = 3 K4.536168981, K0.6371813185, 0. fsolve pol, x, complex K4.53616898134311, K0.637181318531050, 0., 0.304066454284907 K0.404061905751759 I, 0.304066454284907 C0.404061905751759 I f d sin x Cy Kexp x y = 0 sin x Cy Kex y = 0
(1.2.1.2) (1.2.1.3) (1.2.1.4) (1.2.1.5)
(1.2.1.6)
2
g dx Ky=2 x2 Ky = 2
(1.2.1.7)
fsolve
f, g , x, y , x =K1 ..1, y =K2 ..0 (1.2.1.8) x = K0.6687012050, y = K1.552838698 fsolve f, g , x, y , x = 0 ..2 x = 1.490927732, y = 0.2228655010 (1.2.1.9) fsolve sin x , x 0. (1.2.1.10) fsolve sin x , x = 3.1 3.141592654 (1.2.1.11) Vyzkoušejte si sami: Hledání extrémů dodakového objemu a parciální molární veličiny Ve d x1 x2 2 K1.2 x1Kx2 x1 x2 2 K1.2 x1 C1.2 x2 x2 d 1Kx1 1 Kx1 plot Ve, x1 = 0 ..1
(1.2.1.12) (1.2.1.13)
0.5
0.4
0.3
0.2
0.1
0 0
0.2
0.4
0.6
0.8
1
x1 der d diff Ve, x1 1 Kx1
3.2 K2.4 x1 Kx1 3.2 K2.4 x1 K2.4 x1 1 Kx1
(1.2.1.14)
fsolve der, x1, x1 = 0 ..1 0.3771609694
(1.2.1.15)
assign - přiřazení podle rovnice Volání: assign(a = b) assign(t) Parametry: a - jméno b - výraz t - seznam nebo množina rovnic Popis: • Účelem funkce assign je provést přiřazení určené zadanou rovnicí nebo množinou rovnic. Příkaz assign(x=1/2) je tedy shodný s příkazem x:=1/2. Nejdůležitìjší oblastí aplikace funkce assign je v dosazování výsledků po řešení rovnic a jejich soustav.
Příklady: f d exp x Kx2 C1 fsolve
ex Kx2 C1
(1.3.1.1)
x = K1.147757632
(1.3.1.2)
K1.147757632
(1.3.1.3)
f , x
assign % x f 2. 10-10 V případě numerických výpočtů může daná přesnost ovlivnit výsledek:
(1.3.1.4)
Digits d 20 20
(1.3.1.5)
3.7819489520 10-10
(1.3.1.6)
x
(1.3.1.7)
x = K1.1477576321447434930
(1.3.1.8)
f x d'x' fsolve
f , x
assign % f
6. 10
-20
(1.3.1.9)
allvalues - vyhledaní všech řešení rovnic Volání: allvalues(expr) Parametry: expr - rovnice nebo seznam či množina rovnic Popis: Pokud funkce solve vrátí řešení jedné rovnice nebo soustavy rovnic ve formě výrazu obsahujících symbolické řešení s výrazem RootOf(...), je možno skutečné hodnoty řešení nalézt pomocí funkce allvalues. Pro zadanou rovnici obsahující RootOf(...) vrací funkce řešení jako sekvenci čísel.
Příklady: solve x5 Cx3 K1 = 9, x RootOf _Z5 C_Z3 K10, index = 1 , RootOf _Z5 C_Z3 K10, index = 2 , 5
3
5
3
5
(1.4.1.1)
3
RootOf _Z C_Z K10, index = 3 , RootOf _Z C_Z K10, index = 4 , RootOf _Z C_Z K10, index = 5 allvalues % Error, invalid input: too many and/or wrong type of arguments passed to allvalues; first unused argument is RootOf(_Z^5+_Z^3-10, index = 3) 1 rov d x2 Cy2 = 1, x K =y 2 1 xK = y, x2 Cy2 = 1 2 solve rov, x, y 1 1 1 x= C RootOf K3 C2 _Z C2 _Z2 , y = RootOf K3 C2 _Z C2 _Z2 2 2 2 allvalues % 1 1 1 1 1 1 1 1 x= C 7 , y=K C 7 , x= K 7 , y=K K 7 4 4 4 4 4 4 4 4 evalf % x = 0.9114378278, y = 0.4114378278 , x = K0.4114378278, y = K0.9114378278 with plots : implicitplot rov, x =K1 ..1, y =K1 ..1
(1.4.1.2)
(1.4.1.3)
(1.4.1.4) (1.4.1.5)
0.8 0.6 y 0.4 0.2
K0.8
K0.6
K0.4
0
K0.2 K0.2
0.2
0.4
0.6
0.8
1
x
K0.4 K0.6 K0.8 K1
eliminate - eliminace proměnných ze soustavy rovnic Volání: eliminate(soustava,prom) Parametry: soustava - množina rovnic prom - množina promìnných Popis: Pomocí funkce eliminate se řeší soustava rovnic tak, aby se z nich eliminovaly proměnné definované množinou prom. Výsledkem jsou jednak rovnice pro eliminované proměnné, jednak výsledné rovnice po eliminaci.
Příklad:
x Cy Cz = 2, x Ky C3 z = 6, 3 x Ky C5 z = 1 , y y = Kx Kz C2 , 2 x C4 z K8, 4 x C6 z K3
eliminate
(1.5.1.1)
match - převod do tvaru s neznámými koeficienty Někdy místo řešení rovnic hledáme pouze koeficienty, které by danou rovnici převedly do předem zvoleného tvaru. V programu Maple je pro tento účel definována funkce match. Volání: match(vstup=vystup, x, 's') Parametry: vstup vystup x s
- výraz - výraz s neznámými proměnnými - jméno nezávislé proměnné - jméno výstupní soustavy rovnic pro neznáme koeficienty
Popis: Funkce match zjišťuje, lze-li nalézt hodnoty proměnných tak, aby zadaná rovnice vstup = vystup byla splněna pro libovolnou hodnotu nezávisle proměnné x. Má-li tato úloha řešení, vrací funkce hodnotu true a do proměnné s se dosadí soustava rovnic, pomocí níž lze identitu obou výrazů dosáhnout. Přiřazení vypočtených hodnot proměnným lze provést příkazem assign(s). Pokud není možno oba výrazy ztotožnit, vrací funkce hodnotu false.
Příklady: Převedení Carnahanovy-Starlingovy rovnice do zvoleného tvaru (stavová rovnice pro párový potenciál tuhých koulí) 2
zd
3
1 Cη Cη Kη 3
1 Kη
2
3
1 Cη Cη Kη
(1.6.1.1)
3
1 Kη zz d a / 1 Keta Cb eta/ 1 Keta ^2 Ceta^2 c / 1 Keta ^3 a C 1 Kη
2
bη 1 Kη
2
C
η c 1 Kη
3
(1.6.1.2)
match z = zz, eta,'s' false
(1.6.1.3)
s
(1.6.1.4)
s a zz d C 1 Kη
2
bη 1 Kη
2
C
η
c Cd eta 1 Kη
3
2
bη
a C 1 Kη
1 Kη
2
c Cd η
η
C
1 Kη
3
(1.6.1.5)
match z = zz, eta,'s' true
(1.6.1.6)
a = 1, b = 3, c = 3, d = K1
(1.6.1.7)
s assign % zz 1 C 1 Kη
2
3η 1 Kη
2
C
3 Kη
η
1 Kη
3
(1.6.1.8)
factor zz 2
3
K1 Kη Kη Cη K1 Cη
3
(1.6.1.9)
simplify zKzz 0
(1.6.1.10)
Řešení diferenciálních rovnic dsolve - analytické řešení diferenciálních rovnic Volání: dsolve(deqns,vars) dsolve(deqns,vars,option) Parametry: deqns vars option
- obyčejná diferenciální rovnice nebo jejich množina - proměnná nebo jejich množina - jméno označující způsob řešení
Popis: • Funkce dsolve slouží k nalezení analytického řešení mnoha diferenciálních rovnic. Řešením je buď rovnice typu y(x) nebo parametrický tvar [x=f(T),y(x)=g(T)], kde T je parametr. Případné integrační konstanty jsou značeny jako _C1, _C2, atd. • Argument option může být definován jako: explicit, series nebo numeric. • Parametr explicit požaduje, aby řešení bylo vyhledáno pouze jako analytická funkce (pokud existuje). • Při použití parametru series se hledá řešení ve formě rozvoje v řadu. • Parametr numeric je obdobou integrační funkce fsolve a hledá řešení numerickou metodou. • Součástí množiny rovnic mohou být i rovnice udávající počáteční nebo okrajové podmínky. Pokud se hledá řešení pomocí řady musí být počáteční podmínky definovány pro x=0. Jinak lze počáteční nebo okrajové podmínky definovat v libovolném bodě. Derivace v těchto podmínkách se musí definovat pomocí operátoru D tedy např. druhá derivace y v nule je D(D
(y))(0).
Příklady: Asi nejlepším příkladem z fyzikální chemie na diferenciální rovnice jsou kinetické rovnice, které se zabývají rychlostí a průběhem chemických reakcí. r d diff c t , t =Kk c t
2
d c t = Kk c t dt
2
(2.1.1.1)
dsolve r, c t
dsolve
c t =
1 k t C_C1
(2.1.1.2)
c t =
A 1 Ck t A
(2.1.1.3)
r, c 0 = A , c t
Následné reakce A→B→C: ra d diff ca t , t =Kk ca t d ca t = Kk ca t dt rb d diff cb t , t = k ca t Kk cb t d cb t = k ca t Kk cb t dt rc d diff cc t , t = k cb t d cc t = k cb t dt Řešíme za počátečních podmínek: ca = A, cb=cc=0: r d dsolve
ra, rb, rc, ca 0 = A, cb 0 = 0, cc 0 = 0 , ca t , cb t , cc t ca t = A eKk t, cb t = k t A eKk t, cc t = K1 Kk t A eKk t CA
(2.1.1.4)
(2.1.1.5)
(2.1.1.6)
(2.1.1.7)
assign r Pokud zadáme počáteční koncentraci látky A rovnou 1 a reakční konstantu k=2: Ad1 1
(2.1.1.8)
kd2 2 (2.1.1.9) řešení si můžeme vykreslit: Látka A nám od začátku reakce ubývá. Látka B je na počátku nulová poté dosahuje svého maxima a opět klesá k nule. Koncentrace látky C v čase roste. Ukážeme si notoricky známý graf: plot
ca t , cb t , cc t , t = 0 ..5
1
0.8
0.6
0.4
0.2
0 0
1
2
3
4
5
t
dsolve - numerické řešení diferenciálních rovnic Volání: dsolve( deqns, vars, numeric ) Parametry: deqns - množina diferenciálních rovnic a počátečních podmínek vars - proměnná nebo jejích množina Popis: • Voláním funkce dsolve s argumentem numeric vytváří numerickou proceduru, jejímž voláním pro konkrétní hodnoty nezávisle proměnné lze počítat hodnoty numerického řešení vstupních rovnic v daném bodě. • Numerické řešení se vrací jako množina rovnic udávající hodnoty vstupní proměnné a funkčních hodnot v daném bodě. • Přesnost řešení lze kontrolovat pomocí dvou systémových proměnných RELERR a ABSERR
• udávajících maximální relativní a absolutní odchylku numerického řešení od exaktních hodnot.
Příklady: d d x t =y t , y t = Kx t , x 0 = 1, y 0 = 0 dt dt d d x 0 = 1, y 0 = 0, x t =y t , y t = Kx t dt dt dsn1 := dsolve dsys, numeric proc x_rkf45 ... end proc dsn1 1 t = 1., x t = 0.540302331778567, y t = K0.841471101155307 t = 1., x t = 0.540302304342753614, y t = K0.841471136025939148 t = 1., x t = 0.540302304342753614, y t = K0.841471136025939148 dsn2 := dsolve dsys, numeric, y t , x t proc x_rkf45 ... end proc dsn2 1 t = 1., y t = K0.841471101155307, x t = 0.540302331778567 dsys :=
(2.2.1.1) (2.2.1.2) (2.2.1.3) (2.2.1.4) (2.2.1.5) (2.2.1.6)
dsn2 5 t = 5., y t = 0.958924768912287, x t = 0.283662280526265 with plots : odeplot dsn2, t, y t , x t , 0 ..5, color = blue
(2.2.1.7)
Následné reakce druhého řádu: ra d diff ca t , t =Kk ca t
2
d ca t = Kk ca t dt
2
rb d diff cb t , t = k ca t 2 Kk cb t 2 d cb t = k ca t 2 Kk cb t dt rc d diff cc t , t = k cb t
(2.2.1.8)
2
(2.2.1.9)
2
d cc t = k cb t dt
2
(2.2.1.10)
A d 1; k d 2 1 2 dsolve
ra, ca 0 = A , ca t
(2.2.1.11)
ca t =
1 1 C2 t
(2.2.1.12)
assign % dsolve rb, cb 0 = 0 , cb t cb t 1 1 1 = 5 K5 tanh K5 ln 1 C2 t 10 1 C2 t 10 1 C2 5 arctanh 5 5 5 5 assign % ccn d dsolve rc, cc 0 = 0 , cc t , numeric proc x_rkf45 ... end proc with plots : plot ca t , cb t , t = 0 ..5
(2.2.1.13)
(2.2.1.14)
1
0.8
0.6
0.4
0.2
0 0
1
2
3 t
Vykreslení numerického řešení diferenciální rovnice: odeplot ccn, t, cc t , 0 ..5, color = blue
4
5
0.7
0.6
0.5
cc
0.4
0.3
0.2
0.1
0 0
1
2
3
4
t display
plot
ca t , cb t , t = 0 ..5 , odeplot ccn, t, cc t , 0 ..5, color = blue
5
1
0.8
0.6
0.4
0.2
0 0
1
2
3 t
4
5
2D a 3D GRAFY Bez vykreslování grafů se v přírodních vědách jen těžko obejdeme. V tomto kurzu se naučíme zobrazovat 2D a 3D grafy (grafy jedné a dvou proměnných), ale i různé křivky a plochy. Budeme se také zabývat manipulací a úpravou grafů.
2D grafy • Nejjednodušší cesta, jak vykreslit daný graf je použití Contex menu: Napíšeme danou funkci a pomocí Contex menu zvolíme: Plots/2-D Plot f d sin x C3 C
1 x 2 sin x C3 C
1 x 2
(1.1)
/
4
2
K10
0
K5
K2
K4
5 x
10
Úprava grafu: 1. Najedeme na graf a pravým klikem rozbalíme nabídku (imlicitní nastavení - červená plná čára a osy se protínají v nule, popisek jen u osy x): Cut Copy Paste
Odstranit graf Kopírtovat Vložit
Style Symbol Line Color Transparen cy
Režim grafu (čára, body) Změna symbolu pro body Změna stylu čáry Změna barvy (nutno nejprve označit danou oblast, např. čáru nebo body) Průhlednost
Axes Legend Title Scaling Constrained
Změna formátu osy, popisek osy (Labels), nastavení mřížky (Gridlines) Zapnutí/vypnutí legendy, umístění legendy Název grafu, popisek Zapnutí/vypnutí stejného měřítka os
Manipulato Pan - měníme rozsah zobrazením pouhým tahem r myši (zobrazí se ruka), Scale - měníme měřítka os pohým tahem myší (zobrazí se šipka) Probe Info Cursor position - Souřadnice bodu, kde máme kurzor, Nearest point on line - zobrazí se soužadnice nejbližšího bodu Export
Export grafu do různých formátů
2. Po kliknutí na gfar se nám rozbalí nahoře lišta s ovladači grafu. 3. Po kliknutí na graf zvolíme nahoře na hlavní liště Plot / rozbalí se nabídka.
Nastavení osy x a y • Klikneme na graf a zvolíme Axis/Properties.. nebo
z grafické lišty. Zde můžeme pro
obě osy zvolit maximální a minimální hodnoty, měřítko, zobrazení vodítek a jejich barvu.
Nastavení mezí
Měřítko na ose
Nastavení vodítek
Kombinování dvou a více grafů v jednom zobrazení • Můžeme jednoduše přidat jiný graf k dalšímu, pokud mají stejné osy. Napíšeme danou funkci, poté výraz označíme a tahem myši přesumene na již vytvořený graf. Automaticky se nám zobrazí další funkce v grafu. f sin x C3 C /
1 x 2
(1.2.1)
30
20
10
K10
0
K5
5 x
10
K10
K20
K30
f
g
h
g d f C3 x sin x C3 C
7 x 2
(1.2.2)
sin x C3 K
5 x 2
(1.2.3)
h d f K3 x
Popisování grafu • Vytvořený graf lze jednoduše popsat nebo do něj vklárat různé obrázky pomocí nástroje kreslení - Drawing tools. • Klikneme na graf a poté klikneme na kolečka, text a upravovat jej.
na liště. Můžeme pak vkládat čáry,
30
Graf funkce g
20
10
K10
0
K5
5 x
10
K10
K20
sin x C 3 C k x K30
f
g
h
Zobrazení grafu pomocí příkazu- plot Volání: plot(f,h,v ) plot(f,h,v,...) Parametry: f - zobrazovaná funkce h - horizontální interval v - (nepovinný) vertikální interval Popis: • Typické volání příkazu plot je plot(f(x),x=a..b), kde f je reálná funkce nebo výraz proměnné x a a..b specifikuje zobrazovaný interval proměnné x. • Horizontální a vertikální intervaly h a v udávají rozsah zobrazovaného grafu. Zadávají se ve tvaru a..b nebo jmeno=a..b.
• Funkce plot poskytuje možnost zobrazení výrazů, procedur, parametrických funkcí nebo seznamů bodů. Pokud je argumentem výraz nebo procedura, musí obsahovat pouze jedinou předem nedefinovanou proměnnou, jejíž rozsah je definován pomocí intervalu h. • Chceme-li zobrazit parametrickou funkci, zadává se f jako seznam obsahující tři prvky. Prvním prvkem je výraz udávající závislost proměnné x na parametru, druhým prvkem je výraz udávající závislost proměnné y na parametru a třetím je rovnice typu t=a..b, kde t je parametr rovnice a a..b je jeho rozsah, tedy např. [sin(t), cos(t), t=0..2 Pi] pro zobrazení kružnice. • Seznam bodů se zadává jako seznam obsahující střídavě souřadnice x a y jednotlivých bodů. • Pokud chcete znázornit současně několik křivek, zadejte jako první argument množinu obsahující jako své prvky některé z výše uvedených typů, tedy např. množinu funkcí nebo množinu seznamů. Zbývající argumenty jsou interpretovány jako podmínky zobrazení a zadávají se ve tvaru podm = hodnota, kde podm je jméno podmínky a hodnota je hodnota, kterou daná podmínka zobrazení nabývá. Základními možnými podmínkami jsou: color=barva,
- kde barva je anglický název barvy
axes=FRAME, BOXED, NORMAL, NONE
- pro zadání typu os.
coords=polar polárních souřadnicích.
- pro zobrazení parametrické křivky v
numpoints=n - pro definici minimálního počtu bodů pro zobrazení funkce. Není-li počet bodů deklarován, použije se n = 49 style=LINE, POINT, PATCH
- pro zadání typu zobrazovaných objektů.
title=t
- pro specifikaci hlavičky grafu.
discont=true
- pro vykreslovaní nespojitých funkcí
labels=[x,y] zadávají jako řetězce.
- pro definici popisku os. Kde x a y se
linestyle=n - pro definici typu vykreslované čáry: n= 1 ro plnou čáru, n=2 pro tečkovanou čáru, n=3 peo čárkovanou a n= 4 pro čerchovanou čáru, symbol=s - pro definici symbolu při použití style= POINT, kde s je jedna z následujících možností BOX, CROSS, CIRCLE, POINT nebo DIAMOND. thickness=n nebo 3.
- pro určení tloušťky čar, kde n je 0, 1, 2
view=[xmin..xmax, ymin..ymax]
- definuje rozsah zobrazované oblasti
• Po zadání příkazu se graf funkce zobrazí na obrazovce. Klepnutím na graf se změní menu v horní části obrazovky a jeho prostřednictvím lze následně změnit většinu parametrů zobrazeného grafu.
Příklady plot sin x Csin 2 x , x = 0 ..2. Pi
1.5
1
0.5
0 1
2
3
4 x
K0.5
K1
K1.5
plot
1 , x = 0 ..2 xK1
5
6
50000
40000
30000
20000
10000
0 0.5 plot
1 x
1 , x = 0 ..2, y =K5 ..5., title = špatný graf xK1
1.5
2
špatný graf
4
y 2
0 0.5
1 x
1.5
K2
K4
TIP: Nespojité grafy - je třeba zadat parametr discont=true: plot
1 , x = 0 ..2, y =K5 ..5, discont = true, title = dobrý graf xK1
2
dobrý graf
4
y 2
0 0.5
1 x
1.5
2
K2
K4
p d x3 K7 x C6 x3 K7 x C6 plot p, x = 0 ..3
(1.4.1.1)
12
10
8
6
4
2
0 1
2 x
plot p, x =Kinfinity..infinity
3
N
KN
N
0 x
KN plot sin t , cos t , t = 0 ..Pi , view = K2 ..2,K2 ..2
2
1
K2
0
K1
1
K1
K2 plot 1, phi, phi = 0 ..2 * Pi , coords = polar, style = point, numpoints = 100
2
1
0.5
K0.8
K0.6
K0.4
0
K0.2
0.2
0.4
K0.5
K1 plot
0, 0 , 0, 1 , 1, 1 , 1, 0 , 0, 0 , view = K1 ..2,K1 ..2
0.6
0.8
1
2
1
0
K1
1
2
K1 taylor sin x , x xK
plot
sin x , x K line, line
1 3 1 x C x5 CO x6 6 120
(1.4.1.2)
x3 x3 1 5 , xK C x , x = 0 ..2, color = red, green, blue , style = point, 6 6 120
1
0.8
0.6
0.4
0.2
0 0
0.5
1 x
1.5
2
3D grafy • Můžeme jednoduše vytvořit graf funkce dvou proměnných tak, že napíšeme funkci a pomocí Context menu zvolíme Plots/3-D Plots/x,y: sin x .y sin x .y /
(2.1)
• Zobrazeným grafem se dá velice jednoduše otáčet: Najedeme kurzorem na graf a po zobrazení šipky otáčíme pohybem myši. • Graf lze libovolně upravovat, jako je tomu v případě 2D Grafů. (Např. Axis/Boxed)
Zobrazení pomocí příkazu - plot3d Voláni: plot3d( expr, x=a..b, y=c..d ) plot3d( [exprf, exprg, exprh], s=a..b, t=c..d ) Parametry: expr exprf,exprg,exprh a..b, c..d x,y,s,t Popis:
- výraz proměnných x a y - výrazy proměnných s a t - intervaly - proměnné
• Pro první formu volání se zobrazí funkce proměnných x a y. • V druhé formě se zobrazí plocha definovaná jako parametrická funkce dvou parametrů s a t, jednotlivé výrazy odpovídají souřadnicím x, y a z. • Mimo to lze uvést další parametry obdobně jako u funkce plot. Parametry zobrazení lze změnit i v průběhu zobrazení pomocí menu, které opět aktivujeme klepnutím na obrázek. • Detailní popis všech parametrů lze získat pomocí nápovědy ?plot3d,options
Příklady 2
2
plot3d x Ky , x =K2 ..2, y =K2 ..2
plot3d 10 exp Kx2 Ky2 / 4 , x =K2 ..2, y =K4 ..4
plot3d
sin t $cos f , sin t $sin f , cos t , t = 0 ..
Pi , f = 0 ..2 Pi, color = blue 2
Kreslení grafů pomocí Plot Builder 1. Napíšeme funkci a rozbalíme Contex menu pomocí pravého kliknutí na danou funkci. Vybereme Plots→Plot Builder. Otevře se okno:
graf nebo animace pokud potřebujeme upravit funkci Zvolíme typ grafu
Změna měřítka osy x
Další parametry grafu
2. Po volbě typu grafu a mezí pro osu x přejdeme na další parametry grafu Options:
Měřítko osy y
Styl grafu: čára, body, atd. Styl čáry
Styl symbolu bodů
Nastavení os: styl, popisek, atd.
Náhled
vygenerování příkazu
3. Nyní můžeme nastavit různé parametry našeho grafu. Poté se posíváme na náhled a pokud potřebujeme vše vrátit použijeme tlačítko Reset nebo vygenerujeme graf pomocí Plot. Pro návrat na předešlé okno použijeme Back. 4. Pokud máme potřebu dané nastavení nadále několikrát používat pro různé grafy můžeme si vygenetovat příkaz pomocí tlačítka Command, který poté zkopírujeme na další řádku a vygenerujeme graf potvrzením.
Příklady: Napíšeme funkci x2 Cy2 a poté zvolíme v Context menu/Plots/Plot Builder. Upravíme dle potřeby
a dáme Plot: 2
2
x Cy
x2 Cy2
(3.1.1)
/
3D plot
• Nebo můžeme vykreslit daný graf v planárním zobrazení: Ze Select Plot Type zvolíme 2-D contour plot:
4
y 2
x2 Cy2 /
K4
0
K2
2
4 x
K2
K4
• Můžeme vytvořit i animaci: Plot/Plot builder → Select Plot type →Animation • Na horní liště se objeví ovládání. Spuštění provedete pomocí , atd. 2
sin a $
2
x Cy 2
π
/
a = 0.
• Pomocí Plot Builder můžeme i vytvořit příkaz pro jakýkoliv graf a následně jej lehce kopírovat a používat. t e - Vložíme funkci , zderivujeme ji a aplikujeme Plot Builder. Upravíme měřítko na osách a t stiskneme Command. et t plot
differentiate w.r.t. t
et et et et K 2 / plot K 2 , t = 0 ..10, view = DEFAULT, K2000 ..2000 t t t t
et et K 2 , t = 0 ..10, view = DEFAULT, K2000 ..2000 t t
2000
1000
0 2
4
6 t
K1000
K2000
8
10
Tento výukový materiál vznikl v rámci projektu CZ.1.07/2.2.00/28.0296 „Mezioborové vazby a podpora praxe v přírodovědných a technických studijních programech UJEP“, spolufinancovaného Evropským sociálním fondem a státním rozpočtem České republiky.
1