FreeMath je nástroj na provádění matematických výpočtů a do značné míry je podobný již dříve recenzovanému Genius Math Tool. Spadá tedy do skupiny programů, které se snaží být do větší či menší míry alternativou Matlabu. Snad ani ne v množství univerzálních nástrojů a toolboxů, ani v širokém spektru možností výpočtů. Poměrně často potřebujeme stále dokola provádět jeden výpočet s různými parametry, nebo jej jen drobně upravovat. Jiným příkladem může být využití ve školství nebo prostě jen pro výpočty, které jsou složitější, než pro běžnou kalkulačku. Důvodů pro pořízení programu jako je FreeMat je poměrně hodně.
Zásadní výhodou FreeMat je jeho rozšiřitelnost; kromě obvyklého C a C++ ovládá také Fortran. Jedná se o projekt, za kterým stojí Samit Basu, ale dnes již velkou část vývoje provádí komunita. Pokud jde o kompatibilitu s Matlabem, pak stránky produktu uvádějí přibližně 95% kompatibilitu a na dalších vylepšeních se pracuje. To, co naopak z Matlabu podporováno není, jsou GUI / Widgety. Ale některé partikulární části jsou postupně zapracovávány.
Silnou stránkou aplikace je možnost provádět paralelní výpočty skrze MPI, což výrazně rozšiřuje škálu funkcí a možností tohoto nástroje. Nechybí ani schopnosti 3D vizualizací, což je právě jedna z domén Matlabu. Pozitivem je také to, že k dispozici jak pro Linux, tak také pro Mac OS i Windows.
Od kalkulačky po vědu
FreeMat poslouží velice dobře i jako obyčejná kalkulačka s velmi intuitivním ovládáním. Oproti některým běžným kalkulačkám zvládá přednostní vyhodnocování výrazů a rozhodně v ní nic podstatného chybět nebude. Pro většinu uživatelů, kteří ovládají jazyk C, bude povědomá také možná syntaxe v samotné konzole aplikace – je možné jednoduché i složené výrazy zapisovat přímo do ní. Není tak problém si nechat vyhodnotit nějakou podmínku, napočítat cyklus či cokoli dalšího.
Tím ale možnosti FreeMat rozhodně nekončí. Celá skupina funkcí je věnována například analýze grafu. Na základě zadaných dat zvládne vygenerovat přímé proložení nejrůznějšími funkcemi. Není to sice tak intuitivní jako například ve SciDAVis, ale je zde možnost zapojení těchto výsledků do nějakých dalších výpočtů nebo jejich rozumná mechanizace a automatizace. Nechybí ani nástroje pro interpolaci či extrapolaci dat, proložení Gaussovou křivkou či libovolným polynomem.
Pokud jde o řešení diferenciálních rovnic je možné užít i numerické metody, což je právě pro oblast inženýrství zásadním způsobem důležité. Program si bez potíží poradí i s řídkými maticemi, což je další, ne zcela triviální dovednost. Podobně může být užitečná i podpora práce s více než 2GB poli (pro 64bitové operační systémy).
Síla aplikace je tvořena kombinací velkého množství již zabudovaných funkcí a možnosti doprogramovat si vlastnosti a funkce další. A to jak v klasickém C, tak i v C++ či Fortranu. Tyto je pak možné vhodně kombinovat tak, aby bylo možné vždy přiměřeně snadno získat to co potřebujeme. Podle diskusí na Internetu považuje celá řada uživatelů za jednu z největších předností FreeMat. Osobně bych nebyl tak vyhraněný, ale je pravdou, že se jedná o poměrně příjemný přístup. Výhodou je také dostupný debuger, který vám usnadní ladění programu.
Další příjemnou věcí na této aplikaci je, že předpokládá své využití pro větší a složitější výpočty a projekty. Od verze 4.0 naleznete v samotném hlavním okně programu historii výpočtů, správce proměnných – udržuje informace o použitých proměnných a jejich typu a hodnotách, správce souborů s programy a okno debugeru. Samotná aplikace funguje velice stabilně a nenarazil jsem na žádný běhový problém (testováno pod Ubuntu 10.04).
Pro psaní programů je k dispozici poměrně spartánské prostředí, ale s velice obstojným debugerem. Proto je vhodné složitější programy psát ve specializovaném vývojovém prostředí, pro ten který jazyk a ve FreeMat již jen ladit.
Aplikace působí celkově poměrně pozitivním dojmem, i když by si uživatelé jistě dovedli představit prostředí poněkud komfortnější a robustnější. Na stránkách projektu je ve FAQ zajímavá odpověď na to, proč používat tento open source klon Maple. FreeMat se snaží jít nad rámec Matlabu právě možnostmi rozšíření externími kódy, podporou paraelních výpočtů či pokročilou prací s 3D vizualizací. A pokud jde o ostatní open source alternativy? Kdo řekl, že výběr je špatná věc?
Jistě Matlab nahradit zřejmě nedokáže. Ten je nedostižný zvláště svými toolboxy. Ale pro celou řadu věcí se hodí výborně. Od školních prográmků až po řešení konkrétních inženýrských aplikací. A pokud Matlab nepotřebujete opravdu pravidelně, je otázkou, zda se finančně vyplatí. Jistě se hodí podívat se, zda by jeho práci v konkrétní oblasti nezastal právě třeba FreeMat.
Pokud se chcete seznámit se základy práce v tomto výpočetním prostředí, pak můžete použít například, ve slovenském jazyce napsanou, bakalářskou práci Pavola Turana, která poslouží jako stručné a základní seznámení se syntaxí a prací s programem.