MATLAB Měření a analýza dat, statistika a optimalizace Jaroslav Jirkovský jirkovsky@humusoft.cz www.humusoft.cz info@humusoft.cz www.mathworks.com 1
Obsah Úvod Statistická analýza dat v MATLABu Načítání dat z různých datových zdrojů, souborů a databází Statistická analýza dat a klasifikace Automatická dokumentace výsledků analýz Tvorba grafického uživatelského rozhraní pro vytvořené funkce Tvorba kompletní nezávislé aplikace Práce s reálnými daty, prokládaní dat a hledání extrémů Měření reálných dat a jejich přenos do MATLABu Prokládání naměřených dat parametrickými a neparametrickými modely Optimalizační úlohy a hledání extrémů pomocí různých metod 2
Co je MATLAB 3 Integrované prostředí pro vědeckotechnické výpočty 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
Struktura systému MATLAB Aplikace v reálném čase, µp, DSP, FPGA, PLC Blocksety (knihovny bloků) Samostatně spustitelné aplikace Toolboxy (knihovny funkcí) Simulink Simulace a modelování dynamických systémů MATLAB Výpočty, programování, vizualizace... 4
Tok informací a dat v MATLABu Vstupy Řešení Výstupy Soubory/Data Dokumentace Analýza dat a modelování Programy Vývoj algoritmů Návrh/Výrobek Vývoj aplikací Hardware Samostatné aplikace 5 Automatizace procesu
Výměna dat a propojení Excelem Čtení a zápis do.xls souborů je lze načítat i zapisovat data z/do konkrétní části sešitu dané listem a rozsahem buněk (xlsread, xlswrite) Spreadsheet Import Tool v základním MATLABu 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 Spreadsheet Link Ex Link výpočet v MATLABu na pozadí 6
Propojení s databázemi 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 Database Toolbox 7
Statistické výpočty a pravděpodobnost Funkce z oblasti statistiky a pravděpodobnosti 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 Pro některé analýzy připravená grafická uživatelská rozhraní 8
Statistické výpočty a pravděpodobnost 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ů Statistics Toolbox 9
Klasifikační analýza Automatické rozčlenění množiny prvků do tříd na základě jejich vlastností vstup: měřené vlastnosti prediktory výstup: klasifikační třída Klasifikátory LDA, QDA, Naive Bayess, rozhodovací stromy,... Fáze klasifikace 1. učení klasifikátoru pomocí prvků se známou třídou 2. rozpoznání třídy prvku na základě prediktorů Oblasti využití klasifikační analýzy technika detekce poruch systémů, třídění součástí finančnictví Scoring, bonita klienta biologie druhové zařazení dle znaků medicína rozpoznávání chorob podle příznaků KLASIFIKACE vstupní data (prediktory) klasifikátor výstup (třída prvku) 10
Finanční analýza a modelování 11 Funkce pro matematickou a statistickou analýzu finančních dat a vývoj algoritmů pro finančnictví optimalizace portfolií odhad rizik analýza úrokové míry práce s finančními časovými řadami oceňování finančních derivátů modelování a analýza akciových derivátů a derivátů s pevným výnosem modelování a analýza cenných papírů s pevným výnosem Získávání finančních dat přímé spojení mezi MATLABem a finančními datovými servery Financial Toolbox, Econometrics Toolbox, Financial Derivatives Toolbox, Fixed-Income Toolbox, Datafeed Toolbox
Dokumentace a tvorba reportů Příkaz >>publish k jednoduché dokumentaci skriptů v základním MATLABu Nástroje pro dokumentaci projektů v MATLABu tvorba šablon pro dokumentaci udržování aktuální dokumentace tvorba manuálu k cílové aplikaci Nástroje 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 MATLAB Report Generátor, Simulink Report Generátor 12
Grafické uživatelské rozhraní (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 editor funkcí property inspector object browser menu editor, toolbar editor V základním MATLABu 13
Samostatně spustitelné aplikace Sdílení kódu mezi uživateli v MATLABu Sdílení aplikací s koncovými uživateli, kteří nemají MATLAB Vytvoření samostatně spustitelné aplikace, C nebo C++ sdílené knihovny Vytvoření softwarové komponenty doplněk pro Excel třída v jazyce Java komponenta.net nebo COM MATLAB Compiler MATLAB Builder EX, JA, NE MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE.exe.dll.lib Java 14
Samostatně spustitelné aplikace Toolboxy 3 1 MATLAB Desktop Počíta tač koncového uživatele 2 MATLAB Compiler.exe 15
Měření a výstup reálných signálů Propojení s HW pro měření a výstup signálů měřící I/O karty do PC analogové i digitální porty zvukové karty Rozsáhlá podpora zařízení http://www.mathworks.com/products/ daq/supportedio.html Možnosti ovládání příkazy z příkazové řádky MATLABu GUI interface v MATLABu bloky v Simulinku Data Acquisition Toolbox Analýza naměřených dat (Signal Processing Toolbox) 16
Prokládání křivek Interpolace dat a prokládání pomocí polynomů interp1 (2,3,N), polyfit, Basic Fitting v základním MATLABu Nástroje pro prokládání dat křivkami zobrazení dat knihovny připravených modelů možnost zadání uživatelských modelů prokládání běžnými a robustními metodami vyčíslení kvality proložení Prokládání dat plochami Algoritmy pro práci se spline Funkce do příkazové řádky a GUI Curve Fitting Toolbox 17
Standardní optimalizační úlohy 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 Tbx Optimization Toolbox 18
Obtížně řešitelné optimalizační úlohy Řešení optimalizačních úloh s několika maximy, několika minimy nebo nehladkými funkcemi Řešiče využívají globální vyhledávání start z několika výchozích bodů pattern search genetické algoritmy simulované žíhání Využití pro úlohy obtížně řešitelné tradičními optimalizačními metodami v případě že počítané funkce jsou nespojité stochastické mají nejisté nebo neznámé derivace Global Optimization Toolbox 19
Tři úrovně paralelizace v MATLABu 1. Implicitní multithreading v MATLABu maticové operace jsou automaticky počítány paralelně rozdělené do threadů podle počtu dostupných výpočetních jader MATLAB 2. Paralelní výpočty v rámci jedné pracovní stanice příkazy pro tvorbu a spouštění paralelních a distribuovaných algoritmů až 12 lokálních workerů (výpočetních uzlů) GPU výpočty na jedné grafické kartě Parallel Computing Toolbox 3. Distribuované výpočty v rámci výpočetního gridu nebo clusteru využití velkých výpočetních stanic nebo sítě několika počítačů (cluster) pro využití více než 12 workerů na jedné výpočetní stanici dávkové zpracování úloh, fronty přístup více uživatelů klienti zadávají úlohy přes Parallel Computing Toolbox MATLAB Distributed Computing Server 20
Paralelní a distribuované výpočty 21 Struktura klient MATLAB, ze kterého zadáváme úlohy plánovač (scheduler) rozděluje úlohy do workerů a sbírá výsledky worker výpočetní jednotka pro zpracování jednotlivých úloh je to v podstatě MATLAB bez grafického rozhraní Paralelní výpočty rozdělení výpočtu na paralelní větve příkazy parfor, spmd distribuovaná pole synchronizace, komunikace mezi workery Interaktivní paralelní mód Distribuované výpočty rozdělení výpočtu na několik nezávislých úloh dfeval, job, task Výpočetní stanice Parallel Computing Toolbox TOOLBOXY Parallel Computing Toolbox
GPU výpočty Rozhraní pro provádění výpočtů na GPU implementace matematických funkcí na GPU spouštění kódu v MATLABu na GPU rozhraní pro spouštění CUDA kódu s předáváním parametrů z/do MATLABu Typické aplikace urychlení výpočtu paralelním zpracováním na GPU ladění CUDA kódu 22
Výpočty v rámci výpočetního clusteru Je možné zpracovávat rozsáhlé výpočetní úlohy Lze využít vlastní nebo externí plánovač (Scheduler, Job Manager) Výpočetní cluster MATLAB Distributed Computing Server Klientské PC Task Job Výsledek Worker CPU Task Výsledek Worker CPU TOOLBOXY Parallel Computing Toolbox Výsledek Scheduler Task Výsledek Worker CPU Task Výsledek Worker CPU 23
Přehled nástrojů 24
Nástroje pro výměnu dat a informací Propojení s Excelem Spreadsheet Link Ex Propojení s databázemi Database Toolbox Reportování MATLAB (funkce publish) MATLAB report generátor Simulink report generátor 25
Nástroje pro matematické výpočty Statistika Statistics Toolbox Optimalizace a prokládání křivek Optimization Toolbox Global Optimization Toolbox Curve fitting toolbox Symbolické výpočty Symbolic Math Toolbox Řešení diferenciálních rovnic MATLAB, Simulink, COMSOL Multiphysics 26
Nástroje pro specifické oblasti analýzy Finanční analýza Financial toolbox, Financial Derivatives Toolbox, Fixed-Income Toolbox, Datafeed Toolbox Neuronové sítě Neural Network Toolbox Fuzzy logika Fuzzy Logic Toolbox Bioinformatika a biologie Bioinformatics Toolbox SimBiology 27
Nástroje pro tvorbu kompletních aplikací Grafické uživatelské rozhraní MATLAB Samostatně spustitelné aplikace MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE 28
Nástroje pro paralelní výpočty Paralelní výpočty v rámci jedné multiprocesorové stanice + GPU výpočty Parallel Computing Toolbox Distribuované výpočty v rámci výpočetního clusteru MATLAB Distributed Computing Server 29
Další produkty HUMUSOFT 30
HUMUSOFT MF 624 a AD 622 31 AD 622 levná měřicí karta pro PC MF 624 Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů multifunkční vstupně-výstupní karta Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů 4 vstupy inkrementálních snímačů (diferenciální) 4 čítače/časovače Společné vlastnosti Nízká spotřeba Krátká doba A/D převodu Ovladače pro Real Time Toolbox, Real-Time Windows Target Windows, 32 i 64-bitové aplikace
Humusoft HeavyHorse 32 Procesory AMD Opteron jeden, dva nebo čtyři procesory 8 až 48 výpočetních jader frekvence CPU 2.2 až 3.1 GHz 8 až 128 GB RAM Grafická karta ATI Radeon HD 6000 Na přání grafická karta NVidia TESLA C2050 pro GPU výpočty Operační systém podle přání Microsoft Windows 64-bit Linux 64-bit Možnost předinstalace aplikací MATLAB Parallel Computing Toolbox MATLAB Distributed Computing Server COMSOL Multiphysics
COMSOL Multiphysics 33 Ř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 Acoustics Module Batteries & Fuel Cells Module CFD Module Electrodeposition Module Geomechanics Module Heat Transfer Module Chemical Reaction Engineering Module MEMS Module Microfluidics Module Plasma Module RF Module Structural Mechanics Module Subsurface Flow Module
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/ 34
Zdroje informací Www 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ě Workshopy www.humusoft.cz/wwwseminare workshopy nabízí možnost praktického seznámení s programy MATLAB & Simulink a COMSOL Multiphysics účastníci mají k dispozici PC, kde si mohou prezentované příklady za asistence přednášejícího sami vyzkoušet Školení www.humusoft.cz/workshop/ 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 35
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 Technical Computing Prague příspěvky uživatelů o využití systému MATLAB/Simulink v praxi www.humusoft.cz/akce/matlab11 Diskusní skupiny Česká a slovenská skupina uživatelů MATLABu (CSMUG) www.humusoft.cz/produkty/matlab/csmug 36
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 37
Děkuji za pozornost 38