1 Základy práce s programem Maple

Podobné dokumenty
Užití Maple při řešení kvadrik

3.2 3DgrafyvMaple 106 KAPITOLA 3. UŽITÍ MAPLE PŘI ŘEŠENÍ KVADRIK

3.4 Řešení Příkladu 1 (str.55) v programu Maple

Matematika I A ukázkový test 1 pro 2014/2015

Matematika I A ukázkový test 1 pro 2011/2012. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

1 Řešení soustav lineárních rovnic

Soustavy nelineárních rovnic pomocí systému Maple. Newtonova metoda.

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

Program SMP pro kombinované studium

ÚSTAV MATEMATIKY A DESKRIPTIVNÍ GEOMETRIE. Matematika 0A1. Cvičení, zimní semestr. Samostatné výstupy. Jan Šafařík

Ekonomická fakulta, Jihočeská univerzita v Českých Budějovicích. MATEMATICKÝ SOFTWARE MAPLE - MANUÁL Marek Šulista

CZ 1.07/1.1.32/

0.1 Úvod do lineární algebry

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

5. Lokální, vázané a globální extrémy

Řešíme tedy soustavu dvou rovnic o dvou neznámých. 2a + b = 3, 6a + b = 27,

6. Vektorový počet Studijní text. 6. Vektorový počet

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

Maturitní témata z matematiky

Co je obsahem numerických metod?

MATURITNÍ TÉMATA Z MATEMATIKY

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

Gymnázium Jiřího Ortena, Kutná Hora

0.1 Úvod do lineární algebry

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika. ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání:

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

6 Samodružné body a směry afinity

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

5.3. Implicitní funkce a její derivace

1 Polynomiální interpolace

Maturitní okruhy z matematiky - školní rok 2007/2008

VIDEOSBÍRKA DERIVACE

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Maturitní témata profilová část

1.13 Klasifikace kvadrik

Požadavky ke zkoušce. Ukázková písemka

Soustavy lineárních rovnic

Gymnázium Jiřího Ortena, Kutná Hora. Průřezová témata Poznámky. Téma Školní výstupy Učivo (pojmy) volné rovnoběžné promítání průmětna

Maturitní otázky z předmětu MATEMATIKA

7 Analytické vyjádření shodnosti

VIDEOSBÍRKA DERIVACE

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Nezbytnou součástí ústní zkoušky je řešení matematických příkladů, které student obdrží při zadání otázky.

Gymnázium Jiřího Ortena, Kutná Hora

Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora

Matematika 1 Jiˇr ı Fiˇser 19. z aˇr ı 2016 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 19. z aˇr ı / 19

Učební plán 4. letého studia předmětu matematiky. Učební plán 6. letého studia předmětu matematiky

Otázku, kterými body prochází větev implicitní funkce řeší následující věta.

Matematika I. dvouletý volitelný předmět

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Soustavy lineárních rovnic a determinanty

výsledek 2209 y (5) (x) y (4) (x) y (3) (x) 7y (x) 20y (x) 12y(x) (horní indexy značí derivaci) pro 1. y(x) = sin2x 2. y(x) = cos2x 3.

= cos sin = sin + cos = 1, = 6 = 9. 6 sin 9. = 1 cos 9. = 1 sin cos 9 = 1 0, ( 0, ) = 1 ( 0, ) + 6 0,

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

9.1 Definice a rovnice kuželoseček

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Příklad 1. Řešení 1a Máme určit obsah rovinné plochy ohraničené křivkami: ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 14. a) =0, = 1, = b) =4, =0

Substituce ve vícenásobném integrálu verze 1.1

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

MATEMATIKA II - vybrané úlohy ze zkoušek ( 2015)

Připomenutí co je to soustava lineárních rovnic

Matematika 2 (Fakulta ekonomická) Cvičení z lineární algebry. TU v Liberci

y ds, z T = 1 z ds, kde S = S

DERIVACE. ln 7. Urči, kdy funkce roste a klesá a dále kdy je konkávní a

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

Matematika B101MA1, B101MA2

Numerické metody a programování

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Soustavy linea rnı ch rovnic

1 Mnohočleny a algebraické rovnice

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

Zimní semestr akademického roku 2014/ prosince 2014

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

PŘEDNÁŠKA 9 KŘIVKOVÝ A PLOŠNÝ INTEGRÁL 1. DRUHU

13. cvičení z Matematické analýzy 2

Wolfram Alpha. v podobě html stránky, samotný výsledek je často doplněn o další informace (např. graf, jiné možné zobrazení výsledku a

II. Zakresli množinu bodů, ze kterých vidíme úsečku délky 3 cm v zorném úhlu větším než 30 0 a menším než 60 0.

Matematika I (KX001) Užití derivace v geometrii, ve fyzice 3. října f (x 0 ) (x x 0) Je-li f (x 0 ) = 0, tečna: x = 3, normála: y = 0

CAD_Inventor -cvičení k modelování a tvorbě technické obrazové dokumentace Spirála

)(x 2 + 3x + 4),

1 Soustavy lineárních rovnic

Tematický plán Obor: Informační technologie. Vyučující: Ing. Joanna Paździorová

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

5. cvičení z Matematiky 2

Transformujte diferenciální výraz x f x + y f do polárních souřadnic r a ϕ, které jsou definovány vztahy x = r cos ϕ a y = r sin ϕ.

Lingebraické kapitolky - Analytická geometrie

PŘÍKLADY K MATEMATICE 3 - VÍCENÁSOBNÉ INTEGRÁLY. x 2. 3+y 2

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

M - Příprava na 1. zápočtový test - třída 3SA

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ

Transkript:

1 ZÁKLADY PRÁCE S PROGRAMEM MAPLE 1 Základy práce s programem Maple Počítačový algebraický systém Maple TM je produktem kanadské společnosti Maplesoft, Waterloo Maple Inc. Jedná se o špičkový produkt v kategorii programů CAS (Computer Algebra System), který je téměř každý rok aktualizován. V době vydání této knihy byla na trh uvedena verze Maple 14. Uživatel má k dispozici několik typů rozhraní pro komunikaci s programem a pro využívání jeho výpočetních prostředků. Dva základní módy práce s programem nabízejí uživatelská prostředí Standard worksheet a Classic worksheet. První z nich, Standard worksheet (generuje soubory s příponou mw), představuje plně grafické uživatelské rozhraní, v jehož pojetí se promítají nejnovější trendy ve vývoji komunikačních rozhraní mezi uživatelem a počítačovým programem. Konkrétně se jedná o snahu zprostředkovat uživateli možnost intuitivního ovládání programu, bez nutnosti znát syntax jeho příkazů. Konzervativním protipólem tohoto grafického uživatelského rozhraní je prostředí Classic worksheet (generuje soubory s příponou mws). To zachovává design charakteristický pro Maple již od jeho verze 5, zároveň však plně využívá nejnovější výpočetní jádro systému spolu se všemi jeho funkcemi. Zřejmou výhodou prostředí Classic worksheet jsou nižší nároky na velikost paměti počítače a rychlost jeho procesoru. Pro běžného uživatele, který nemá důvod pro investování do každoročního upgrade, je ještě významnějším plusem tohoto prostředí nadčasovost jeho vzhledu, stejně jako způsobu práce. Příklady v něm vytvořené jsou tak ve většině případů přenositelné mezi různými verzemi programu. Z tohoto důvodu jsou všechny řešené příklady i ukázky řešení dílčích problémů v tomto materilu realizovány v prostředí Classic worksheet Maple 13. Zevrubné informace o programu Maple, příklady jeho použití, instruktážní videa apod, stejně jako popisy dalších produktů firmy Maplesoft, najde zájemce na webové stránce http://www.maplesoft.com. 1.1 Zadávání příkazů Na jednom řádku může být uvedeno více příkazů, každý z nich však musí být ukončen středníkem (;) nebo dvojtečkou (:) a řádek potvrzen klávesou Enter (bez ohledu na to, kde je v něm kurzor). Například 2 a 3 sečteme příkazem 2+3;. Příkaz ukončený středníkem se vykoná a jeho výsledek se zobrazí na následujícím řádku, příkaz ukončený dvojtečkou se rovněž vykoná, výsledek se však nezobrazí. Nový výpočet s proměnnými je vhodné zahájit příkazem restart;, který vymaže hodnoty všech proměnných. Vyhneme se tak případným komplikacím se starými hodnotami při opakování výpočtu. Pokud potřebujeme vymazat obsah konkrétní proměnné, například proměnné a, použijeme příkaz a:= a ;. Nápovědu ke konkrétnímu příkazu Maple vyvoláme zadáním příkazu ve tvaru?jméno (zde nemusíme ukončit středníkem, stačí Enter). Například, zadáním?plot získáme kompletní nápovědu k příkazu plot i s odkazy na příbuzná témata. Velkým zdrojem informací a inspirace jsou příklady konkrétního použití, které jsou součástí nápovědy ke každému příkazu. Příklady je možno pomocí Ctrl+C, Ctrl+V kopírovat do pracovního okna programu Maple, tam je vyzkoušet a následně třeba modifikovat pro potřeby našich výpočtů. 1

1.2 Přibližná hodnota výrazu 2 FUNKCE JEDNÉ PROMĚNNÉ 1.2 Přibližná hodnota výrazu Maple pracuje v symbolickém režimu. Pokud potřebujeme přibližné vyjádření hodnoty nějakého výrazu desetinným rozvojem, můžeme použít příkaz evalf(výraz, počet cifer);. Například po zadání evalf(pi,20); dostaneme hodnotu π na 19 desetinných míst. Parametr počet cifer je nepovinný. Vyzkoušejte evalf(sqrt(2));. 1.3 Balíčky příkazů Velká část příkazů programu Maple je uložena v tzv. balíčcích (packages). Například příkazy pro počítání s vektory a maticemi jsou uloženy v balíčcích linalg a LinearAlgebra. Při zobrazování křivek a ploch pak využíváme příkazy z balíčků plots a plottools. Jsou dvě možnosti, jak se k takovým příkazům dostat. 1) Načíst do paměti celý balíček příkazem with. Například balíček linalg načteme příkazem with(linalg);. Ukončíme-li příkaz středníkem, je vypsán seznam všech příkazů z balíčku. Pokud o takový přehled nestojíme, ukončíme příkaz dvojtečkou. 2) Aniž bychom balíček otvírali, můžeme konkrétní příkaz v něm obsažený zavolat příkazem ve tvaru jméno balíčku[jméno funkce](parametry funkce);. Viz například volání příkazu linalg[genmatrix], které je uvedeno v partii věnované řešení soustav rovnic na straně 5. 2 Funkce jedné proměnné 2.1 Definice funkce Chceme-li definovat například funkci f : y = x 2 4x, máme možnost využít těchto dvou příkazů: > f:=x->x^2-4*x; nebo f:=unapply(x^2-4*x,x); Základním příkazem pro zobrazení grafu funkce je příkaz plot(f(x),x);. Podobu grafu můžeme ovlivnit jeho doplněním o další parametry a volby. Například graf s definovaným rozsahem os zobrazíme příkazem > plot(f(x),x=-5..5,y=-4..4); Všechny volby (options), kterými můžeme modifikovat výsledek příkazu plot, zobrazíme zadáním?plot,options. U nespojitých funkcí například oceníme volbu discont=true. Porovnejte příkazy: > plot(tan(x),x=-2*pi..2*pi,y=-4..4); > plot(tan(x),x=-2*pi..2*pi,y=-4..4,discont=true); 2.2 Derivace funkce První, respektive n-tá derivace funkce (výrazu) f(x) se vypočítá zadáním příkazu > diff(f(x),x); resp. diff(f(x),x$n); Chceme-li s derivací dále pracovat jako s funkcí, je vhodné zadat ji pomocí operátoru D. První, respektive n-tá derivace jako funkce proměnné x se potom vyjádří příkazem 2

2.3 Neurčitý a určitý integrál 3 FUNKCE VÍCE PROMĚNNÝCH > D(f)(x); resp. (D@@n)(f)(x); 2.3 Neurčitý a určitý integrál Neurčitý, resp. určitý (s mezemi 2, 4) integrál funkce (výrazu) f(x) vypočítáme příkazem > int(f(x),x); resp. int(f(x),x=2..4); Vyzkoušejte příkaz pro výpočet objemu tělesa vzniklého rotací grafu funkce f(x) kolem osy x na intervalu 0, 5 (zobrazení tohoto rotačního tělesa je popsáno ne straně 8): > Int(Pi*f(x)^2,x=0..5)=int(Pi*f(x)^2,x=0..5); 2.4 Limita funkce Výpočet limity ve vlastním a nevlastním bodě, stejně jako výpočet jednostranné limity funkce f(x) ilustrují následující příklady: > limit(f(x),x=4); limit(f(x),x=infinity); > limit(f(x),x=4,right); > limit(f(x),x=4,left); 3 Funkce více proměnných 3.1 Definice funkce Opět máme dvě možnosti, jak definovat funkci, např. g : z = x 2 sin y: > g:=(x,y)->x^2*sin(y); nebo g:=unapply(x^2*sin(y),x,y); Graf funkce zobrazíme příkazem: plot3d(g(x,y),x=-5..5,y=-5..5); Pro zobrazení plochy dané rovnicí F (x, y, z) = 0, například x 2 y z 2 =0, použijeme příkaz implicitplot3d z balíčku plots: > plots[implicitplot3d](x^2-y^2-z=0,x=-5..5,y=-5..5,z=-5..5); Zobrazená plocha není příliš hladká. Vyzkoušejte přidat do výše uvedeného příkazu implicitplot3d jako nepovinný parametr volbu grid=[30,30,30]. Více informací o možnostech ovlivnit podobu grafu získáme zadáním?plot3d,options. 3.2 Derivace funkce Parciální derivace funkce g(x, y) podlex, respektive podle y, se určí příkazem > diff(g(x,y),x); resp. diff(g(x,y),y); Při použití operátoru D, který umožňuje nakládat s derivací jako s funkcí proměnných x, y, pak vypočítáme uvedené parciální derivace takto: > D[1](g)(x,y); resp. D[2](g)(x,y); 5 g Smíšená parciální derivace se potom zadá příkazem x 2 y3 > diff(g(x,y),x$2,y$3); nebo > D[1$2,2$3](g)(x,y); 3

4 ŘEŠENÍ ROVNIC 4 Řešení rovnic 4.1 Symbolické řešení K symbolickému řešení rovnice, např. x 2 4x 5=0,použijemepříkaz > Res:=solve(x^2-4*x-5,x); resp. Res:=solve(x^2-4*x-5,{x}); Výsledek potom dostaneme ve tvaru Res:=5,-1, resp. Res:={x=5},{x=-1}. Na jednotlivé kořeny rovnice se odkazujeme pomocí indexů, které odpovídají jejich pořadí ve výpisu výsledku příkazu solve, tj.příkazy: Res[1]; a Res[2]; Příkaz solve řeší rovnici v oboru komplexních čísel. Pokud nás zajímají jenom reálné kořeny, můžeme použít alternativní příkaz RealDomain[solve] z balíčku RealDomain. Pro ilustraci porovnejte výstupy následujících příkazů: > solve(x^3+2*x+1,x); a > RealDomain[solve](x^3+2*x+1,x); 4.2 Grafické řešení Při grafickém řešení rovnice oceníme příkazy lhs(rov) a rhs(rov) pro uchopení levé a pravé strany rovnice rov. Například rovnici x x =0.75 0.75 bychom graficky řešili touto posloupností příkazů: > rov:=x^x=0.75^0.75; plot({lhs(rov),rhs(rov)},x=-2..2); 4.3 Zkouška Důležitou součástí řešení rovnice je ověření jeho správnosti dosazením, tj. zkouška. Pro postupné dosazení jednotlivých řešení do rovnice r můžeme použít příkaz subs nebo příkaz eval. Podmínkou použití příkazu eval, které ilustruje následující příklad, je uzavření neznámé x v příkazu solve do složených závorek: > r:=x^3-2*x+1=0; solve(r,{x}); eval(r,res[1]); eval(r,res[2]); 4.4 Rozklad mnohočlenu Někdy potřebujeme provést rozklad mnohočlenu na jedné (např. levé) straně rovnice. Použijeme-li příkaz factor(lhs(r)), záhy zjistíme, že má své limity (viz?factor). Lepší službu vykoná následující série příkazů: > polytools[split](lhs(r),x); > convert(%,radical); Symbol % představuje jméno (systémové) proměnné, v níž je uložen výsledek naposledy vykonaného (tj. potvrzeného klávesou Enter) příkazu. Podobně symbol %% odkazuje na výsledek předposledního vykonaného příkazu. 4.5 Numerické řešení K numerickému řešení rovnice je určen příkaz fsolve. Pokud má rovnice více nulových bodů, je možné v tomto příkazu specifikovat bod, v jehož okolí chceme řešení hledat. Například výše uvedenou rovnici x x =0.75 0.75 bychom, po jejím grafickém řešení, kompletně numericky vyřešili následující posloupností příkazů: > rov:=x^x=0.75^0.75; fsolve(rov,x=0); fsolve(rov,x=1); 4

5 SOUSTAVY LINEÁRNÍCH ROVNIC 5 Řešení soustavy lineárních rovnic. Operace s maticemi a s vektory. 5.1 Soustavy lineárních rovnic Řešme následující (regulární) soustavu lineárních rovnic: x + y +2z =1, 3x y z = 4, 2x +3y z = 6 Přímé řešení provedeme příkazem > solve({x+y+2*z=1,3*x-y-z=-4,2*x+3*y-z=-6},{x,y,z}); Ověření řešitelnosti (Frobeniova podmínka). Rozšířenou matici Aroz, matici soustavy A i vektor pravých stran b vytvoříme následujícími příkazy: > Aroz:=linalg[genmatrix]({x+y+2*z=1,3*x-y-z=-4,2*x+3*y-z=-6}, [x,y,z],flag); > A:=linalg[genmatrix]({x+y+2*z=1,3*x-y-z=-4,2*x+3*y-z=-6}, [x,y,z],b); Poznámka: Opakem příkazu genmatrix je příkaz geneqns. Hodnost matice A zjistíme příkazem linalg[rank](a);, Gaussovu eliminaci provedeme příkazem linalg[gausselim](a);, Gauss-Jordanovu eliminaci pak realizujeme příkazem linalg[gaussjord](a);. Eliminaci můžeme provádět i krok za krokem, například užitím příkazu pivot. Lineární soustavu můžeme řešit i užitím speciálního příkazu linsolve z knihovny linalg. Na tomto místě je třeba uvést, že balíček příkazů linalg je již staršího data a jeho obsah není nijak aktualizován. V novějších verzích Maple je sice nadále trpěn (s přívlastkem deprecated ), avšak jeho funkci přebírá balíček moderněji naprogramovaných příkazů LinearAlgebra (viz?linearalgebra). Řešení regulární soustavy užitím inverzní matice. Řešení soustavy AX = b můžeme vyjádřit vztahem X = A 1 b,kdea 1 je inverzní matice k matici A. Inverzní matici kmaticia získáme zadáním příkazu inverse(a);. Součin matic A 1 a b můžeme provést jedním z následujících dvou příkazů: > evalm(inverse(a)&*b); nebo linalg[multiply](inverse(a),b); Cramerovo pravidlo. Matice A 1,A 2,A 3 vytvoříme například pomocí příkazů submatrix a augment knihovny linalg. Determinant matice A potom vypočítáme příkazem linalg[det](a); Poznámka: Pokud používáme více příkazů z nějaké knihovny, vyplatí se jí otevřít příkazem with, v našem případě with(linalg):. Potom bude výpočet, např. pro neznámou x 2, vypadat následovně. Nejprve vytvoříme matici A 2 příkazem > A2:=augment(submatrix(A,1..3,[1]),b,submatrix(A,1..3,[3])); Potom vypočítáme hodnotu x 2 : > x2:=det(a2)/det(a); 5.2 Zadání matice Matici M typu (2, 3) zadáme jedním z příkazů: 5

5.3 Operace s vektory 6 3D GRAFY V MAPLE > M:=linalg[matrix](2,3,[1,2,3,4,5,6]); > M:=linalg[matrix]([[1,2,3],[4,5,6]]); 5.3 Operace s vektory Vektory, např. u =(1, 2, 3) a v =(0, 5, 4), zadáme příkazy u:=[1,-2,3]; a v:=[0,-5,4]; Skalární, respektive vektorový součin vektorů u, v provedeme následující aplikací příkazu dotprod, resp.crossprod: > linalg[dotprod](u,v, orthogonal ); > linalg[crossprod](u,v); Normu (eukleidovskou) vektoru u spočítáme příkazem linalg[norm](u,2);. Pozor na záměnu s výpočtem absolutní hodnoty výrazu x. Taseurčípříkazem abs(x);. Úhel vektorů u, v spočítáme následující posloupností příkazů. První z nich otevře balíček příkazů linalg, druhý uvede velikost úhlu α v radiánech a pomocí třetího příkazu potom tento údaj převedeme na velikost úhlu ve stupních: > with(linalg): > alpha:=arccos(dotprod(u,v)/(norm(u,2)*norm(v,2))); > evalf(convert(alpha,degrees)); 6 3DgrafyvMaple V této příloze se budeme nejprve podrobně věnovat možnostem znázornění trojrozměrných křivek a ploch pomocí prostředků rozhraní Classic worksheet programu Maple. V závěru přílohy potom zmíníme dvě konkrétní aplikace programu Maple, které dovolují uživatelsky nenáročným způsobem, bez znalosti jakéhokoliv příkazu, konstruovat grafické znázornění ploch a provádět analýzu ploch druhého stupně. Jedná se o takzvané maplety. První z těchto mapletů, Interactive Plot Builder, je asistentem pro kreslení 3D grafů dodávaným spolu s programem. Takovýchto asistentů má uživatel programu Maple k dispozici více, pouze však v prostředí Standard worksheet (pro více informací stačí zadat?assistants ). Druhý z představených mapletů je příkladem uživatelsky naprogramované aplikace. Byl vytvořen v roce 2008 studentem Padagogické fakulty JU Markem Dvorožňákem. Pojetí této aplikace přesně odpovídá jejímu účelu, kterým je provedení kompletní analýzy zadané křivky spolu s jejím grafickým znázorněním. 6.1 Křivka Křivka zvaná šroubovice je dána parametrickými rovnicemi x = r cos ω, y = r sin ω, z = v 0 ω, kde r je poloměr příslušného otáčení, ω je úhel tohoto otáčení a v 0 je parametr šroubového pohybu, tzv. redukovaná výška závitu (posunutí podél osy rotace příslušné otočení o jeden radián). Zadáme parametrické rovnice, zvolíme si hodnoty r a v 0 a odpovídající šroubovici zobrazíme. > H:=omega->[r*cos(omega),r*sin(omega),v0*omega]; > r:=5: v0:=0.1: Pro grafické znázornění křivky H(omega) můžeme použít buď příkaz spacecurve z balíčku plots, nebopříkazplot3d. Zde jsou obě možnosti: 6

6.2 Plocha 6 3D GRAFY V MAPLE > plots[spacecurve](h(t),t=0..4*pi,axes=frame); > plot3d(h(t),t=0..4*pi,s=0..1,numpoints=10000); V druhém případě používáme kvůli dané syntaxi příkazu plot3d (očekává dva parametry) klamný parametr s, který s křivkou nijak nesouvisí. Výslednou podobu grafů můžeme opět ovlivnit prostřednictvím nepovinných parametrů, tzv. voleb (options). 6.2 Plocha Následují příklady různých způsobů zobrazení plochy v závislosti na jejím zadání. Použité příkazy jsou ve většině případů uvedeny v základním tvaru. Tomu může odpovídat kvalita výsledných grafů. Jejich podobu lze dále ovlivnit, a tím i vylepšit, řadou volitelných parametrů, jejichž kompletní přehled získáme zadáním?plot3d,options. Za vyzkoušení určitě stojí například volby grid, numpoints, style, caption a lightmodel. 6.2.1 Plocha daná rovnicí ve tvaru z = f(x, y) Plocha zvaná Plückerův konoid je dána rovnicí z = x2 y 2. K jejímu zobrazení můžeme x 2 + y2 použít buď příkaz plot3d: > z:=(x,y)->(x^2-y^2)/(x^2+y^2); > plot3d(z(x,y),x=-10..10,y=-10..10); nebo příkaz implicitplot3d z balíčku plots: > plots[implicitplot3d](z=(x^2-y^2)/(x^2+y^2),x=-2..2,y=-2..2, z=-2..2, grid=[40,40,10]); 6.2.2 Plocha daná rovnicí ve tvaru F (x, y, z) =0 Trojosý elipsoid, daný rovnicí x 2 +2y 2 +5z 2 1 = 0, zobrazíme například pomocí příkazů > Kv:=x^2+2*y^2+5*z^2-1=0; > plots[implicitplot3d](kv,x=-1..1,y=-1..1,z=-1..1); Jak bylo řečeno v úvodu, můžeme příkazy pro kreslení grafu doplnit různými nepovinnými parametry ovlivňujícími kvalitu obrázku. Vyzkoušejte: > plots[implicitplot3d](kv,x=-1..1,y=-1..1,z=-1..1, grid=[20,20,20],style=patchcontour,color=red,lightmodel=light1, scaling=constrained); 6.2.3 Plocha daná parametricky K zobrazení parametrického vyjádření plochy použijeme příkaz plot3d. Například kulovou plochu o středu S =[1, 2, 3] a poloměru r = 2 zobrazíme užitím parametrického grafu takto: > S:=[1,2,3]; r:=2; > plot3d([s[1]+r*cos(u)*cos(t),s[2]+r*cos(u)*sin(t),s[3]+r*sin(u)], t=0..2*pi,u=-pi/2..pi/2,axes=frame); 7

6.3 Rotační plochy - parametrický graf 6 3D GRAFY V MAPLE 6.2.4 Plocha daná rozměry a souřadnicemi středu/vrcholu Balíček plottools obsahuje příkazy pro zobrazení různých rovinných křivek (mimo jiné elipsy a hyperboly) a trojrozměrných těles (např. koule, válec, rovnoběžnostěn, osmistěn apod.). Nás z nich na tomto místě mohou zajímat kužel, válec a koule, jejichž povrchy jsou částmi příslušných kvadratických ploch. Kulovou plochu o středu S =[1, 2, 3] a poloměru r = 2 tak můžeme zobrazit pomocí příkazu sphere ze zmíněného balíčku plottools takto: > Koule:=plottools[sphere]([1,2,3],2): > plots[display](koule,color=green,lightmodel=light2,axes=frame); Příkazy z balíčku plottools negenerují obrázky, ale pouze data potřebná pro jejich vykreslení, které potom musíme provést příkazem plots[display]. Podobně jako kulovou plochu bychom zobrazili také válec a kužel. Použili bychom příkazy plottools[cylinder] a plottools[cone]. Pro více informací viz?plottools. 6.3 Rotační plochy - parametrický graf Na straně 3 jsme počítali objem tělesa, které vznikne rotací grafu funkce f(x) =x 2 4x kolem osy x na intervalu 0, 5. Toto těleso lze snadno zobrazit (viz obrázek 1) pomocí parametrického grafu takto: > f:=x->x^2-4*x; > P:=[x,f(x)*cos(u),f(x)*sin(u)]; > plot3d(p,x=0..5,u=-pi..pi,scaling=constrained); Obrázek 1: Rotační plocha 6.4 Průnik ploch Průniková křivka kulové plochy s válcovou plochou, které jsou dány rovnicemi x 2 +y 2 +z 2 = 4r, (x r) 2 +y 2 = r 2, se nazývá Vivianiho křivka nebo též Vivianiho okno (viz obrázek 2). Nejprve zobrazíme příslušnou kulovou a válcovou plochu pro konkrétní hodnotu r. Průnikovou křivku těchto dvou ploch potom vyjádříme parametricky a zobrazíme ve stejném obrázku. Výsledek by měl zhruba odpovídat obrázku 2. Definujeme obě plochy a zvolíme hodnotu r =5: > Sph:=x^2+y^2+z^2=4*r^2; Cyl:=(x-r)^2+y^2=r^2; > r:=5: 8

6.4 Průnik ploch 6 3D GRAFY V MAPLE Výstupy příkazů implicitplot nezobrazíme (proto je ukončíme dvojtečkou), ale uložíme do proměnných SphG, CylG: > SphG:=plots[implicitplot3d](Sph,x=-10..10,y=-10..10,z=-10..10, color=grey): > CylG:=plots[implicitplot3d](Cyl,x=-10..10,y=-10..10,z=-10..10, color=pink): K jejich zobrazení do jedné soustavy souřadnic pak použijeme příkaz display z balíčku plots: > plots[display](sphg,cylg); Průnikovou křivku získáme řešením soustavy rovnic daných ploch. Pro získání kompletního řešení použijeme příkaz allvalues: > Sol:=allvalues(solve({Cyl,Sph},{x,y})); Abychom převedli obě řešení do tvaru uspořádaných trojic, použijeme příkaz eval následujícím způsobem: > VW1:=eval([x,y,z],Sol[1]); VW2:=eval([x,y,z],Sol[2]); K zobrazení použijeme příkaz spacecurve z balíčku plots. Opět výstup uložíme do proměnné a ukončíme dvojtečkou: > VWG:=plots[spacecurve]({VW1,VW2 },z=-10..10, color=red, thickness=3, numpoints=1000): Všechny tři objekty (dvě plochy a průnikovou křivku) zobrazíme do jedné soustavy souřadnic: > plots[display3d](sphg,cylg,vwg): Obrázek 2: Vivianiho okno Poznámka: Chceme-li dostat úplně stejný obrázek, jako je Obr.2, musíme příslušné plochy zadat parametricky: > SphG2:=plot3d([2*r*cos(t)*cos(u),2*r*cos(t)*sin(u),2*r*sin(t)], t=-pi..pi, u=0..2*pi, scaling=constrained): > CylG2:=plot3d([r*cos(u)+r,r*sin(u),t], t=-3*r..3*r, u=-pi..pi, scaling=constrained): > plots[display3d](sphg2,cylg2,vwg): 9