Linux E X P R E S

Facebook

Maxima a Zhu3D - matematika v Linuxu

maxima.jpg

Linux je operační systém, který se prosadil na nejvýkonnějších počítačích světa, kde provádí složité vědecké výpočty. Existují ale kvalitní matematické aplikace i pro běžné uživatele? Na Linuxu můžete použít některou z komerčních aplikací, jako je Mathematica, Maple nebo Matlab, ale taky otevřené alternativy jako Octave, Maxima nebo Scilab. Dnes bude řeč o velmi kvalitních programech Maxima a Zhu3D.


Maxima

Maxima je matematický software pro řešení symbolických a numerických rovnic. Má pokročilé matematické funkce jako derivace a integrály, Laplaceovy transformace, matice a tenzory a mnoho dalších. Hned na začátku se přiznám, že nejsem matematik a že už je to taky pár let, co jsem promoval, ale v práci matematiku občas využívám, a tak se stane, že potřebuji spočítat náročnější rovnice a místo tužky, papíru a hlavy raději volím klávesnici a počítač. Maxima je pro mě ideální software, nestojí nic, je multiplatformní a nabízí dostatečné množství funkcí k profesionálnímu využití. Software je rychlý, stabilní a ovládání má podobné jako spousta jiných komerčních programů. Maxima původně vychází z Mascyma, což byl software vyvíjený na MIT a dříve byl vzorem pro Maple a Mathematicu. Alespoň takhle se to můžete dočíst na webu Maximy.

Grafická nadstavba wxMaximaGrafická nadstavba wxMaxima

Maximu můžete spustit v terminálu a nebo můžete využít některou z grafických nadstaveb xmaxima nebo wxMaxima, popřípadě spustit v Emacs nebo TeXmacs. Já osobně používám wxMaxima, ale co použijete vy, je jen na vás.

Grafická nadstavba xmaximaGrafická nadstavba xmaxima

Početní výrazy se zadávají pomocí příkazů a nebo je možné je vybírat z menu, zde ale nejsou všechny příkazy dostupné. Dále je možné psát skripty a ty pak v Maximě spouštět. Samozřejmostí je, že skripty mohou volat jiné skripty, takže pokud některé úlohy řešíte pravidelně, tak tohle je způsob, jak si ušetřit spoustu práce. Dokumentace je dostupná na webu Maximy a na Google můžete najít spoustu tutoriálů.

Počítáme s MaximouPočítáme s Maximou

Pokud chcete Maximu používat na vizualizaci, tak je možnost využít GNUPlot a zde jsou pak možnosti Maximy omezeny možnostmi GNUPlot. Dále Maxima rozšiřuje své možnosti načítáním různých modulů, například fourierovu transformaci (FFT) můžete použít po příkazu load("fft").

Dialog pro vykreslení pomocí GNUPlotDialog pro vykreslení pomocí GNUPlot

Maxima je poměrně dobrá v řešení symbolických rovnic, například integrate(4*sqrt(1-(x^2)),x,0,1) = PI, spousta jiných programů by výsledek vypsala jako 3.1415... Toto je vlastně hlavní důvod, proč dávám přednost programům, které pracují se symbolikou. Práce je tak daleko přehlednější a neztrácím se ve změti čísel, navíc se můžu něco přiučit z matematiky.

Maximu bych určitě doporučil všem studentům, kterým může pomoci s matematikou. Do firmy Maximu můžu doporučit taky, sám ji používám, a máte-li čas se Maximu učit, pak vám určitě hodně pomůže.

Zhu3D

Další program, na který se podíváme, je Zhu3D. Je to nástroj pro vykreslování matematických funkcí, je OpenGL a postavený na Qt (mnou testovaná verze používá Qt 4.4.3), takže mu sluší KDE, ale klidně jej můžete spouštět i pod Gnome. Když jsem tento program uviděl poprvé, byl jsem velmi mile překvapen jeho schopnostmi.

Takhle vypadá v Zhu3D soustava rovnicTakhle vypadá v Zhu3D soustava rovnic

Zhu3D dokáže vykreslit funkce, které jsou zadány soustavou rovnic (parametricky), explicitně nebo jako izoplochy. Grafické provedení vykreslené funkce je velice povedené a dá se ještě vylepšit nastavením světel, aplikováním textury, nastavením lesku, vyzařování nebo rozptýlení světla. Nastavení je samozřejmě více a nemá smysl všechna vypisovat. Zhu3D má poměrně intuitivní ovládání z menu, a tak není problém různá nastavení vyzkoušet. Vykreslené funkce můžete přibližovat a nebo rotovat ve 3D prostoru. Dále je pak možnost zapnutí animací, a to buď 3D rotace a nebo morphing. Osobně jsem čekal, že půjde o přechod z jedné funkce do druhé, ale ve Zhu3d to funguje jako jakási animace vzniku funkce. Pro některé funkce je to poměrně efektní, pro jiné již méně. Dále je možné vykreslit funkci jako body nebo plochy, plochy mohou být plné a nebo drátěné (tria i quad). Vykreslené funkce můžete ukládat jako obrázky.

Grafické provedení vykreslené funkce je velice povedenéGrafické provedení vykreslené funkce je velice povedené

Nyní již pojďme k samotnému zadávání a vykreslování funkcí. Zhu3D má editor, do něhož zapisujete funkce. Zadání ukončíte stiskem klávesy [Enter]. V případě, že funkci zadáte tak, že jí program nerozumí, upozorní  vás na to. Parametricky zadaná soustava rovnic například pro kouli vypadá takto:

X = cos(s) * cos(t)
Y = sin(s) * cos(t)
Z = sin(t)

Rovnice izoplochy (např. cos(4*y)+sin(4*x)), zde je možné vykreslit tři různé rovnice najednou. A nebo můžete rovnice zadat jako F(X,Y)=x^2+y^2, což vykreslí 3D parabolu. Tyto rovnice jsou pouze příklady, daleko složitější a hezčí funkce najdete v menu, kde je položka Demo, případně si rovnice funkce můžete vymyslet sami.

Další příklad grafuDalší příklad grafu

Pro zadávání rovnic doporučuji použít nápovědu programu, kde se dozvíte jaké funkce, operátory a konstanty program pozná. Na začátku jsem psal, že se jedná o program na vizualizaci funkcí, ale Zhu3D umí i rovnice řešit (numericky). Zde je ale potřeba programu zadat počáteční bod a přesnost, s jakou má rovnici řešit.

Tento program opět doporučím studentům, kterým může pomoci s vizualizací některých funkcí. Ještě si živě pamatuji, když jsme ve škole brali funkce a kromě toho, že jsem měl funkci derivovat nebo integrovat, tak jsem ji měl i nakreslit a spoustu funkcí jsem si nedovedl vůbec představit. Zde může Zhu3D pomoci. Zaujal-li vás, tak neváhejte, zadávejte a vykreslujte funkce.

Diskuze (13) Nahoru