Linux E X P R E S

Facebook

Maple

S programem Maple se zřejmě seznámili ti z vás, kteří studovali nebo studují přírodní vědy na některé univerzitě. Jedná se o program umožňující matematické výpočty ze snad každého matematického odvětví, které si dovedeme představit.


Obsahuje velké množství knihoven, které po svém natažení rozšiřují program o rozsáhlý počet funkcí. Takové knihovny je navíc možné i vytvořit. Maple rovněž umožňuje tvorbu skriptů obsahujících různé programové konstrukce.

Program byl napsán na kanadské univerzitě ve Waterloo na začátku osmdesátých let. Mé první setkání s ním se uskutečnilo před více než deseti lety ve verzi 3.0 na počítačích Apple. Tehdy jsem se chybně domníval, že název Maple pochází ze zkratky Matematika pro Apple. Teprve později jsem zjistil, že existuje i verze pro Windows a ještě později jsem zjistil, že existuje i verze pro Linux (a samozřejmě i další UNIXy). Program Maple tak znám a používám o něco déle než Linux. Pozn. red. Recenzována byla verze 9.5.

Nutné je podotknout, že pracovní listy (v originále worksheet) vytvořené na jedné platformě lze použít bez problémů ve stejné verzi programu na jiné platformě. Během své praxe jsem několikrát přenášel pracovní listy mezi Macintoshem, Windows a Linuxem bez vážnějších potíží. Jediné, co jsem musel vždy změnit, byly zápisy absolutních cest k jiným listům, knihovnám a uloženým proměnným, protože ty se samozřejmě mění.

Program Maple je velmi komplexní nástroj. Neměl jsem možnost pracovat s konkurenčními programy Mathematica a MathCad a program Derive jsem používal pouze ve verzi pro DOS. Proto se v žádném případě neodvážím tvrdit, že je Maple nejlepší matematický program. Myslím si, že by to bylo ode mě asi něco podobného jako tvrdit, že je Debian lepší než Red Hat. Vím pouze, že mi Maple pro mé potřeby nejprve studenta a později učitele naprosto vyhovoval a použil jsem jej i k napsání své disertační práce. Pokud jsem v programu nějakou funkci nenašel (jednalo se o kvaterniony) napsal jsem si potřebnou knihovnu sám.

Máte-li možnost s Maplem pracovat, pak jej rozhodně přinejmenším vyzkoušejte. Vzhledem k dále popsaným problémům to sice nejpravděpodobněji bude Maple pro Windows, ale možná to bude i linuxová verze. A pokud jste studenty či učiteli na univerzitě, pak se možná i dostanete k instalačním CD. Program Maple totiž není zrovna levný, takže asi jediná možnost je Campus Wide Licence, kterou má mnoho vysokých škol zakoupenou.

Maple pro Linux

Chcete-li nainstalovat program Maple pod Linuxem, pak se připravte na kupu problémů. Program je přeložený tak, že vyžaduje konkrétní knihovny. Pokud je nenalezne, odmítne se spustit. Nepomáhají ani symbolické linky s názvem požadované knihovny na jinou verzi téže knihovny. Program proto potřebuje verzi Linuxu z doby, kdy byl vytvořen.

Ovšem ani když máte odpovídající verzi Linuxu, není zcela vyhráno. Popíši vám zde své pokusy s dvěma posledními verzemi Maple. Podotýkám, že obě pod Windows fungují zcela bez problémů a Macintosh jsem k dispozici neměl. Ještě poznámka - obě verze jsem instaloval z originálního CD Jihočeské univerzity. Nejprve jsem instaloval Maple 9.1. Instalace se zdála bez potíží. Pro instalaci stačí spustit skript install_linux.sh, který se nachází v kořenovém adresáři instalačního CD. Dále se stačí držet pokynů instalačního skriptu. Instaloval jsem do adresáře /opt/Maple9.

Osobně používám SUSE a mohu říci, že zde platí pomůcka "jaká verze SUSE, taková verze Maple". Tedy pro Maple 7.X potřebujete SUSE 7.X atd. Pro verzi Maple 9.5 tak potřebujete SUSE 9.0, 9.1 nebo 9.2. Předpokládám, že toto číslování bude zhruba platit i pro Red Hat a jeho klony.

Cestu /opt/Maple9/bin je pak nutné přidat do proměnné PATH. Bohužel jsem pak zjistil zajímavou skutečnost. Potřebné programy nebyly nastaveny jako spustitelné. Provedl jsem to ručně, ale program se mi stále nedařilo spustit s odvoláním na neplatnou licenci. Překopíroval jsem do adresáře /opt/Maple9/license soubor license.dat z windowsové instalace. Nyní šel již program spustit v textovém režimu příkazem maple. Grafický režim spouštěný příkazem xmaple, popřípadně maple -x, nefungoval s chybovou hláškou Connection to kernel lost. Maple Classic Worksheet sice šel spustit příkazem maple -cw, ale nešlo v něm nic spočítat.

Obrázek: Program v textovém režimu

Přesto jsem na Maple pro Linux nezanevřel a dal jsem mu ještě jednu šanci. Půjčil jsem si instalační CD zbrusu nového Maple 9.5 a nainstaloval jsem jej. Tentokrát se zdálo vše v pořádku. Soubor license.dat se vytvořil na správném místě a i programy měly odpovídající práva. Bohužel spuštění xmaple mi stále nefunguje. Naštěstí již funguje možnost maple -cw a program takto funguje bez potíží v grafickém režimu. To můžete vidět na dalším obrázku. Snad jen pro pořádek uvedu, že obě instalace byly prováděny na standardním SUSE 9.1 instalovaném z originálního DVD. Instalace byla upravena pouze o aktualizaci novinek a bezpečnostních záplat z internetu.

Obrázek: Program v grafickém režimu

První kroky s programem Maple

V této části představím Maple všem, kteří v něm nikdy nepracovali a rádi by se alespoň trochu seznámili s jeho možnostmi.

Základní pravidla jsou následující: Rozlišují se malá a velká písmena. Všechny příkazy se ukončují středníkem. Nezajímá-li vás nějaký výsledek, pak namísto středníku použijte dvojtečku. Odkaz na výsledek předchozího příkazu je pomocí znaku procento.

Jak vidíte na obrázku 2, nový příkaz píšete na řádek se "zobáčkem" (červeně) a program vám odpoví pod váš příklad modrým písmenem.

Základní aritmetické operace sčítání, odčítání, násobení, dělení a umocňování se zapisují pomocí symbolů +, -, *, /, a ^. Pro odmocninu použijte zápis s umocněním na zlomek. Třetí odmocninu ze dvou spočtete pomocí příkazu 2^(1/3);. Základní matematickou konstantu Ludolfovo číslo (Pí) zapisujte přímo do textu jako Pi. Eulerovo číslo zapisujte jako e. Maple zachovává klasickou přednost násobení a dělení před sčítáním a odčítáním. Chcete-li tuto přednost změnit, musíte užít závorek. Viz příklad:

>2+3;
5
>%*2;
10
>(%-4)/2;
3

Maple pracuje, pokud mu neřeknete jinak, s celými čísly a zlomky. Takže na otázku Pi^2/3; odpoví 1/3*Pi^2. Pokud chcete výsledek předchozího příkladu desetinným číslem, musíte zadat příkaz evalf(výraz,počet platných desetinných míst). Například evalf(Pi^2/3,4);.

Chcete-li napsat řecké písmeno, použijte zápis podobný TeXu. Např. \aplha, \varphi. Nekonečno se zapisuje jako infinity. Přehled zápisu vybraných goniometrických a jiných funkcí je v následující tabulce.

Funkce

Zápis v Maple

sinus

sin(x)

kosinus

cos(x)

tangens

tan(x)

kotangens

cot(x)

exponenciála (e na x-tou)

exp(x)

obecný logaritmus a při základu b

log[b](a)

přirozený logaritmus

ln(x)

dekadický logaritmus

log(x)

Vyšší matematika

Pro základní funkce diferenciálního počtu použijte následující tabulku:

Funkce

Zápis v Maple

limita

lim(funkce,meze)

derivace

diff(funkce,derivační proměnná)

integrál

int(funkce,integrační proměnná)

Pokud se chcete dozvědět více o těchto (nebo i jiných funkcích), použijte příkaz help, anebo najeďte na zápis libovolné funkce kurzorem a stiskněte klávesu [F1]. Pokud chcete do textu obrázek pěkné limity či integrálu místo výsledku, zapište zápis s velkým počátečním písmenem. Př: Int(x^2,x=0..2);.

Graf funkce vykreslíte příkazem plot(funkce,meze). Např. plot(sin(x),x=0..Pi);. Chcete-li složitější nebo trojrozměrný graf, musíte nejprve načíst knihovnu grafů příkazem with(plots);. Viz obr. 2.

Pro práci s funkcemi lineární algebry - vektory a maticemi - musíte rovněž aktivovat knihovnu lineární algebry příkazem with(linalg). Pro popis jednotlivých funkcí použijte nápovědu, já se do dalšího popisu pouštět nebudu, vzhledem k tomu, že se nejedná o matematický, ale o počítačový časopis.

Příklad na závěr

V následujícím příkladu si spočítáme, jaká je teoreticky maximální možná výhra v populárním televizním pořadu 1 proti 100. Počítáme s ideálním případem, kdy soutěžící zná odpovědi na všechny otázky a nebere si žádnou záchranu. Dále počítáme s tím, že v každém kole vypadne jeden nebo žádný protivník a soutěžící použije bonus 2x v soutěži 1 proti 1 a promění jej a získá tedy v posledním kole jeden milión. Celý postup je uveden v rámečku.

> suma:=0:
> for i from 100 to 2 by (-1) do
>   suma:=suma+1/i*500000:
> end do:
> evalf(suma);
6
2.093688759 10 
> castka:=evalf(suma+1000000);
6
castka := 3.093688759 10 

Jak vidíme, teoretická maximální výhra je 3 093 688. Tato částka se bude lehce lišit (maximálně o sto korun) neboť při výpočtech výher na Nově dochází k zaokrouhlování částek dolů. Rovněž je nutné si uvědomit, že soutěžící z této částky zaplatí zhruba dvacetiprocentní daň.

Tímto příkladem se s vámi a s Maplem rozloučím. Přeji vám hodně úspěchů při případném dalším studiu tohoto programu.

Diskuze (0) Nahoru