Matematika na vysoké úrovni s wxMaxima

Michal Černý 27. 4. 2010

Program wxMaxima představuje jeden z funkčně nejlépe vybavených matematických nástrojů vůbec. Jeho užívání ale nemusí být pro každého snadné. Proto se pokusíme přiblížit základní syntaxi, užívání některých důležitých funkcí a nezapomeneme ani na odkazy na další zdroje pro studium.

V následujícím článku se pokusme představit některé zajímavé funkce programu wxMaxima, který jsme představili v minulém díle našeho seriálu o matematickém softwaru. Pokusíme se představit některé základní funkce, syntaxi, přiblížit ovládání systému a přinést některé základní typy a triky. A zaměříme se především na začínající uživatele.

Základní syntaxe


Ač je wxMaxima program, který je možné v zásadě ovládat téměř výhradně klikáním, velmi brzy zjistíme, že se nejedná o právě nejpohodlnější způsob zacházení s tímto nástrojem. Na klikání jsou vhodné především méně často užívané funkce, to, co používáme častěji je daleko efektivnější ručně vypisovat. Navíc se hodí základní syntaktická znalost v případě, že potřebujeme zpracovat nějaký složený dotaz, upravit složitější funkci atp.

Maxima

Uživatelé, kteří mají zkušenosti s programováním ve funkcionálním jazyce libovolného druhu, se s ovládáním sžijí poměrně snadno. Jednotlivé části výrazu (příkazu) jsou do sebe zanořeny a je možné je částečně izolovat pomocí závorek. Funkce, které vyžadují více parametrů (například integrál), oddělují jednotlivé parametry čárkami. Například:

integrate(sin(x)*x, x, 0, %pi);

Znamená: proveď určitý integrál z výrazu sin(x)*x dx, od 0 do pí. Na tomto příkladu jsou vidět ještě další syntaktické nutnosti – příkaz, který má být vyhodnocen končí středníkem, hodnotu čísla pí zapíšeme jako %pi a v neposlední řadě příkaz s více parametry je tvořen názvem, kulatou závorkou s parametry v patřičném pořadí, které jsou odděleny závorkou. V místech pro meze může být libovolná jiná funkce. Náš výraz vrátí stejnou hodnotu i pro příkaz:

integrate(sin(x)*x, x, 0, integrate(sin(x)*x, x, 0, %pi));

program umí samozřejmě pracovat i s konstantami, takže je možné napsat:

diff(cos(ln(x*a))+b*x,x,1);

Kde a a b jsou chápány jako konstanty. Ty je možné samozřejmě vyjádřit, a to pomocí čárky umístěné za výraz:

diff(cos(ln(x*a))+b*x,x,1), a=cos(x), b=integrate(sin(x)*x, x, 0,%pi);

To umožňuje poměrně snadnou dekompozici výrazu na podstatně snazší části. Zajímavou vlastností wxMaxima je to, že ač neumí něco dopočítat, je schopná nabídnout alespoň takovou část výsledku, ke které dospěla.

Maxima

Další zajímavou funkcí je odkazování se na předchozí výsledky. wxMaxima čísluje výsledky na začátku řádku značkou %oX, kde X je nějaké číslo. Do svého výrazu se tak snadno můžete odvolat například na krok výpočtu č. 25:

cos(3*%o56)+sin(%o56/2);

Při každém přepočtu se řádky přečíslovávají. Odkazovat lze i na již neviditelné výsledky, ale pokud provedete nějakou změnu, kterou chce zanést níže, je potřeba si vše pečlivě pohlídat. wxMaxima toho syntakticky zvládá mnohem více – je možné si nastavovat výstupní formát, pracovat s maticemi a vektory, které se zadávají pomocí []… To jsou již ale věci, které je možné najít v literatuře nebo v nápovědě a nejsou nutné k zvládnutí základního ovládání.

Základní operace

Jelikož většina začínajících uživatelů bude z počátku potřebovat především algebraické operace, zaměříme se alespoň letmo právě na ně. Po jejich zvládnutí je již rozšiřování funkčnosti hlavně otázkou cviku a šikovnosti.

Maxima

Již ve výše uvedených příkladech jsem ukázali, jakým způsobem se integruje a derivuje. U integrálu není potřeba vyplňovat poslední dva parametry a získáte neurčitý integrál. U derivací je možné stupeň derivace přímo nastavit pomocí čísla (v příkladu je nastavená 1). Násobné integrály je nutné ručně skládat do sebe:

integrate(integrate(sin(x), x), y);

Asi jedním z nejčastěji užívaných nástrojů je funkce solve, která umožňuje řešit rovnice. Jako první parametr zadáte rovnici a jako druhý neznámé, vzhledem ke kterým má být rovnice řešena.

solve([sin(x)=cos(%pi/2+a)], [x]), a =x;

Zákeřností, na kterou je třeba si dát pozor je práce s goniometrickými funkcemi. Ty zpracovává vlastní sada příkazů, které najdete v menu zjednodušit a trigonometrické výrazy. S těmi je práce celkově poměrně obtížná a řešit rovnice s goniometrickými funkcemi je poměrně dosti pracné. Na ilustraci alespoň příklad se zjednodušením goniometrického výrazu:

trigreduce(sin(2*x)^2*cos(2*x)^2/tang(2*x));

Téměř vše se dá poměrně snadno naklikat a pokud máte základní znalost syntaxe, tak i poměrně snadno kombinovat, takže obvykle dosažení dobrého výsledku není nijak obtížné. Ze zajímavých funkcí uveďme například hledání kořenů rovnice, řešení soustavy rovnic, určení vlastních hodnot a vlastních vektorů matice, operace s maticemi, výpočet limit či práce s řadami.

Kudy dál

wxMaxima je poměrně rozšířený a hojně užívaný program, takže k dispozici je poměrně velké množství příkladů, návodů a učebnic, které mohou poukázat na nejen základní možnosti aplikace, ale také na využití v tom kterém oboru, v němž pracujete. Základní a poměrně bohatá knihovnička je k dispozici přímo na stránkách projektu.

widgety

Pokud používáte Maximu bez grafické nástavby, pak je výborným zdrojem přiložený podrobný integrovaný manuál, který je plný konkrétních jednoduchých i složitějších příkladů. Užitečným zdrojem nápadů je i dialog typů a triků. Zajímavě vypadá také nově se rozvíjející blog s několika pokročilejšími demonstracemi, nebo jiný systematičtěji pojatý web. Pro začátečníky je pak určený poněkud upovídaný seriál o základním ovládání a funkcionalitě.

Jak je vidět k dispozici je zdrojů více než dost, stačí si jen nějaký zdroj vybrat a pustit se do studia. wxMaxima je velmi silný nástroj, který rozhodně má smysl používat.

Našli jste v článku chybu?
Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Lupa.cz: Kde leží hardwarový pupek světa?

Kde leží hardwarový pupek světa?

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

DigiZone.cz: Numan Two: rozhlasový přijímač s CD

Numan Two: rozhlasový přijímač s CD

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

DigiZone.cz: Mordparta: trochu podchlazený 87. revír

Mordparta: trochu podchlazený 87. revír

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Vitalia.cz: Antibakteriální mýdla nepomáhají, spíš škodí

Antibakteriální mýdla nepomáhají, spíš škodí

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup