Aplikační počítačové prostředky X15APP MATLAB cvičení 1 Ing. Zbyněk Brettschneider http://heat.feld.cvut.cz/ http://k315.feld.cvut.cz/download/ http://k315.feld.cvut.cz/vyuka/matlab/ brettsz@fel.cvut.cz - v předmětu emailu „APP” - nezapomenout: - tvorba nahodne matice - zaukrouhleni cisel (round) - 100*round(rand(A)) - pridani radku, sloupcu do matice (3x4 matice jak z ni udelat 4x4) - mazani radku - prohozeni radku, sloupcu - submatice - operator end Katedra elektroenergetiky, Fakulta elektrotechniky ČVUT, Technická 2, 166 27 Praha 6
Literatura Mathworks Inc.: MATLAB R13 HELP, Mathworks Inc., 2002 Dušek F.: Matlab a Simulink úvod do používání, Univerzita Pardubice, Bratislava, 2000, ISBN 80-7194-273-1. Hanselman D., Littlefield B.: Mastering MATLAB 6, Prentice-Hall , 2001, ISBN 0-13-019468-9. Kozák Š., Kajan S.: Matlab – Simulink I učebnice zaměřená na hlavní modul Matlab, STU v Bratislavě, Bratislava, 1999, ISBN 80-227-1213-2. Palm W. J. III: Introduction To Matlab 6 For Engineers, McGraw-Hill, 2001, ISBN 0-07-234983-2. Prskavec L.: UPE – Matlab, učební text, ČVUT FEL, Praha, 2003, http://k315.feld.cvut.cz/download/upe/2003_03_upe_matlab.pdf Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Matlab Vysoce výkonný jazyk pro technické výpočty Integruje výpočty,vizualizaci programování do jednoduše použitelného prostředí Základním datovým typem je dvou rozměrné pole Řešení technických problémů které vedou na vektorovou či maticovou formulaci Typické oblasti použití Matlabu Inženýrské výpočty Vývoj algoritmů Modelování, simulace a vývoj prototypů Analýza dat a jejich vizualizace Vývoj aplikací včetně tvory GUI Standardní součástí není podpora symbolických výpočtů Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Prostředí Maltabu R13 (6.5)
Command window, proměnné ENTER – provedení operace ans je vnitřní proměnná Matlabu = answer ; ukončený příkaz - bez výpisu výsledku do příkazového okna Ctrl+C zastavení vykonávaného příkazu Proměnné Matlabu Komplexní matice Řetězec znaků Proměnné není třeba deklarovat Příkazy: who …vypíše seznam proměnných whos ..seznam proměnných s podrobnostmi Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Jednoduchá matematika Mezi další základní funkce patří také clc (vymaže okno příkazů) nebo clear (vymaže zadefinované proměnné).
Proměnné a další funkce
Formát čísel
Funkce Hlavní síla Matlabu ve funkcích Typy funkcí Provádějí složitější činnost, která jeden nebo více vstupních parametrů zpracuje do jednoho nebo více výstupních parametrů podle daného algoritmu Typy funkcí built-in funkce…součástí jádra Matlabu m.funkce …uložené v m.filech Mohou být vytvářeny uživatelem a pro práci musí být uloženy v aktuálním adresáři Nutnost pro práci s funkcemi vědět: Jak se jmenuje potřebná funkce Počet a význam vstupních parametrů Počet a význam výstupních parametrů Pro tyto informace použít help help specfun; lookfor sin Syntaxe volání funkce: [prom1,prom2,...]=nazev_funkce(prom1,prom2,…) Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Funkce [prom1,prom2,...]=nazev_funkce(prom1,prom2,…) Základní funkce help elfun…elementární funkce help specfun…speciální funkce help matfun…maticové funkce Syntaxe volání funkce: [prom1,prom2,...]=nazev_funkce(prom1,prom2,…) Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Komplexní číslo zapisujeme: a+j*b nebo a+i*b
Vektory a matice Vektor Matice x=1:10:1000 linspace(od,do,pocet) logspace(od 10^i, do 10^j, pocet) length(x) ... zjištění délky vektoru Matice , odděluje sloupce matice ; odděluje řádky matice ‘ transpozice size(A) ... zjistí počet řádků a sloupců Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Matice Vytvoříme matici A: V matlabu: A=[1 2 3 4; 4 5 6 7; 7 8 9 10] nebo A=[1:4;4:7;7:10]
Modifikace matic A(2,3)=55 % jmeno_matice(radek, sloupec) % vysledek: A = 1 2 3 4 4 5 55 7 7 8 9 10
Modifikace matic 2 A(2,:) ans = 4 5 55 7 4 5 55 7 Speciální druhy matic přímo v Matlabu: zeros(3) , ones(4,3), eye(3,3), magic, rand, triu, tril, diag
Operace s maticemi Násobení matic Inverze matice Determinant matice není asociativní při násobení musí odpovídat počet řádků první matice počtu sloupců druhé matice Jeli A(m x n) a B(n x k) pak A*B = C, kde C (m x k) A.*B násobení matic prvek po prvku, A musí mít stejnou velikost jako B Inverze matice inv(A) …pouze u regulárních matic Determinant matice det (A) Mocnina matice A^2… mocnina matice A*A A.^2 ... mocnina prvků matice A.*A Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Operace s maticemi 2 det - determinant matice inv - inverze matice ’ - operátor transpozice (apostrof) .’ - transpozice prvek po prvku (sdružená transpozice, rozdílná od transpozice v komplexních číslech) sqrtm - maticová odmocnina expm - maticová exponenciála logm - logaritmus matice poly - charakteristický polynom size - rozměry matice roots - vlastní čísla charakteristického polynomu max - maximální prvek matice diag - diagonála matice
Práce s polynomy a interpolace Vektorová reprezentace polynomů p(x) = 4x^3 + 5x + 1, interpretace Matlabu p=[4 0 5 1] polyval (p,x) ... vyčíslení polynomu pro všechny x conv(p,q) … násobení polynomu roots(p) … nalezení kořenů polynomu polyfit(x,y,r) … proložení hodnot y polynomem řádu r Polynomální aproximace není vhodná pro průběhy s ostrými zlomy Interpolace y1=interp1(x,y,x1,’metoda’) Další seznam na webu katery: k315.feld.cvut.cz – download, 15UPE, Matlab Literatura.pdf
Vizualizace plot(x,y) vykreslení dvourozměrného grafu, závislost y na x délka x a y musí být stejná help plot subplot (m,n,i) rozdělení obrazovky pro vykreslení grafů na mxn polí, umístění následujícího grafu (příkaz plot) do pole i title (‘text’) nadpis grafu xlabel (‘text’), ylabel (‘text’) popis os grid on aktivace mřížky axis rozsah os plot3 (x,y,z) vykreslení 3D grafů
Manipulace se soubory Základní typy souborů v Matlabu jsou: *.m skripty (m-file), *.mdl modely v Simulinku, *.mat soubory kde jsou uloženy hodnoty proměnných