MATLAB Release 13 (MATLAB 6.5) Výpočetní prostředí pro každého Patříte-li mezi pravidelné čtenáře Chipu, pak pro vás jistě není výpočetní prostředí MATLAB novým pojmem. Slávu tohoto programového balíku u nás šíří jeho výhradní distributor, společnost Humusoft, která koncem roku 2002 představila novou verzi tohoto výpočetního prostředí: Release 13. MATLAB Release 13 (dále jen Matlab) byl jako už obvykle uveden na pravidelném setkáním uživatelů (Chip informoval). Dvě stovky účastníků konference seznámily kromě novinek Release 13 i s konkrétními aplikacemi Matlabu a jeho toolboxů. I člověk, který s tímto programem nikdy do styku nepřišel, musel být fascinován aplikacemi z nejrůznějších oborů. V mém případě se tak opět potvrdila zkušenost, že matematika je opravdu základem všeho a výpočetní prostředí může být nápomocno jak vědci v oblasti biologie, tak i návrháři pokročilých řídicích systémů. Popsat v několika větách tak rozsáhlé prostředí, jakým Matlab spolu se svými toolboxy bezesporu je, není opravdu nikterak jednoduché. Z počátečního úzce zaměřeného nástroje pro řešení úloh z oblasti numerické matematiky se postupem času vyvinulo vskutku univerzální prostředí pro vědeckotechnické výpočty. Základ programu však zůstává stejný: výkonné jádro pro operace s maticemi (odtud také pochází název programu: MATrix LABoratory). Spolu s dalšími datovými objekty lze pak vytvářet v podstatě libovolné datové struktury: typickou ukázkou budiž vektor reprezentující polynom v úlohách modelování systémů. Numerické výsledky však obvykle nemají kýženou vypovídací hodnotu, a tak je nezbytnou součástí programu grafický subsystém. Jeho pomocí lze snadno prezentovat výsledky výpočtů ve formě nejrůznějších grafů. Grafické jádro si poradí i se stínováním či animacemi, což je mj. jedna z nejpůsobivějších ukázek vizualizačních schopností Matlabu. Matlab, to však dnes už není jen univerzální výpočetní prostředí, ale stovky rozšiřujících toolboxů. Obliba systému spolu s opravdu silnou funkcionalitou daly za vznik doplňkům snad ze všech oborů lidské činnosti, jež mají něco společné s technikou či přírodními vědami. Na své si tak přijdou statistici (Statistical Toolbox), návrháři řídicích systémů (Control Toolbox či Fuzzy Toolbox) nebo projektanti rozsáhlých energetických systémů (SimPower Systems). Jedním z nejúspěšnějších toolboxů je Simulink, nástroj pro modelování dynamických systémů. Jeho pomocí si lze modelovaný systém doslova nakreslit, přičemž následná simulace jeho chování není nic jiného než numerické řešení (ne)lineárních diferenciálních rovnic. To však uživatele nemusí vůbec zajímat (i když pro následnou interpretaci výsledků je samozřejmě užitečné, když o numerickém řešení rovnic něco ví), chování systémů může prezentovat některý z grafů, který má v porovnání s analytickým řešením vypovídací hodnotu mnohem vyšší . K samotnému Simulinku jsou pak k dispozici desítky dalších toolboxů, zejména z oblasti řízení a zpracování signálů. Akcelerace výpočtu Nejvýznamnější novinkou Release 13 (resp. Matlabu 6.5) je implementace tzv. Just In Time akcelerátoru. Pomocí této technologie by se podle slov výrobce měla výkonnost (= rychlost) Matlabu zas o něco více přiblížit programům vytvářeným v klasických programovacích jazycích, typicky C. Právě rychlost programů je stále jednou z dlouhodobých slabin Matlabu, která nutí vývojáře setrvávat u stávajících vývojářských prostředků. Síla Matlabu spočívá především v návrhu algoritmu, zde myslím nemá konkurenci, ale rychlost takto vytvořených algoritmů nejí nijak oslňující. Je proto logické, že se s touto situací snaží vývojáři z MathWorks něco dělat. Implementaci JIT ocení především ti z vás, kteří často používají datové typy char či double nebo prázdná pole a skaláry. Změny v rychlosti zpracování by podle firemních materiálů měly "postihnout" i smyčky, kde je podmínkou testování skalární hodnoty. Změny v prostředí Patříte-li mezi konzervativní uživatele, budete zcela jistě spokojeni: nová verze nikterak významné změny v ovládání nepřináší. Vše zůstalo tam, kde to uživatel znalý Release 12 čeká, vývojáři se soustředili spíše na drobné změny vedoucí ke zlepšení ergonomie ovládání. Čeká nás tak modifikovaný editor proměnných, jehož pomocí lze snadněji měnit hodnoty vybraných elementů. Nově je zde také možné tisknout přímo z prostředí příkazové řádky (Command Window) či historie příkazů. Posledně jmenované - v praxi hojně využívané - vlastnosti se týká další novinka: na historii příkazů lze aplikovat funkci automatického ukládání. Programátory a příznivce jazyka Java pak potěší nová Java Virtual Machine ve verzi 1.3.1. Toolboxy Nová verze přichází s celou řadou aktualizovaných toolboxů, a tak by jen výčet inovací vydal na samostatné číslo Chipu; podívejme se proto jen na nejvýznamnější zástupce. Simulink ve verzi 5 přináší podporu operací s pevnou řádovou čárkou, přičemž podpora stávajícího Fixed Point toolboxu zůstala zachována. Skalní uživatele asi nepříjemně překvapí reorganizace některých knihoven bloků, ta však byla provedena především z ergonomických důvodů a podle slov výrobce bychom ji měli po čase ocenit (praxe opět ukáže). Simulink nyní upozorní na neplatné smyčky, zlepšení doznal Diagnostic Viewer a Mask Editor. Pokud stejně jako já používáte výsledky simulačních experimentů ve svých dokumentech, jistě oceníte zlepšení podpory pro symboly řecké abecedy. Podobně jako Simulink je nyní i toolbox pro modelování konečných automatů (či obecně událostmi řízených systémů) Stateflow k dispozici ve verzi 5. Nabízí nyní podporu pevné řádové čárky a dvojrozměrných matic při komunikaci se Simulinkem. Editor Stateflow konečně obsahuje funkce O krok zpět a Opakovat. V praxi velmi žádané opětovné využití kódu nyní zvládá i Stateflow vytvořená schémata lze exportovat z knihovny diagramů. Control System Toolbox je obsažen ve verzi 5.2, jež obsahuje dvě nové zpětnovazební struktury: feedforward a cascade. LTI Viewer v nové verzi zvládá vykreslení průběhů v reálném čase návazně na změny systému. Při návrhu kompenzátorů (nejen) pro MIMO systémy oceníme možnost opětovného využití již vytvořených kompenzátorů. Celkový dojem Kdo by čekal stejně revoluční změny, jaké se konaly u Release 12, bude zklamán. Release 13 je dle mého soudu spíše dílčím upgradem; tomu ostatně nasvědčuje i označení MATLAB verze číslo 6.5. I zde se bohužel potvrzuje zkušenost, že nová verze zpravidla přináší nekompatibilitu se staršími verzemi. Typickou ukázkou budiž Simulink, u nějž byl souborový formát změněn natolik, že schémata vytvořená v nové verzi v Release 12 nenačtete. Nutno však dodat, že MathWorks se snaží výměnu dat umožnit, a tak lze modely uložit i ve formátu verzí starších, už to však po uživateli vyžaduje určitou dávku energie. Celkově však nový Matlab opět představuje špičku na poli nástrojů pro vědecko-technické výpočty a jeho koupí chybu rozhodně neuděláte. Zájemce o tento program odkazuji na Chip CD, kde naleznou nejzajímavější příspěvky z posledního setkání uživatelů tohoto systému. Petr Vostrý MATLAB Release 13 (MATLAB 6.5) nejnovější verze matematického balíku Minimální požadavky Pentium, 128 MB RAM, 219 MB na HD, Windows 98/Me/NT/2000/XP, Linux, Unix, Mac OS X Výrobce MathWorks, Natick, MA, USA Poskytl Humusoft, Praha Cena Matlab 94 980 (školní 27 980), Simulink 137 980 (školní 26 980)