MATLAB Matematické výpočty, analýza dat a tvorba aplikací Jaroslav Jirkovský jirkovsky@humusoft.cz www.humusoft.cz info@humusoft.cz www.mathworks.com 1
O společnosti HUMUSOFT Název firmy: Humusoft s.r.o. Založena: 1990 Počet zaměstnanců: 15 Sídlo: Praha 8, Pobřežní 20 MATLAB, Simulink Comsol Multiphysics WITNESS dspace - vývojové systémy Vývoj vlastního software & hardware Multiprocesorové stanice HeavyHorse Výukové modely 3D polohovací zařízení 2
Obsah Úvod co je MATLAB & Simulink Grafika v MATLABu 2D, 3D, objemová grafika Samostatně spustitelná aplikace tvorba uživatelského rozhraní, překlad a šíření aplikace Matematické toolboxy v Matlabu statistika, optimalizace, finanční analýza neuronové sítě, fuzzy logika symbolické výpočty Výměna dat a informací propojení MATLABu s MS Excel a relačními databázemi tvorba dokumentace Paralelní výpočty v MATLABu 3
Co je MATLAB 4 Integrované prostředí pro vědeckotechnické výpočty Mocné grafické a výpočetní nástroje Intuitivní uživatelské rozhraní MATLAB Desktop Rychlé výpočetní jádro Programovací jazyk 4. Generace více než 1 000 funkcí objektově orientované programování Grafická uživatelská rozhraní (GUI) Rozsáhlá HTML nápověda prohlížeč funkcí Systém MATLAB je: modulární - toolboxy otevřený uživatel může zobrazit i upravovat funkce
Co je Simulink Nadstavba MATLABu Modelování, simulace a analýza dynamických systémů Prostředí blokových schémat předdefinované knihovny bloků systém práce drag and drop tvorba vlastních funkčních bloků Prvky pro tvorbu algebraických a diferenciálních rovnic Otevřené rozhraní pro tvorbu aplikací začlenění kódu z programů MATLAB, C, Fortran Platforma pro Model Based Design následně může být automaticky generován kód pro cílovou platformu 5
Struktura systému MATLAB Aplikace v reálném čase Blocksety (knihovny bloků) Tvorba samostatných aplikací Toolboxy (knihovny funkcí) Simulink Simulace a modelování dynamických systémů MATLAB Výpočty, programování, vizualizace... 6
Oblasti využití systému MATLAB Tradiční Letectví, kosmonautika a obrana Automobilový průmysl Automatizace a strojírenství Komunikace, elektronika, polovodiče a výpočetní technika Školství Nově vznikající Biotechnologie, zdravotnictví a farmacie Finance a ekonomika Chemie a petrochemie Přírodní vědy Energetika a veřejné služby 7
Tok informací a dat v MATLABu vstupy řešení výstupy 8
Grafika a samostatně spustitelné aplikace Grafika MATLAB Samostatně spustitelné aplikace MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE 9
Grafika v MATLABu 2D čárové spojnicové grafy schodové grafy bodové grafy sloupcové grafy 3D čárové grafy v prostoru plošné grafy Objemová vizualizace hodnot veličin v objemu vizualizace vektorů veličin v objemu 10
Graphical User Interface (GUI) Tvorba grafického rozhraní pro snadné ovládání algoritmů uživateli Veškeré standardní ovládací prvky tlačítko, slider, textové pole, editovatelné pole, seznam, menu Vhodné pro tvorbu stand-alone aplikací GUIDE editor pro tvorbu GUI layout editor m-file editor property inspector object browser menu editor, toolbar editor 11
MATLAB Compiler Vytváří stand-alone aplikace a sdílené knihovny z programů v MATLABu Lze použít většinu výpočetních a grafických funkcí MATLABu včetně vlastního GUI Aplikaci je možné distribuovat ke spuštění aplikace není nutná instalace MATLABu uživatel bez MATLABu musí mít nainstalován MATLAB Compiler Runtime (MCR) k využívání aplikace není potřeba licence MATLABu pokrývá licence MATLAB Compileru v rámci komerční licence lze aplikaci zcela libovolně šířit v rámci školní licence lze aplikaci šířit pouze bezplatně a musí být zajištěno její nekomerční (školní) využití 12
Rozšíření MATLAB Compileru MATLAB Builder EX vytvoření samostatného doplňku pro Excel Umožní začlenit do Excelu pokročilé algoritmy z MATLABu MATLAB Builder JA začlenění aplikace z MATLABu do programů v jazyce JAVA MATLAB Builder NE začlenění aplikace z MATLABu do programu vytvořením.net nebo COM komponent Šíření pokrývá licence na MATLAB Compiler uživatel bez MATLABu musí mít nainstalován MCR 13
Matematika Řešení diferenciálních rovnic MATLAB, COMSOL Multiphysics Statistika a optimalizace Statistics Toolbox Optimization Toolbox Curve fitting toolbox, Spline toolbox Finanční analýza Financial toolbox,... Neuronové sítě Neural Network Toolbox Fuzzy logika Fuzzy Logic Toolbox Symbolické výpočty Symbolic Math Toolbox 14
Řešení ODE a PDE ODE PDE základní nástroj pro řešení ODE je Simulink výběr z několika řešičů různých řádů (typu Runge-Kutta, prediktorkorektor) umožňuje řešit komplexní systémy s ODE včetně nelinearit, nespojitostí,... COMSOL Multiphysics rozsáhlý modulární systém řešení PDE ve 3D 15
Statistics Toolbox Rozšiřuje MATLAB o rozsáhlé funkce z oblasti statistiky a pravděpodobnosti Dva nové typy dat Catagorical array Dataset Array Funkce: jsou otevřené: lze je měnit, přidávat si vlastní kód jsou rychlé: pracují s celým polem, ne s jednotlivou buňkou pojetí matic: řádky = měření, sloupce = veličiny, statistické funkce se aplikují na jednotlivé sloupce Funkce příkazové řádky i GUI 16
Statistics Toolbox Funkce z oblastí: deskriptivní statistika (centrální tendence, disperze, kvantily, ) statistická vizualizace pravděpodobnostní rozdělení generování náhodných čísel testy hypotéz analýza rozptylu regresní analýza analýza clusterů klasifikace Markovské modely návrh experimentů řízení stochastických procesů 17
Optimization Toolbox Rozsáhlý soubor algoritmů pro optimalizaci podmíněné, nepodmíněné, spojité i diskrétní úlohy Umožňuje řešit: lineární programování kvadratické programování nelineární optimalizace nelineární metoda nejmenších čtverců řešení soustav nelineárních rovnic vícekriteriální optimalizace Funkce příkazové řádky a GUI Podpora paralelních výpočtů s využitím Parallel Computing Toolboxu 18
Genetic Algorithm and Direct Search Tbx. Rozšiřuje Optimization Toolbox o generické algoritmy algoritmy s přímým vyhledáváním Využití pro úlohy obtížně řešitelné tradičními optimalizačními metodami v případě že počítané funkce jsou nespojité vysoce nelineární stochastické mají nejisté nebo neznámé derivace 19
Curve Fitting Toolbox Nástroje pro prokládání dat křivkami zobrazení dat předzpracování dat vývoj standardních a uživatelských modelů prokládání běžnými a robustními metodami analýza proložení Nástroje pro prokládaní dat plochami Funkce do příkazové řádky GUI 20
Spline Toolbox Algoritmy založené na splinech určené pro prokládání dat interpolaci extrapolaci vizualizaci Obsahuje přehledné GUI Další operace se spline vyčíslení skládání derivace integrace 21
Financial Toolbox Rozšiřuje Statistics Toolbox a Optimization Toolbox Nabízí funkce pro matematickou a statistickou analýzu finančních dat a vývoj algoritmů pro finančnictví Umožňuje výpočet optimalizace portfolií odhad rizik analýza úrokové míry oceňování finančních derivátů práce s finančními časovými řadami 22
Další nástroje pro finanční analýzu Econometrics Toolbox modelování a analýza finančních a ekonomických systémů pomocí statistických metod Financial Derivatives Toolbox modelování a analýza akciových derivátů a derivátů s pevným výnosem Fixed-Income Toolbox modelování a analýza cenných papírů s pevným výnosem Datafeed Toolbox získávání finančních dat poskytuje přímé spojení mezi MATLABem a finančními datovými servery 23
Neural Network Toolbox Nástroj pro práci s neuronovými sítěmi návrh vývoj trénování simulace vizualizace Obsahuje přehledná GUI Automatické vytváření simulačních bloků sítí v Simulinku Uplatnění v oblastech kde je použití formálních analytických nástrojů obtížné či nemožné 24
Fuzzy Logic Toolbox Začlenění fuzzy logiky do MATLABu fuzzy infereční systémy neurofuzzy inferenční systémy fuzzy clustering Grafické editory pro všechny fáze návrhu fuzzy systémů editor základních vlastností fuzzy inferenčního systému editor funkcí příslušnosti editor pravidel prohlížeč pravidel prohlížeč řídicích ploch Blok Fuzzy regulátoru do Simulinku 25
Symbolic Math Toolbox Symbolické výpočetní jádro MuPAD Vnáší symbolické výpočty do numerického prostředí MATLABu aritmetika s proměnnou přesností kalkulus (derivace, integrály, limity, ) lineární algebra (inverze, determinant, ) řešení rovnic (algebraické, diferenciální) transformace (Fourier, Laplace, Z) MuPAD notebook pro alternativní zápis a výpočet symbolických výrazů 26
Výměna dat a informací Propojení s Excelem Spreadsheet Link Ex Propojení s databázemi Database Toolbox Reportování MATLAB - publish MATLAB report generátor Simulink report generátor 27
Spreadsheet Link EX Interaktivní propojení Excelu s výpočetním jádrem MATLABu Umožňuje uživateli: používat všechny funkce MATLABu přímo v Listu Excelu vyměňovat data mezi Excelem a MATLABem vkládat grafy z MATLABU do Listu Excelu Pozn.: čtení a zápis do.xls souborů je funkce základního MATLABu lze načítat i zapisovat data z/do konkrétní části sešitu dané listem a rozsahem buněk 28
Database Toolbox Výměna dat s relačními databázemi Podporuje interakci s nepoužívanějšími databázemi, jako je Oracle Sybase Microsoft SQL Server Informix Umožňuje současný přístup do několika databází transakce zahrnující rozsáhlé soubory dat Visual Query Builder pro interakci s databázemi bez znalosti SQL 29
Reportování MATLAB publish v základním MATLABu k jednoduché dokumentaci skriptů MATLAB Report Generátor nástroj pro dokumentaci projektů v MATLABu tvorba šablon pro dokumentaci udržování aktuální dokumentace tvorba manuálu k cílové aplikaci Simulink Report Generátor nástroj pro dokumentaci modelů v Simulinku a Stateflow zprávy z výsledků simulací dokumentace ke kódu generovaném ze Simulinku pomocí Real-Time Workshopu 30
Paralelní výpočty v MATLABu Paralelní výpočty v rámci jedné multiprocesorové stanice Parallel Computing Toolbox Distribuované výpočty v rámci výpočetního clusteru MATLAB Distributed Computing Server 31
Parallel Computing Toolbox Návrh, tvorba a zpracování paralelních výpočtů a algoritmů Struktura klient sekce MATLABu pro zadání úloh a spouštění celého procesu lokální plánovač (scheduler) worker rozděluje úlohy do workerů, komunikuje s nimi a sbírá výsledky jednotka pro výpočet jednotlivých úloh PCT umožňuje spustit až 8 lokálních workerů v rámci jednoho PC 32
Parallel Computing Toolbox Interaktivní paralelní mód umožňuje pracovat s paralelními výpočty interaktivně Jazyk pro paralelní výpočty příkazy pro paralelní programování parfor dfeval distribuovaná data codistributed codistributor S Parallel Computing Toolboxem lze programovat paralelní algoritmy provádět výpočet paralelních algoritmů na multiprocesorové stanici testovat nastavení paralelního algoritmu před spuštěním na výpočetním clusteru 33
MATLAB Distributed Computing Server Rozšiřuje Parallel Computing Toolbox Je možné zpracovávat rozsáhlé výpočetní úlohy v rámci výpočetního clusteru konfigurace pro 8, 16, 32, 64, 96 a 128 workerů Lze využít vlastní nebo externí plánovač (Scheduler, Job Manager) 34
Humusoft HeavyHorse Procesory AMD Opteron dva nebo čtyři čtyřjádrové procesory frekvence CPU 2.3 až 2.9 GHz 8-64 GB RAM Grafická karta ATI Radeon HD 4870 nebo 4870 X2 Pevný disk SATA 500 GB nebo 1000 GB Optická mechanika DVD±RW Operační systém podle přání Microsoft Windows 64-bit: XP, Vista, Server Linux 64-bit: OpenSUSE, Ubuntu Možnost předinstalace aplikací MATLAB MATLAB Distributed Computing Server COMSOL Mutliphysics 35
COMSOL Multiphysics Řešení parciálních diferenciálních rovnic (PDE) metodou konečných prvků řešení ve 2D a 3D Rozsáhlý modulární systém AC/DC Module RF Module Heat Transfer Module Acoustics Module Structural Mechanics Module MEMS Module Chemical Engineering Module Earth Science Module COMSOL Reaction Engineering Lab Optimization Lab 36
Toolboxy MATLABu k dané tématice Statistika a analýza dat Statistics Toolbox Curve Fitting Toolbox Spline Toolbox Neural Network Toolbox Fuzzy Logic Toolbox Optimalizace Optimization Toolbox Genetic Algorithm and Direct Search Toolbox Parciální diferenciální rovnice Partial Differential Equation Toolbox Symbolické výpočty Symbolic Math Toolbox 37
Toolboxy MATLABu k dané tématice Finanční analýza Financial toolbox Econometrics Toolbox Financial Derivatives Toolbox Fixed-Income Toolbox Datafeed Toolbox 38
Toolboxy MATLABu k dané tématice Tvorba aplikací MATLAB Compiler MATLAB Builder EX MATLAB Builder NE MATLAB Builder JA Propojení s Excelem Spreadsheet Link EX Reportování a spolupráce s databázemi Database Toolbox MATLAB Report Generator 39
Zdroje informací Internetové stránky www.humusoft.cz domovská stránka firmy Humusoft s.r.o. www.mathworks.com domovská stránka firmy The MathWorks, Inc. MATLAB central prostor pro vzájemnou komunikaci mezi uživateli a příznivci systému MATLAB/Simulink (otevřená platforma pro prezentaci vlastních aplikací, výměnu souborů, názorů i zkušeností) www.mathworks.com/matlabcentral/ 40
Zdroje informací Webové semináře (webinars) on-line semináře zdarma probíhající na internetu v reálném čase v daný den a hodinu videa webových seminářů, které již proběhly, jsou ke stažení v angličtině (The MathWorks), češtině, slovenštině přehled připravovaných a archiv uskutečněných webových seminářů Školení www.humusoft.cz/wwwseminare Firma HUMUSOFT provádí školení na MATLAB, Simulink, Stateflow, Real Time Workshop, fyzikální modelování zhruba 1x za dva měsíce, termíny jsou vyhlašovány 3 týdny předem www.humusoft.cz/skoleni 41
Zdroje informací Knihy a publikace CZ/SK knihy a publikace využívající nebo popisující systém MATLAB/Simulink www.humusoft.cz/produkty/matlab/knihy kompletní seznam knih a publikací využívajících nebo popisujících systém MATLAB/Simulink www.mathworks.com/support/books Konference MATLAB příspěvky uživatelů o využití systému MATLAB/Simulink v praxi www.humusoft.cz/akce/matlab08 Diskuzní skupiny Česká a slovenská skupina uživatelů MATLABu (CSMUG) www.humusoft.cz/produkty/matlab/csmug 42
Zkušební verze Plnohodnotná verze MATLAB Časově omezena na 30 dní Možnost libovolných toolboxů a blocksetů V případě zájmu nás kontaktujte info@humusoft.cz 43
Děkuji za pozornost 44