Simulační Programování - Matlab

Slides:



Advertisements
Podobné prezentace
Základy teorie řízení 2010.
Advertisements

ŘEŠENÍ ÚLOH V EXCELU.
Počítačové modelování dynamických systémů
Počítačové modelování dynamických systémů
Fourierova transformace Filtrování obrazu ve frekvenční doméně
Počítačové modelování dynamických soustav
MATLAB® ( speciální 2D grafy polar, compass, feather,
Aplikační počítačové prostředky X15APP MATLAB cvičení 1
Program na výpočet parametrů vlhkého vzduchu
(Matrix Laboratory) MATLAB® (Matrix Laboratory)
Práce s vektory a maticemi
MATLAB LEKCE 7.
( Vyhledání nulových hodnot funkcí )
Softwarový systém DYNAST
Aplikační počítačové prostředky X15APP MATLAB - SIMULINK
MATLAB.
Příklady z Matlabu (6) Příklady na 2D-grafy.
Lekce 1 Modelování a simulace
Lineární regresní analýza Úvod od problému
Přednáška 12 Diferenciální rovnice
Ústav technologie, mechanizace a řízení staveb
Modelování v Matlabu procvičení katedra elektrotechniky a automatizace
Skriptový jazyk, který se používá při tvorbě stránek.
( část 2 – vektory,matice)
Vektorové a maticové operace, soustava lineárních rovnic
Lineární algebra.
Základy teorie řízení Frekvenční charakteristika
MATLAB LEKCE 5.
MATLAB LEKCE 1.
TMF045 letní semestr 2005/2006 II Časová propagace vlnové funkce na mřížce I. (práce s momentovou reprezentací) (Lekce II)
MATEMATIKA I.
Neurčitý integrál. Příklad. Na ploše 10 m x 10 m se vysazuje stejný typ rostlin ve 2 barvách. Obě barvy jsou odděleny křivkou y = x ( 1 – 0.1x ). Kolik.
Motivační úvod do Matlabu
Jemný úvod do MATLABu © Leonard Walletzký, ESF MU, 2000.
Počítačová podpora konstruování I 4. přednáška František Borůvka.
MATLAB LEKCE 6.
Diskrétní Fourierova transformace
Tabulkové procesory Pelikánová Lucie 2002.
OPAKOVÁNÍ VYPOČÍTEJTE IMPEDANCI SERIOVÉHO SPOJENÍ REZISTORU O ODPORU R= 10 Ω, INDUKTORU O VLASTNÍ INDUKČNOSTI L= 200 mh A KAPACITORU O KAPACITĚ C=220.
Tato prezentace byla vytvořena
MATLAB® ( část 6).
Aplikační počítačové prostředky X15APP MATLAB Katedra elektroenergetiky, Fakulta elektrotechniky ČVUT, Technická 2, Praha 6 Ing. Zbyněk Brettschneider.
MATLAB® ( část 3 – 2D grafy).
Jedno-indexový model a určení podílů cenných papírů v portfoliu
Diferenciální počet funkcí více proměnných
Experimentální fyzika I. 2
Karel Vlček, Modelování a simulace Karel Vlček,
Počítače a programování 2 pro obor EST KPC2E TUTORIÁL 4
SIGNÁLY A LINEÁRNÍ SYSTÉMY
Aplikační počítačové prostředky X15APP MATLAB cvičení 3 Ing. Ladislav Prskavec
Práce s polynomy v Matlabu
MATLAB® ( část 2b – mnohočleny).
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
Napište funkci – jmenuje se „prubehy“ (M-file), která spočte průběhy 2 funkcí y1 = cos x y2 = (cos x + sin 2x ) / 2 Funkce bude mít vstupní parametr x.
Vytvořte funkci (m-file) jménem vypocet, kde jako vstupní parametry budou vektory x a y a výstupním parametrem funkce bude Z. V těle funkce spočtěte funkci.
Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 8
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Grafické možnosti MATLABu © Leonard Walletzký, 2003
Než začneme programovat Co lze v MALATBu dělat, aniž musíme napsat program. © Leonard Walletzký, ESF MU, 2000.
Grafické systémy II. Ing. Tomáš Neumann Interní doktorand kat. 340 Vizualizace, tvorba animací.
EMM21 Ekonomicko-matematické metody 2 Prof. RNDr. Jaroslav Ramík,CSc.
Paul Adrien Maurice Dirac 3. Impulsní charakteristika
A. Soustavy lineárních rovnic. y = 2x + 5 2x – y = -5 a 1 x 1 + a 2 x 2 = b a 1 = 2 a 2 = -1 b = - 5 x + y = 5 3x + 3y = 18 x + y = 5 3x + 3y = 15 x +
4. cvičení
Vědecké výpočty v Jave.
Hydraulika podzemních vod
1 Lineární (vektorová) algebra
Typy proměnných Kvalitativní/kategorická binární - ano/ne
Statické a dynamické vlastnosti čidel a senzorů
Transkript prezentace:

Simulační Programování - Matlab Přednášející a cvičící: Doc. Tomáš Vyhlídal kontakt: místnost 410 tel. 224 352 877 email: tomas.vyhlidal@fs.cvut.cz Stránky předmětu: www.cak.fs.cvut.cz/SPM

Osnova: Přehled matematického software. Úvod do programu Matlab. Výpočty v Matlabu (3 přednášky). Symbolické výpočty v programu Matlab (1 přednáška) Matlab jako programovací prostředí (2 přednášky) Objekty a GUI v Matlabu. (1 přednáška) Úvod do virtuální reality. Toolbox virtuální reality programu Matlab. (2 přednášky) Teoretický základ pro tvorbu simulačních modelů a jejich modelování v prostředí Matlab Simulink. (2 přednášky) Numerické metody simulačních modelů v programu Matlab (2 přednášky) Přehled, využití a filozofie inženýrských simulačních softwarů (1 přednáška)

Přehled matematického software Software pro algebraické výpočty (computer algebra software – CAS) - řešení klasických algebraických rovnic, integrace, derivace, maticové operace, práce s polynomy, integrální transformace Maple (University of Waterloo) Mathematica (Wolfram Research) Mathcad (Mathsoft) Matlab (Mathworks) SYMBOLICC++ (free) CoCoA (COmputations in COmmutative Algebra) (free) Přehled dalšího software např. na: http://en.wikipedia.org/wiki/Mathematical_software

Přehled matematického software Software pro numerické výpočty – aplikace výpočetních algoritmů numerické matematiky Netlib (http://www.netlib.org) - programy a podprogramy pro řešení numerických problémů, většinou v jazyce Fortran a C. Numerické algoritmy též aplikovány v: Maple (University of Waterloo) Mathematica (Wolfram Research) Mathcad (Mathsoft) Matlab (Mathworks) Přehled dalšího software např. na: http://en.wikipedia.org/wiki/Mathematical_software

Úvod do programu Matlab Matlab (The Mathworks - www.mathworks.com) je integrované prostředí pro vědeckotechnické výpočty, modelování, návrhy algoritmů, simulace, analýzu a prezentaci dat, paralelní výpočty, měření a zpracování signálů, návrhy řídicích a komunikačních systémů. celosvětový standard v oblasti technických výpočtů a simulací mocné grafické a výpočetní nástroje, práce s řídkými maticemi, podpora vícerozměrných polí specializované knihovny funkcí, celá řada toolboxů výkonným programovací jazyk 4. generace, jednodušší než například Fortran nebo C, objektové programování integrace s jazykem Java, výpočetní jádro pro programy psané ve Fortranu a jazyce C distribuce nezávislých uživatelských aplikací: překlad do jazyka C, runtime modul podpora vícerozměrných polí a uživatelsky definovaných datových struktur více na http://www.humusoft.cz/matlab/matlab.htm

Úvod do programu Matlab Interface programu Matlab Aktuální adresář Workspace, pamětový prostor definovaných proměnných Command window, s příkazovou řádkou pro vkládání příkazů Command history, posloupnost příkazů tak jak byly zadávány

Úvod do programu Matlab Začínáme s Matlabem funkce: help, demo, demos >> help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. matlab\datafun - Data analysis and Fourier transforms. matlab\polyfun - Interpolation and polynomials. . Výpis všech dostupných knihoven funkcí

Úvod do programu Matlab Začínáme s Matlabem funkce: help, demo, demos >> help general General purpose commands. MATLAB Version 7.4 (R2007a) 01-Feb-2007 General information. syntax - Help on MATLAB command syntax. demo - Run demonstrations. ver - MATLAB, Simulink and toolbox version information. version - MATLAB version information. verLessThan - Compare version of toolbox to specified version string. . Výpis funkcí v knihovně general

Úvod do programu Matlab Začínáme s Matlabem funkce: help, demo, demos Help k funkci demo >> help demos Examples and demonstrations. Type 'demo' at the command line to browse more demos of MATLAB, the Toolboxes, and Simulink. demo - Run demonstrations.

Úvod do programu Matlab Práce s workspace funkce: who, whos, clear >> clear a, b, c - vymaže prom. a, b, c z workspace >> clear - vymaže všechny prom. z workspace V okně command window se vypíší proměnné definované ve workspace >> whos Name Size Bytes Class Attributes C_D 1x1 8 double C_M 1x1 8 double C_M1 1x1 192 sym Del_P 1x2 16 double Del_pr 1x2 16 double název dimenze počet bytů typ prom.

Úvod do programu Matlab Práce s workspace funkce: who, whos, clear >> clear a, b, c - vymaže prom. a, b, c z workspace >> clear - vymaže všechny prom. z workspace V okně command window se vypíší proměnné definované ve workspace >> clear >> pi ans = 3.1416e+000 >> whos Name Size Bytes Class Attributes ans 1x1 8 double

Výpočty v Matlabu Interaktivní výpočty, elementární funkce obecné: =, format, ; operátory: + - * / elementární funkce: sin, cos, tan, asin, acos, atan, sqrt, exp, log, log10, round, floor, ceil, fix před-definované konstanty: pi, eps, realmin, realmax, Inf, NaN komplexní čísla: i, j, real, imag, abs, angle, conj Příklad Formát výsledku >> format short >> 1+2*3-4^5/6 ans = -163.6667 >> format short e -1.6367e+002 >> format long >> pi ans = 3.141592653589793 >> format long e 3.141592653589793e+000 >> 1+2*3-4^5/6 ans = -163.6667

Výpočty v Matlabu před-definované konstanty: pi, eps, realmin, realmax, Inf, NaN >> eps ans =2.2204e-016 přesnost zaokrouhlování v Matlabu >> realmin ans = 2.2251e-308 nejmenší číslo v Matlabu >> realmax ans = 1.7977e+308 největší číslo v Matlabu >> 1/0 ans = Inf číslo větší než realmax, nekonečno >> 0/0 ans = NaN nedefinovaná hodnota

Výpočty v Matlabu elementární funkce: sin, cos, tan, asin, acos, atan, sqrt, exp, log, log10, >> sin(pi/4) ans = 0.7071 >> sqrt(sin(pi/4)) ans = 0.8409 >> exp(10) ans = 2.2026e+004 >> 5*3.33^(-5/6)*10 ans = 18.3485 >> log(pi) ans = 1.1447 >> x=5; >> y=3*x^2+log(x) y = 76.6094 >> whos Name Size Bytes Class x 1x1 8 double y 1x1 8 double ; - zamezí zobrazení >> log10(pi) ans = 0.4971

Výpočty v Matlabu zaokrouhlování: round, floor, ceil, fix >> round(pi) ans = 3 zaokrouhlit na nejbližší celé číslo >> floor(exp(1)) ans = 2 Zaokrouhlit na nejbližší nižší celé číslo >> ceil(pi) ans = č Zaokrouhlit na nejbližší vyšší celé číslo >> fix(-pi) ans = -3 Zaokrouhlit na nejbližší celé číslo směrem k nule

Výpočty v Matlabu komplexní čísla: i, j, real, imag, abs, angle, conj >> real(a) ans = 3 >> imag(a) ans = 2 >> angle(a) ans = 0.5880 >> abs(a) ans = 3.6056 >> conj(a) ans = 3.0000 - 2.0000i 2i reálná část 3 -2i imaginární část >> j ans = 0 + 1.0000i >> i argument modul komplexně sdružené číslo

Výpočty v Matlabu Práce s maticemi operátory: +, -, *, ‘, .*, .^, ./ vytvoření matic: ones, zeros, eye, diag elementární maticové fukce: size, length, min, max, sum, sort, prod, cumsum, cumprod, reshape >> b=ones(2,3) b = 1 1 1 >> A(1,3) ans = 6 >> A(1,:) ans = 8 1 6 >> c=zeros(1,3) c = 0 0 0 >> A=[8 1 6;3 5 7;4 9 2] A = 8 1 6 3 5 7 4 9 2 >> A([2 3],[2 1]) ans = 5 3 9 4 >> E=diag([2 5 7]) E = 2 0 0 0 5 0 0 0 7

Výpočty v Matlabu Práce s maticemi operátory: +, -, *, ‘, .*, .^, ./ vytvoření matic: ones, zeros, eye, diag >> A*b ans = 15 jednotková matice >> eye(3) ans = 1 0 0 0 1 0 0 0 1 transpozice >> J=eye(2)+i*ones(2) J = 1.0000 + 1.0000i 0 + 1.0000i 0 + 1.0000i 1.0000 + 1.0000i >> A' ans = 8 3 4 1 5 9 6 7 2 >> A=[8 1 6;3 5 7;4 9 2]; >> b=ones(3,1);

cumsum, cumprod, reshape Výpočty v Matlabu Práce s maticemi operátory: +, -, *, ‘, .*, .^, ./ vytvoření matic: ones, zeros, eye, diag elementární maticové fukce: size, length, min, max, sum, sort, prod, cumsum, cumprod, reshape >> [2 3;1 2]*[3 4;5 1] ans = 21 11 13 6 dimenze matice >> (2*ones(2)).^[1 2;3 4] ans = 2 4 8 16 >> C=[3 4 6;5 1 4]; >> size(C) ans = 2 3 >> length(C) 3 tečková notace, operace člen po členu >> [8 2;6 10]./[4 1;3 5] ans = 2 2 >> [2 3;1 2].*[3 4;5 1] ans = 6 12 5 2

cumsum, cumprod, reshape Výpočty v Matlabu Práce s maticemi elementární maticové fukce: size, length, min, max, sum, sort, prod, cumsum, cumprod, reshape max-min u matice – vyhodnocení pro každý sloupec zvlášť součet max-min >> c=[3 5 7 1 -9]; >> sum(c) ans = 7 >> c=[3 5 7 1 -9]; >> min(c) ans = -9 >> [a b]=min(c) a = -9 b = 5 >> C=[2 4;7 -2;-5 7]; >> min(C) ans = -5 -2 >> [a b]=min(C) a = b = 3 2 >> max(C) 7 7 >>C = 2 4 7 -2 -5 7 >> sum(C) ans = 4 9 minimum index minimum >> max(c) ans = 7

cumsum, cumprod, reshape Výpočty v Matlabu Práce s maticemi elementární maticové fukce: size, length, min, max, sum, sort, prod, cumsum, cumprod, reshape násobení prvků ve vektoru Kumulativní (postupný) součet a součit seřazení >> c=[3 5 7 1 -9]; >> prod(c) ans = -945 >> c=[3 5 7 1 -9]; >> sort(c) ans = -9 1 3 5 7 >> c=[3 5 7 1 -9]; >> cumsum(c) ans = 3 8 15 16 7 >> c=[1 2 3 4 5]; >> cumprod(c) 1 2 6 24 120 V matici – buď podle sloupců - 1, nebo řádků -2 >> C=[2 4 7; -2 -5 7] C = 2 4 7 -2 -5 7 >> sort(C) ans = >> C=[2 4 7; -2 -5 7] >> prod(C,1) ans = -4 -20 49 >> prod(C,2) 56 70

Výpočty v Matlabu Př. 1 Vytvořte matici pro m=7 a n=8 Nejprve definujeme matici jediček 1mn pomocí příkazu ones(mn,1), poté aplikujeme příkaz cumsum. Příkazem reshape změníme sloupcový vektor na matici. Nakonec provedeme transpozici a máme výsledek. Všechny operace lze napsat na jediný řádek: >> A=reshape(cumsum(ones(56,1)),7,8)' A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

Výpočty v Matlabu Diskretizace intervalu příkazy: :, linspace, logspace : Příkaz linspace Příkaz logspace x:y – je to samé jako [x, x+1, x+2… y] logspace(x,y) rozdělí interval [10^x,10^y] na 50 logaritmicky stejných dílků linspace(x,y) rozdělí interval [x,y] na 100 stejných dílků >> 1:5 ans = 1 2 3 4 5 linspace(x,y,N) rozdělí interval [x,y] na N stejných dílků logspace(x,y,N) rozdělí interval [10^x,10^y] na N logaritmicky stejných dílků x:d:y – je to samé jako [x, x+d, x+2*d… y] >> linspace(0,1,11) ans = 0 0.1 0.2 … 1 >> 0:0.2:1 ans = 0 0.2 0.4 0.6 0.8 1 >> logspace(0,3,4) ans = 1 10 100 1000

Výpočty v Matlabu Př. 2 Pomocí operací s maticemi nalezněte numericky výsledek následujícího určitého integrálu Nejprve diskretizujeme interval [0 1] např s , a poté využijeme tečkových maticových operací >> t=0:0.001:1; >> y=sum(((t.^2+2).^(1/2)).^-1)*0.001 y = 0.6591 Tímto způsobem jsme nahradili integrál sumou kde t(k) jsou body diskretizovaného intervalu Jak je patrné, výsledek je blízký analytickému řešení

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues Řešení rovnice: a) >> x=inv(A)*b x = -0.2444 0.4222 0.0889 b) >> x=A\b x = -0.2444 0.4222 0.0889 >> A=[8 1 6;3 5 7;4 9 2]; >> b=[-1;2;3]; Inverze >> inv(A) ans = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028 I když oba způsoby řešení dávají stejné výsledky, operace \ je numericky mnohem stabilnější

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues Pseudoinverzi lze s výhodou využít k řešení soustavy rovnic danou předpisem v případě, že počet rovnic je menší než počet proměnných. Operací kde + značí právě pseudoinverzi, je z nekonečného počtu řešení nalezeno řešení identické k řešení nalezeném metodou nejmenších čtverců, tedy řešení s nejmenším součtem kvadrátů proměnných . >> A=[8 1 6;3 5 7]; >> b=[-1;2]; Pseudoinverze >> pinv(A)*b ans = -0.2935 0.3411 0.1679 >> pinv(A) ans = 0.1349 -0.0793 -0.0814 0.1299 0.0003 0.0841 http://mathworld.wolfram.com/Moore-PenroseMatrixInverse.html

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues [V D]=eig(A) – vypočte vlastí čísla (a umístí je na diagonálu matice D) a vlastní vektory (sloupce v matici V) matice A. >> [V D]=eig(A) V = -0.5774 -0.8131 -0.3416 -0.5774 0.4714 -0.4714 -0.5774 0.3416 0.8131 D = 15.0000 0 0 0 4.8990 0 0 0 -4.8990 >> A=[8 1 6;3 5 7;4 9 2] Vlastní čísla >> eig(A) ans = 15.0000 4.8990 -4.8990 Ve výsledku platí A*V=V*D

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues Kořeny polynomu roots(M) – vypočte koeficienty polynomu, který je reprezentován vektorem koeficientů M=[a(1) a(2) …. a(n) a(n+1)] >> A=[8 1 6;3 5 7;4 9 2] Hodnost matice >> M=[1 3 6 2]; >> roots(M) ans = -1.2980 + 1.8073i -1.2980 - 1.8073i -0.4039 >> rank(A) ans = 3

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues poly(A) – když A je matice nn, výsledkem operace jsou koeficienty charakteristického polynomu Koeficienty polynomu z kořenů >> A=[8 1 6;3 5 7;4 9 2]; >> M=poly(A) M = 1.0000 -15.0000 -24.0000 360.0000 >> roots(M) ans = 15.0000 -4.8990 4.8990 >> poly([-1 -2 -3]) ans = 1 6 11 6 >> eig(A) ans = 15.0000 4.8990 -4.8990 Vlastní čísla matice A mají stejné hodnoty jako kořeny polynomu M. >> roots([1 6 11 6]) ans = -3.0000 -2.0000 -1.0000 Z numerického hlediska je ale výpočet vlastních čísel matice mnohem spolehlivější

Výpočty v Matlabu Demonstrujme numerickou citlivost funkce roots na výpočtu kořenů Wilkinsonova polynomu, jehož kořeny jsou dány . Uvažujme Poloha vypočtených (červené body) a skutečných (modré body) kořenů Wilkinsonova polynomu >> M=poly(cumsum(ones(1,21))); >> roots(M) ans = 20.9971 20.0273 18.8299 18.3334 16.5686 + 0.5469i 16.5686 - 0.5469i 14.4642 + 0.6088i 14.4642 - 0.6088i 12.4187 + 0.2976i 12.4187 - 0.2976i 10.8654 10.0551 8.9864 8.0029 6.9996 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 Jak je patrné, skupina z vypočtených kořenů se výrazně odchyluje od skutečných hodnot. Odchylky jsou způsobeny zaokrouhlovacími chybami při výpočtu koeficientů polynomu. Proto se jejich výpočtu pokud možno vyhýbáme a upřednostňujeme maticové výpočty.

Výpočty v Matlabu Maticová algebra a polynomy operátory: \ funkce: inv, pinv, eig, det, rank, roots, poly, polyval, residues Rozklad podílu polynomů na parciální zlomky Hodnota polynomu [R P K]=residue(N, M) - provede rozklad racionální funkce lomenné na parciální zlomky, N – koeficienty polynomu v čitateli, M - koeficienty polynomu ve jmenovateli, R – rezidua, P-kořeny jmenovatele, K – absolutní člen polyval(M,x) - Vypočte hodotu polynomu M v proměnné x >> M=[1 1 1]; >> X=1:4; >> polyval(M,X) ans = 3 7 13 21 R = -23.5000 14.0000 -0.5000 P = -3.0000 -2.0000 -1.0000 K = 2 >> N=[2 2 5 4]; >> M=[1 6 11 6]; >> [R P K]=residue(N,M)

Výpočty v Matlabu Práce s grafy funkce: plot, hist, stem, semilogy, semilogx, loglog, title, xlabel, ylabel, text, gtext, grid, axis, figure, gcf, subplot, hold, legend, ginput x-y graf plot(Y) - vykreslí hodnoty vektoru Y versus jejich indexům plot(X,Y) - vykreslí hodnoty vektoru Y versus hodnoty X plot(X,Y,S) – X,Y – zobrazovaná data, S=‘csl’ – string, který definuje typ zobrazení, př: ‘ro:’ – červená tečkovaná čára s datovými body zvýrazněnými symboly o. >> X=0:0.1:2*pi; >> Y=sin(X); >> plot(X,Y) c – barva s – symbol l – typ čáry b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus -- dashed m magenta * star (none) no line y yellow s square k black d diamond w white v triangle

Výpočty v Matlabu Práce s grafy funkce: plot, stem, semilogy, semilogx, loglog, title, xlabel, ylabel, text, gtext, grid, axis, figure, gcf, subplot, hold, legend, ginput xlabel(‘text’) – popisek osy x ylabel(‘text’) – popisek osy y title(‘text’) – titulek zobrazený nad grafem legend(‘legend1’,’legend2’,’legend3’) – vloží legendu s popisky text(X,Y,’text’) – vloží ‘text’ na pozici [X Y] v souřadnicích grafu gtext(‘text’) – vloží ‘text’ na místo kam klikneme myší grid on– zobrazí mřížku grid off – zruší zobrazení mřížky axis[Xmin Xmax Ymin Ymax] – nastaví rozsah osy X a Y hold on – umožní vykreslit více průběhů do nového grafu hold off – vrátí zpět do překreslovacího režimu figure – vytvoří nové (prázdné) okno grafu figure(H) – vyvolá graf H a učíní jej aktuálním grafem gcf – vrátí číslo aktuálního grafu [X Y]=ginput – zaznamená souřadnice N kliknutí myší na oblat os grafu

Výpočty v Matlabu >> x=0:0.1:2*pi; >> y=sin(x); >> plot(x,y,'r-') >> hold on >> t=0:6; >> v=[-0.5 0 -0.5 0.8 -0.3 0 0.2]; >> plot(t,v,'g*:') >> xlabel('x, t') >> ylabel('y, v') >> title('priklad grafu') >> axis([0 2*pi -1.2 1.2]) >> legend('sin(x)','body') >> grid

Výpočty v Matlabu Práce s grafy funkce: plot, stem, semilogy, semilogx, loglog, title, xlabel, ylabel, text, gtext, grid, axis, figure, gcf, subplot, hold, legend, ginput Alernativní x-y grafy >> x=0:0.5:10; >> y=sin(x); >> stem(y) stem – vykreslí sekvenci dat ve stylu diskretizovaného signálu loglog – graf se stejnou syntaxí jako plot, ale osy jsou v logaritmickém měřítku semilogx – osa x je v logaritmickém měřítku semilogy - osa y je v logaritmickém měřítku

Výpočty v Matlabu Vykreslete amplitudo-fázovou frekvenční charakteristiky přenosu v logaritmických souřadnicích pro >> w=linspace(0.1,100,1000); >> G=1./((j*w).^2+2*w+10); >> loglog(w,abs(G)) >> xlabel('\omega [s^{-1}]') >> ylabel('|G(j\omega)|') >> grid Pozn. Pro zobrazení řeckých symbolů a indexů se používá notace jazyka latex

Výpočty v Matlabu Práce s grafy funkce: plot, stem, semilogy, semilogx, loglog, title, xlabel, ylabel, text, gtext, grid, axis, figure, gcf, subplot, hold, legend, ginput >> t=0:0.01:2*pi; >> subplot(3,1,1) >> plot(t,sin(t)) >>xlabel('t') >>ylabel('sin(t)') >> axis([0 2*pi -1 1]) >> subplot(3,1,2) >> plot(t,cos(t)) >>ylabel(‘cos(t)') >> subplot(3,1,3) >> plot(t,tan(t)) >>ylabel(‘tan(t)') >> axis([0 2*pi -10 10]) Více grafů v jednom “figure” subplot(m,n,p) – rozdělí okno grafu na mn grafů a p-tý graf učiní aktivním. Následuje příklad plot (loglog,...), kterým se vykreslí zobrazovaná data do grafu p

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 3D grafy mesh(X,Y,Z) - vykreslí barevnou síť dat uložených v matici Z v závislosti na datech ve vektorech X a Y. Dimenze vektorů a matice musí být kompatibilní, tj když n=length(x) a m= length(y) tak poté musí být splněno size(A) =[m,n]. >> x=linspace(0,10); >> y=1+0.02*cumsum(ones(10,1)); >> A=sin(y*x); >> mesh(x,y,A) >> xlabel('x') >> ylabel('y') >> zlabel('z')

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 surf(X,Y,Z) - ta samá syntaxe jako mesh, ale data jsou zobrazena jako barevná plocha >> x=linspace(0,10); >> y=1+0.02*cumsum(ones(10,1)); >> A=sin(y*x); >> surf(x,y,A) >> xlabel('x') >> ylabel('y') >> zlabel('z')

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 [X Y]=meshgrid(x,y) – transformuje data v x a y do vektorů X a Y tak aby bylo možné tato použít k vyhodnocení funkce o dvou proměnných pomocí maticových tečkových operací. Výsledek je pak možné vykreslit pomocí 3D grafů. >> x=-2:0.1:2; >> y=-2.5:0.1:2.5; >> size(x),size(y) ans = 1 41 ans = 1 51 >> [X Y]=meshgrid(x,y); >> size(X),size(Y) ans = 51 41 >> f=(X.^2+3*Y.^2).*exp(1-X.^2-Y.^2); >> size(f) ans = 51 41 >> surf(x,y,f) Vyhodnoťme funkci na intervalu daném

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 contour(X,Y,Z) - ta samá syntaxe jako mesh a surf, ale data jsou zobrazena do 2D grafu kde Z souřadnice je zvýrazněna pomocí kontur (vrstevnic) >> x=-2:0.1:2; >> y=-2.5:0.1:2.5; >> [X Y]=meshgrid(x,y); >> f=(X.^2+3*Y.^2).*exp(1-X.^2-Y.^2); >> contour(x,y,f) contour3(X,Y,Z) - ta samá syntaxe jako contour, ale vrstevnice jsou zobrazeny do 3D grafu.

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 Počet a vyznačení výšky vrstevnic contour(X,Y,Z,V) - když V je skalár, zobrazí se v grafu V vrstevnic. Když V je vektor, zobrazí se vrstevnice hodnot definovaných ve vektoru. V případě, že chceme vyznačit pouze jednu vrstevnici o výšce v, pak V=[v v]. [cs,h]=contour(X,Y,Z) clabel(cs,h) - vyznačí výšky vrstevnic >> [cs,h] = contour(x,y,f,0.5:0.5:2.5); >> clabel(cs,h)

Výpočty v Matlabu Nalezněte polohu nul funkce (quasi-polynomu) Nacházejících se v oblasti komplexní roviny definované Nuly funkce jsou dány kořeny rovnice f(s)=0. V oblasti komplexních čísel kde s=b+jw, platí že Re[f(s)]=0 a zároveň Im[f(s)]=0. Je tedy nutné vyhledat body komplexní roviny, v nichž jsou tyto dvě rovnice splněny. K tomuto účelu použijeme funkci contour kterou vyhledáme nulové vrstevnice funkcí Re[f(s)]=0 a Im[f(s)]=0. Jejich průsečíky určují polohu nul funkce f(s) >> b=-2:0.01:1; >> w=-5:0.01:5; >> [B W]=meshgrid(b,w); >> S=B+j*W; >> f=S.^2+S.*(0.5+1.3*exp(-3*S))+ 2*exp(-4.5*S); >> contour(b,w,real(f),[0 0],'b-') >> hold on >> contour(b,w,imag(f),[0 0],'r-') >> xlabel('Re(s)') >> ylabel('Im(s)')

Výpočty v Matlabu 3D grafy funkce: mesh, surf, meshgrid, contour, contour3, plot3 plot3(X,Y,Z) - vykreslí trajektorii v 3D prostoru, která je definována vektory X, Y, Z. >> x=0:0.1:30; >> y=sin(x)*0.05.*x; >> z=cos(x)*0.05.*x; >> plot3(x,y,z) >> grid >> xlabel('x') >> ylabel('y') >> zlabel('z')