Ukázka práce v programu MAPLE

Rozhovoru o využití systému MAPLE se účastní tito aktéři:

  1. Téměř ideální student(ka), přemýšlivý a přemýšlející; předpokládá se, že si vědomosti shromažďuje průběžným studiem během semestru *).
    Dále vystupuje pod zkratkou "Std. ".
  2. Téměř ideální pedagog(žka), chápavý a chápající obtíže studentů vnikajících do tajů matematiky. Oplývá znalostmi matematiky a slabých míst studentů **).
    Dále vystupuje pod zkratkou "Ped. ".

Poznámky pod čarou:

*) Zdá se, že takový student vůbec neexistuje, ale nemylme se, v každé studijní skupině jsou alespoň dva (dvě).
**) Zdá se, že takový pedagog vůbec neexistuje, ale nemylme se, na ústavu 522 existuje alespoň jeden (jedna).

 

Std.: Co je to MAPLE ?

Ped.: MAPLE je počítačový algebraický systém (Computer Algebra System).

Std.: No dobrá, může mi pomoci s matematikou na vysoké škole ?

Ped.: Ano, pokud o matematice alespoň něco víte a umíte alespoň trochu anglicky.

Std.: Kde mohu získat MAPLE ?

Ped.: Podrobnosti o tom, jak získat MAPLE, najdete na serveru http://math.feld.cvut.cz/nemecek/pas.html

Std.: Potřebuji zkontrolovat příklad: Vyšetřete průběh funkce

.

Jsou v MAPLE stejné operace a funkce, jaké jsem zvyklý používat ?

Ped.: Něco stejné je, něco ne.

Operace

sčítání +

+

odčítání -

-

dělení :

/

násobení ·

*

umocnění

a^b nebo a**b

Funkce

exponenciální

exp(x)

přirozený logaritmus

ln(x)

odmocnina

sqrt(x)

absolutní hodnota

abs(x)

trigonometrické funkce

sin(x), cos(x), tan(x), cot(x)

cyklometrické funkce

arcsin(x), arccos(x), arctan(x), arccot(x)

Std.: Dobrá, jdu na to ! Jak se zadefinuje funkce ?

Ped.: To je velmi jednoduché, ":=" značí definování, tedy

> f:=x^4/(x-1)^3;

Za každým příkazem píšeme středník a pak stiskneme klávesu "Enter", dostaneme odpověď:

Std.: Prima, dobrá kontrola. Definiční obor znám Df = R - {1}. Ovšem limity mi dělají problémy, jak je zkontrolovat ?

Ped.: MAPLE si s tím poradí pomocí příkazu " limit ", pro nekonečno použijeme klíčové slovo " infinity".

> limit(f,x=-infinity);

> limit(f,x=1);

Std.: To vypadá, že limita v bodě (+1) neexistuje. To bývá v případě, že jednostranné limity v bodě (+1) jsou různé. Co na to MAPLE ?

Ped.: Podívejme se tedy na limitu v bodě (+1) zleva:

> limit(f,x=1,left);

a zprava:

> limit(f,x=1,right);

Std.: Je tedy jasné, že přímka x=1 je asymptota. (Jestlipak se v grafu také objeví ?)

Ped.: Zbývá ještě jedna limita:

> limit(f,x=infinity);

Std.: Pak už derivujeme a zjišťujeme znaménko derivace.

Ped.: Bude dobré první derivaci nějak označit, třeba f1. Příkaz pro derivaci je " diff".

> f1:=diff(f,x);

Std.: Snad to nebudu muset upravovat, v tom nasekám vždycky moc chyb.

Ped.: MAPLE má příkaz pro zjednodušení " simplify", tedy můžeme psát dohromady

> f1:=simplify(diff(f,x));

Std.: Teď spočítáme nulové body první derivace, tedy řešíme rovnici f1 = 0.

Ped.: Pro řešení rovnice použijeme příkaz " solve" (tj. řeš rovnici f1 = 0, x je neznámá)

> solve(f1=0,x);

Std.: Jasně, 0 je trojnásobný kořen. Definiční obor rozdělím nulovými body na intervaly (-∞,0), (0,1), (1,4), (4,). Potřebuji zjistit znaménko derivace na těchto intervalech.

Ped.: Abychom zjistili znaménko f1 třeba na intervalu (-∞,0), dosadíme z tohoto intervalu nějaké číslo do f1 (příkaz "subs")

> subs(x=-1,f1);

To může být někdy nepřehledné. V MAPLE lze použít funkci " signum", která kladným číslům přiřazuje hodnotu 1 a záporným -1, nule nulu (určitě jste se s ní setkali). Tedy

> signum(subs(x=-1,f1));

> signum(subs(x=1/2,f1));

> signum(subs(x=2,f1));

> signum(subs(x=5,f1));

Std.: Výborná kontrola mnou vytvořené tabulky. (Původně mi ta tabulka přišla jako buzerace, ale záhy jsem si ověřil(a), že je to velmi užitečné kvůli přehlednosti.)

  (-∞,0) 0 (0,1) (1,4) 4 (4,)
f ' + 0 - - 0 +
f    

V bodě 0 je lokální maximum, v bodě 4 je lokální minimum. Teď bych asi zvládnul výpočet funkčních hodnot f(0), f(4).

> subs(x=0,f);

> subs(x=4,f);

Zkusím druhou derivaci

> f2:=simplify(diff(f1,x));

> solve(f2=0,x);

> signum(subs(x=-1,f2));

> signum(subs(x=1/2,f2));

> signum(subs(x=2,f2));

A druhá tabulka je tedy

  (-∞,0) 0 (0,1) (1,)
f ' - 0 - +
f 0

Inflexní body funkce nemá.

Asymptoty u +∞ a -∞ si už troufám spočítat také sám.

U +∞

> k1:=limit(f/x,x=infinity);

> q1:=limit(f-k1*x,x=infinity);

A ještě u "-∞" (asymptoty mohou být u  +∞ a u  -∞ různé))

> k2:=limit(f/x,x=-infinity);

> q2:=limit(f-k2*x,x=-infinity);

Tedy v našem případě je stejná asymptota u +∞ a u - ∞: y = x + 3.
Teď už zbývá jenom graf.

Ped.: MAPLE má pro kreslení grafu v rovině příkaz "plot"

> plot(f,x);

Std.: No nazdar, to snad není ani funkce. To toho tedy MAPLE moc neumí.

Ped.: Na to se musí šikovně, lze zadat mnoho dalších parametrů, které ovlivní vykreslení grafu. Všimněme si údajů na ose x (od -10 do 10) a na ose y (tam bude asi zakopán pes). Výběr intervalu na ose x i na ose y lze udělat podle potřeby. Změňme interval na ose y (na ose x lze provést analogicky).

> plot(f,x,y=-50..50);

Std.: Co tam dělá ta svislá čára ? Ke grafu snad nemůže patřit, že by tobyla už svislá asymptota ? Proč pak nekreslí i šikmou asymptotu ?

Ped.: Asymptota to není, program se snaží spojit dvě části grafu. Ale to se dá snadno ošetřit

> plot(f,x,y=-50..50,discont=true);

Std.: To vypadá trochu líp, ale proč je to najednou zelené ? Také většinou volím stejné měřítko na osách x,y. Je to možné zařídit ?

Ped.: Samozřejmě si lze poradit i s barvou. Nechť je tedy graf v barvě červené.

> plot(f,x,y=-50..50,discont=true,color=red);

Pak myší označíme graf a ze seznamu nabídnutých tlačítek vybereme toto: . Graf bude vypadat takto:

Vidíme velký nepoměr mezi intervaly na ose x a na ose y, navíc bychom při každém novém vykreslení museli provést změnu měřítka pokaždé znovu; bude tedy lepší přidat tento požadavek na měřítko rovnou do příkazu; změňme i interval na ose y.

> plot(f,x,y=-15..15,discont=true,color=red,scaling=constrained);

Std.: Teď už to vypadá skoro jako můj obrázek, ale mám to lepší, protože mám i asymptoty. Umí to taky MAPLE ?

Ped.: Se šikmou asymptotou y = x + 3 nebude problém. Definujme si tuto funkci

> g:=x+3;

a nyní nakresleme obě funkce zároveň

> plot({f,g},x,y=-15..15,discont=true,color=red,scaling=constrained);

Std.: Už vidím, kde je problém se svislou asymptotou, tu totiž nelze popsat funkcí.

Ped.: Ale můžeme ji popsat parametricky x = 1, y = t, tR . Ovšem pak je nutno ještě vyvolat nadřazený příkaz "with(plots)", který dovolí kreslit grafy různě zadaných křivek

> with(plots);

Abychom se vyhnuli těmto dlouhým výpisům, případně některým mezikrokům, použijeme místo středníku dvojtečku.

> with(plots):

> F:=plot(f,x,y=-15..15,discont=true,color=red):

> G:=plot(g,x,y=-15..15,discont=true,color=blue):

> H:=plot([1,t,t=-15..15],color=green):display({F,G,H}, scaling=constrained);

Std.: Tak to už si nechám líbit. To začíná vypadat pěkně. Složité to není, ale trochu si s tím musí člověk vyhrát. Řekl bych, že je to zábavnější než některé stupidní počítačové hry. Dávám za pravdu názvu MAPLE - Mathematics pleasure. P O J Ď T E   S I   H R Á T .

Ped.: Odměna za výdrž: něco málo z toho co všechno ještě umí Maple.

>F:=spacecurve([cos(t)*cos(24*t),cos(t)*sin(24*t),sin(t)],t=-Pi/2..Pi/2, axes=normal,numpoints=1000,color=red, tickmarks=[0,0,0], scaling=constrained):

> G:=textplot3d([-1,-1,0.5,"Sférická spirála"], font=[HELVETICA,OBLIQUE,22],color=black):

> display([F,G]);

> plot3d([u-u^3/3+u*v^2,v-v^3/3+v*u^2,u^2-v^2],u=-3..3, v=-3..3, shading=zgrayscale,lightmodel=light1,orientation=[114,62],grid=[40,40]);

> polarplot(f^2,f=-6*Pi..6*Pi,scaling=constrained,numpoints=2000);

> F:=spacecurve([t,0,t], t=-30..30, color=red, thickness=3, tickmarks=[0,0,0]):

> G:=plot3d([t*cos(u),t*sin(u),t], t=-30..30, u=0..2*Pi, color=grey,tickmarks=[0,0,0],numpoints=1000):

> H:=plot3d([-7,t,s],t=-35..35,s=-35..35,color=yellow):

> display({F,G,H});

> plot3d([cos(u)*(4+4*cos(v)),sin(u)*(4+4*cos(v)),4*sin(v)],u=0..Pi,v=0..2*Pi,scaling=constrained);

 A ještě mnohem víc.