Extcalc: Náhrada za kalkulačku
V distributorem předpřipraveném desktopovém prostředí obvykle nalezneme nějakou grafickou kalkulačku. V terminálu může jako jednoduchá kalkulačka sloužit aplikace Basic calculator (bc
), která spadá do základního softwarového vybavení počítače. Konstatuji to proto, že jednoduchá kalkulačka patří do standardního vybavení operačního systému.
Ukázka moderní grafické programovatelné kalkulačky
Pro odborníky existují pokročilé grafické programovatelné kalkulačky. V poslední době tato zařízení skomírají na úbytě, neboť jejich funkci mohou suplovat např. netbooky. Náhrad za vědeckou kalkulačku existuje celá řada. V této kategorii jmenujme například Extcalc, který vedle funkcí běžné kalkulačky zvládá i grafy, triviální statistiku, převody jednotek, aritmetiku matic...
Formální jazyky pokročilých systémů
Ne vše lze snadno naklikat, proto každý pokročilejší matematický program má vestavěny určité formální jazyky. Typicky uživatel zadává textové příkazy nebo píše skripty, přičemž mu může značně pomoci doprovodné grafické rozhraní.
Například Maximu (viz dále) doprovází rozhraní wxMaxima. Grafické ukázky předvádějí nejprve zadání symetrické matice ve wxMaximě a v druhém kroku spočítání jejího determinantu. Očividně jsem se vyhnul přímému zadávání textových příkazů.
Nástroj pro vkládání symetrické matice
Naklikání výpočtu determinantu
Při běžné práci v matematickém softwaru se uplatňují především specializované jednoúčelové jazyky. K zapisování zadání úloh slouží jednoduché formulace, které staví na několika výstižných klíčových slovech. Například klíčové slovo solve
(v angličtině imperativ řeš) indikuje, že aplikace má cosi vyřešit. Popsanou činnost nelze označit za programování. Obava, že zájemce o profesionální matematický software se musí stát i programátorem, je lichá.
Při programování matematiky se uplatňují i méně známé programátorské jazyky. Následující výčet zmiňuje nejpopulárnější programovací jazyky pro matematiku a jednotlivá programátorská paradigmata.
-
Při imperativním stylu programování zdrojový kód přesně vymezuje postup provádění výpočtu. Nejpoužívanějším jazykem z této kategorie je pravděpodobně vedle C/C++ např. Fortran, na němž se často staví knihovny pro numerické výpočty.
-
Funkcionální programování tkví ve vytváření funkcí. Při běhu programu se určuje hodnota funkce, přičemž výpočet spočívá v postupném zjednodušování výrazu až do tvaru výsledku. Oproti jiným odvětvím je v matematice funkcionální programování relativně populární. Jmenujme například populární jazyky Lisp a Schema.
-
Při logickém programování programátor pouze v přesně stanoveném tvaru zapíše požadavky, které klade na výsledek. Běh výsledného programu záleží ve vyhledávání ohodnocení proměnných, jež splňuje všechny zadané vazby. Navzdory tomu, že logické programování stojí na okraji zájmu běžných programátorů, v určitých oborech blízkých matematice (např. robotika, expertní systémy) hraje důležitou roli. Ústřední reprezentant této kategorie je programovací jazyk Prolog.
-
Multiparadigmatické programovací jazyky dostatečně podporují různá paradigmata, aby programátorovi byla ponechána možnost kombinovat různé styly programování. Ve světě vědeckého softwaru září hvězda multiparadigmatického programovacího jazyku Python.
Sage: Komplexní matematický systém
Autoři Sage se pragmaticky vystříhali znovuobjevování kola. Vývojáři vytipovali přibližně stovku nejlepších open-source matematických projektů, které vzali jako „motor“ programu Sage. Tak se vyhnuli mnoha vícepracem a mohli se plně soustředit na vytvoření jednotného uživatelského rozhraní, systému ukládání, sepsání nápovědy... Ve výsledku se Sage jeví nejen jako volný agregát vzájemně nekooperujících částí. Sage mimo jiné obsahuje GNU Octave, PARI/GP, ATLAS, Scilab, Maximu, SymPy, LAPACK, Matplotlib a další. K systémové integraci byl vybrán oblíbený jazyk Python.
Dílčí projekty zahrnuté v Sage vynikají převážně v jedné konkrétní oblasti; Sage je překonává ve všestrannosti, přičemž je velmi silný v mnoha oborech. Uživatel proto není nucen kombinovat více specializovaných produktů a vystačí si jen se Sage.
Titul Sage je vedle svého strojového zdrojového kódu dostupný i následujícími způsoby:
-
Pro některé linuxové distribuce, OS X a Solaris jsou k dispozici zkompilované binární balíčky.
-
Připravená linuxová Live CD distribuce přináší kompletní instalaci Sage.
-
Sage běží na některých serverech (např. sagenb.org) a skrze webové rozhraní v něm lze pracovat. Samozřejmě jsou proti nadužívání zavedeny restrikce, které limitují dostupný strojový výkon a paměť.
Zatím Sage nezískalo odpovídající popularitu, což může mít tyto příčiny:
-
Jde o poměrně mladý dynamický projekt, který vznikl až v roce 2005. Současná produktivní generace odborníků si během svých školských let osvojila starší software. Jinými slovy Sage vstupuje na již rozvinutý trh.
-
Sage je zdarma, a proto mu chybí masivní reklama.
-
Sage není dostupný pro Microsoft Windows.
Maxima: systém počítačové algebry
Kořeny Maximy sahají až do roku 1968, kdy byla na trh uvedena Macsyma. V roce 1982 se z Macsymy odštěpila Maxima. V roce 1998 bylo provedeno přelicencování z původní nesvobodné licence na obvyklou GNU GPL. Maxima spadá mezi systémy počítačové algebry (CAS). Systémy CAS mají zabudované axiomy a inferenční algoritmy a díky tomu dokážou symbolicky manipulovat s výrazy. Jinými slovy CAS aplikace zvládají například určit limitu, určit asymptoty, derivovat, kanonizovat výraz do požadované normalizované formy, rozvinout funkci do Taylorovy řady... Maxima pochopitelně umí i numerické výpočty, avšak nejedná se o její doménu. WxMaxima je oblíbenou grafickou nadstavbou textově orientované Maximy.
Podrobnější informace o Maximě uvádí náš článek Maxima a Zhu3D – matematika v Linuxu.
Octave: numerický software
Oproti CAS systémům se numerické systémy věnují především číselným výpočtům. GNU Octave je vysokoúrovňový imperativní programovací jazyk (respektive interpret tohoto jazyka) orientovaný na numerické výpočty. Samozřejmě oproti běžným jazykům se v Octave nachází mnoho vylepšení vycházejících z praktických potřeb. Například Octave disponuje algoritmy optimalizovanými pro řídké matice. Jazyk Octave lze volat i z jiných programovacích jazyků. Například v C/C++ symboly Octave definuje hlavičkový soubor octave/oct.h
.
Vedle GNU Octave proslul i další svobodný systém Scilab. Následuje stručné srovnání:
-
Oficiálním projektem hnutí GNU je GNU Octave, které je logicky uvolněno pod licencí GNU GPL. Za Scilabem stojí především instituty Institut National de Recherche en Informatique et en Automatique (INRIA) a École nationale des ponts et chaussées (ENPC), které zvolily vlastní licenci CeCILL. Licence aktuálních verzí Scilabu je kompatibilní s GNU GPL.
-
Jazyk Octave a jazyk známého placeného Matlabu sdílí množství společných rysů, přesto však nejsou plně kompatibilní. Jazyky Scilabu a Matlabu se podobají méně.
-
Pro oba vznikly mnohé nadstavby (toolboxy). Pro rozšíření Octave navštivte jeho domovskou stránku a doplňky Scilabu hledejte na speciální stránce s doplňky. V tomto bodě vede Scilab.
-
Ač Octave patří mezi prioritní projekty GNU, v posledních několika letech jeho vývoj vázne.
-
Octave používá k vykreslování externí programy (např. gnuplot).
O GNU Octave a Scilabu pojednávají články Matematické modelování s Octave a QtOctave a Scilab: Numerické výpočty, grafy – zkrátka matematika.
Zmínka o Mathematice, Maplu a Matlabu
K představeným svobodným aplikacím existují i placené nesvobodné alternativy, jak uvádí tabulka.
Sage |
Mathematica |
Maxima |
Maple |
Octave, Scilab |
Matlab |
Rozsah funkcí u každého z těchto programů dosahuje kolosálních rozměrů. Pro ilustraci, kdyby na každý balík v Sage připadalo v průměru pouhých deset vlastností, pak by Sage jako celek bylo charakterizováno přibližně tisícem vlastností. Nad to je třeba zohlednit například i frekvenci bugů v algoritmech, rychlost opravování chyb, hardwarové nároky, kvalitu nápovědy a dokumentace... Každý z produktů více než uspokojuje běžné požadavky. V „nadstandardu“ se pochopitelně střetáváme s odlišnostmi. Jeden uživatel může tvrdit, že Sage překonává Mathematicu. Druhý, žádaje jiných vlastností, vyzdvihuje Mathematicu nad Sage. Srovnání svobodných aplikací s jejich placenými protějšky na omezeném prostoru popularizačního článku by nutně bylo povrchní a ledabylé.
Zásadní nevýhodu placený produktů představuje jejich cena, kterou rozhodně nelze vydávat za lidovou. Náklady na pořízení licence se pohybují v násobcích průměrného měsíčního příjmu v České republice.
Cena v USD |
Cena v Kč | |
---|---|---|
Sage |
0 |
0 |
Mathematica |
2495 |
cca 50 000 |
Maxima |
0 |
0 |
Maple |
2275 |
cca 45 000 |
Octave, Scilab |
0 |
0 |
Matlab |
2150 |
cca 40 000 |
(Zdroj: Wikipedia, Kurz Kč/USD je přibližně 20)
Někteří jistě budou namítat výrazně zlevněné licence pro studenty, slevy u distributorů při velkých objednávkách, doprovodné nástroje zdarma, zlevněné neplnohodnotné licence... Marketingová oddělení skutečně úkladně zvýhodňují vybrané skupiny obyvatel, aby popularizovala své výrobky a maximalizovala svůj celkový finanční prospěch. Z demokratického hlediska jsou tyto akční nabídky podružné, protože k nim většinová populace nemá přístup. Pro běžně situovaného občana zůstává kombinace Mathematica, Maple a Matlab jen stěží finančně dostupná. Pro tuto vadu a s přihlédnutím k bezplatné konkurenci lze jen sotva zmíněné placené tituly doporučit.
R: statistický software
Systém R je jazyk určený pro manipulaci, zpracování a zobrazení statistických dat. Původně se inspiroval starším placeným systémem S, který však brzy zastínil. V současnosti se R stalo téměř průmyslovým standardem. K R existuje větší množství různě orientovaných grafických rozhraní (R Commander, Rattle, RKWard, Java GUI for R...).
Úvodem do světa R může být grafický manuál. Návody se člení do třiceti tematických skupin, z nichž každá obsahuje několik set až několik tisíc příkladů. V ilustračním snímku webových stránek jsou vybírány jen příklady určené pro genetiky. Ze všech nalezených 525 úloh se zobrazuje jen prvních šestnáct.
Na vlastní R navazují nejrůznější různě zaměřená rozšíření, která z něj dělají všestranné řešení pro statistiku. Vedle „univerzálního“ R pochopitelně vznikly svobodné produkty pro statistiku, které se soustředí na konkrétní nasazení. Jmenujme například:
-
Mezi známá open-source prostředí pro data mining spadají především KNIME, RapidMiner, Orange a Weka. Podrobnostmi se zabývá článek Open-source nástroje pro data mining.
-
Gretl vyniká v ekonometrii.
-
Balík Root vyvinul ústav CERN a pyšní se funkcemi pro částicovou fyziku.
Více o systému R se dočtete v článku Matematický software R: S ním je každá statistika hezčí.
V dalším díle přehledu se můžete těšit na programy gnuplot, LaTeX, OpenFoam, QtiPlot.