MATLAB Měření a analýza dat, statistika a optimalizace
Jaroslav Jirkovský
[email protected] www.humusoft.cz
[email protected] www.mathworks.com
1
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Co je MATLAB • 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 3
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Tok informací a dat v MATLABu Vstupy
Řešení
Soubory/Data
Výstupy Dokumentace
Analýza dat a modelování Vývoj algoritmů
Programy
Návrh/Výrobek
Vývoj aplikací
Samostatné aplikace
Hardware
5
Automatizace procesu
HUMUSOFT s.r.o.
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
Link
– Spreadsheet Link Ex výpočet v MATLABu na pozadí
6
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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, ...
•
vstupní data (prediktory)
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ů
•
KLASIFIKACE
Oblasti využití klasifikační analýzy
klasifikátor
– technika •
detekce poruch systémů, třídění součástí
– finančnictví •
Scoring, bonita klienta
– biologie •
druhové zařazení dle znaků
výstup (třída prvku)
– medicína • 10
rozpoznávání chorob podle příznaků HUMUSOFT s.r.o.
Finanční analýza a modelování • 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
11
• Financial Toolbox, Econometrics Toolbox, Financial Derivatives Toolbox, Fixed-Income Toolbox, Datafeed Toolbox HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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 MATLAB Compiler
– Vytvoření softwarové komponenty • doplněk pro Excel • třída v jazyce Java • komponenta .NET nebo COM
MATLAB Builder EX
MATLAB Builder JA
MATLAB Builder NE
– MATLAB Compiler – MATLAB Builder EX, JA, NE .exe
14
.dll .lib
Java
HUMUSOFT s.r.o.
Samostatně spustitelné aplikace
33 Toolboxy
MATLAB Desktop
11
Poč Počítač tač koncové koncového uživatele
MATLAB Compiler
22
.exe
15
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Paralelní a distribuované výpočty • Struktura
Výpočetní Výpočetní stanice stanice
– klient • MATLAB, ze kterého zadáváme úlohy
– plánovač (scheduler) • rozděluje úlohy do „workerů“ a sbírá výsledky
Parallel Computing Toolbox
TOOLBOXY
– worker • výpočetní jednotka pro zpracování jednotlivých úloh • je to v podstatě MATLAB bez grafického rozhraní
Parallel Computing Toolbox
• 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 21
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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í Výpočetní cluster cluster MATLAB MATLAB Distributed Distributed Computing Computing Server Server Klientské Klientské PC PC
Task Výsledek Job
CPU Worker
Task Výsledek
TOOLBOXY
Parallel Computing Toolbox
CPU Worker
Task
Scheduler Výsledek
Výsledek
CPU Worker
Task Výsledek
23
CPU Worker
HUMUSOFT s.r.o.
Přehled nástrojů
24
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Další produkty HUMUSOFT
30
HUMUSOFT s.r.o.
HUMUSOFT MF 624 a AD 622 • AD 622 – levná měřicí karta pro PC • 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ů
• MF 624 – 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 31
HUMUSOFT s.r.o.
Humusoft HeavyHorse • 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 32
– COMSOL Multiphysics HUMUSOFT s.r.o.
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 – 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 33
– Subsurface Flow Module
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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ě • www.humusoft.cz/wwwseminare
• Workshopy – 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 • www.humusoft.cz/workshop/
• Školení – 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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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 –
[email protected]
37
HUMUSOFT s.r.o.
Děkuji za pozornost
38
HUMUSOFT s.r.o.