FreeMat



    Obsah 1. kapitoly


    ÚVOD
    1. Čo je FreeMat?
    1.1. Kedy FreeMat použiť?
    1.2. Čo za nás FreeMat nevyrieši?



    ÚVOD

    FreeMat je slobodný open-source softvér, dostupný zadarmo na http://freemat.sourceforge.net/download.html, ktorý vznikol ako náhrada za platený softvér MATLAB®


Obr.1 – Ilustračné zobrazenie loga FreeMat


    V rýchlo sa vyvíjajúcom svete výpočtovej techniky a programového vybavenia majú od počiatku nezastupiteľné miesto programy pre numerické výpočty. Spočiatku bola podpora užívateľov realizovaná matematickými knižnicami pre obecné programovacie jazyky, neskôr sa vyvíjali samostatné programy, ktoré je možné rozdeliť do nasledujúcich oblastí:
  • tabuľkové procesory s rozšírenými matematickými funkciami (Excel ...)
  • špecializované balíky na riešenie určitého okruhu problémov (Statistica ...)
  • univerzálne matematické balíky (MathCad, Mathematica, MATLAB ...)
    Tento materiál sa venuje práve FreeMat-u, ako jednému zo silných nástrojov pre technicky zamerané odbory, ktorý je s MATLAB kompatibilný na cca 95%.



    1. Čo je FreeMat?

    FreeMat je výkonný a pritom malý softvér integrujúci výpočty, vizualizáciu a programovanie do jednoducho použiteľného prostredia. Názov FreeMat vznikol z anglického „free mathematics“. Umožňuje relatívne ľahké riešenie mnohých technických problémov v omnoho kratšom čase ako riešenie pomocou klasických programovacích jazykov.


    Typické oblasti použitia FreeMat-u:
  • inžinierske výpočty
  • vývoj algoritmov
  • modelovanie, simulácia a vývoj
  • analýza dát a ich vizualizácia
  • inžinierska grafika
    Je to interaktívny systém rýchleho výpočtu, ktorého základným dátovým typom je dvojrozmerné pole:
  • zadávanie funkcií z klávesnice
  • grafické zobrazenie výstupov a ich jednoduchá úprava
    Umožňuje vytvárať programy pre vlastnú potrebu
  • použitie programovacieho jazyka FreeMat-u (a teda MATLAB-u)
  • programové využitie grafiky
  • analýza algoritmov , prístup „what - if“
  • tieto programy ďalej voľne šíriť
  • výhodou je import knižníc z jazyka C, C++, Python. Napríklad príkazom:
    >import('F:\WINDOWS\system32\msvcrt.dll','printf',
    'printf','int','string t,int a') >printf("%d\n",3) 3
    Účinný nástroj pre technické výpočty - jednotné výpočtové, vizualizačné a simulačné prostredie je implementované na viacerých platformách (Microsoft Windows, Linux, MAC OS X, …)


    Práca s knižnicami v rôznych aplikačných oblastiach:
  • rôzne vedné obory (medicína...)
  • obory s rozsiahlymi technickými výpočtami
  • regulačné systémy, výrobné linky, robotika
  • simulácia dynamických systémov a ďalšie
    Jednoduchá syntax používaných matematických a grafických funkcií:
    >>x=[0:0.1:2*pi];
    >>plot(x,sin(x),'r*-');
    >>grid


Obr.2 – Výsledok vyššie uvedených troch riadkov príkazov


    Funkcie sú použiteľné z príkazového riadku, sekvenčne zadávané funkcie je možné spustiť ako dávkový skript.


    Rozsiahle funkčné možnosti FreeMat:
  • zabudované funkcie FreeMat-u, funkcie v M-súboroch (teda kompatibilita s MATLAB), možnosť ich úpravy používateľom
  • ponúka viacej než 400 matematických funkcií:
    • operácie s maticami - lineárna algebra
    • goniometrické a logaritmické funkcie
    • výpočet vlastných čísel a vektorov, polynómy a práca s nimi
    • interpolácia, regresia, základná štatistika, pravdepodobnosť
    • Fourierove transformácie
    • integrácie a derivácie
    • transformácie súradníc a ďalšie


Obr.3 – Pracovné prostredie FreeMat-u




Obr.4 – Online nápoveda pre FreeMat


  • grafické funkcie
    • funkcie pre kreslenie 2D a 3D grafov
    • funkcie pre vykresľovanie povrchov a sietí
    • práca s rastrovými obrazmi, tieňovanie
    • zápis do súboru
  • práca so zvukovými súbormi - zápis, čítanie a spracovanie
  • špeciálne dátové typy
  • funkcie pre zápis a čítanie dát zo súborov (textové, binárne)
  • čítanie a zápis rastrových súborov
  • importuje dáta z bežných formátov
  • dovoľuje používateľovi zadať formát dát
    Interaktívna aproximácia a štatistika:
  • prístup z grafického okna (figure)
  • prekladanie graficky zobrazených bodov
  • základné aproximácie krivkami umožňuje zvoliť metódu aproximácie polynómom, splinom, ...; okamžite zobrazuje aproximovaný priebeh voliteľne tiež rovnicu aproximačnej krivky a chybu aproximácie
  • základná štatistika
    • priemer, medián, …
    • okamžite zobrazuje do grafu
    Grafické možnosti:


Obr.5 – Priestorový graf


  • možnosti grafického zobrazenia nie sú až tak prepracované ako v MATLAB-e, ale určite sú postačujúce.
  • väčšina príkazov pre úpravu grafického zobrazenia sa nezadáva pomocou interaktívneho okna možností, ale príkazmi v príkazovom okne alebo skripte, čo má za priaznivý následok získanie správnych programovacích návykov.
    Možnosti pri programovaní:
  • vytváranie používateľských funkcií
  • editor pre prácu so zdrojovými kódmi (nástroj pre ladenie kódu)
  • objektové programovanie (konštruktor a metódy objektov)
  • vytváranie voľne šíriteľných aplikácií


Obr.6 – Zobrazenie výpisu zdrojového kódu





    1.1. Kedy FreeMat použiť?

  • robustné výpočty
  • spracovávanie rozsiahlych
  • dátových súborov
  • práca s veľkými maticami
  • keď riešenie problému sa dá previesť na vektorové či maticové operácie
  • v prípadoch rozvetvených prípadne iteračných algoritmov riešenia
    S FreeMat-om je možné samostatne pracovať a riešiť jednoduchšie príklady. Na Leteckej Fakulte TUKE sa začal využívať ako náhrada MATLAB-u, študenti sa oboznamujú s pracovným prostredím, základmi programovania a získavajú prvé programovacie návyky, ktoré neskôr využívajú pri programovaní platformy Arduino, Xduino, tvorbe aplikácií v senzorickej oblasti v jazyku Python.



    1.2. Čo za nás FreeMat nevyrieši?

    FreeMat je iba nástroj, síce výkonný a efektívny ale je to iba prostriedok k dosiahnutiu cieľa. Musím nezávisle na použitom prostriedku vedieť:



Čo chcem?- mať jasnú a jednoznačnú formuláciu problému
Ako to dosiahnuť?- vedieť (principiálne) ako sa daný problém rieši
Ako overiť výsledok?- schopnosť odhadnúť, či je výsledok správny


    Tieto tri body za nás žiaden výpočtový systém nevyrieši. Môže ale výrazným spôsobom ovplyvniť efektivitu a rýchlosť riešenia. Výkonnosť a efektivita týchto nástrojov sa ocení až pri riešení zložitejších a rozsiahlejších problémov.