Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Simulační Programování - Matlab

Podobné prezentace


Prezentace na téma: "Simulační Programování - Matlab"— Transkript prezentace:

1 Simulační Programování - Matlab
Přednášející a cvičící: Doc. Tomáš Vyhlídal kontakt: místnost 410 tel Stránky předmětu:

2 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)

3 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:

4 Přehled matematického software
Software pro numerické výpočty – aplikace výpočetních algoritmů numerické matematiky Netlib ( - 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:

5 Úvod do programu Matlab
Matlab (The Mathworks - 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

6 Ú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

7 Ú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í

8 Ú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

9 Ú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.

10 Ú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 x double C_M x double C_M x sym Del_P x double Del_pr x double název dimenze počet bytů typ prom.

11 Ú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 x double

12 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 = >> format short e e+002 >> format long >> pi ans = >> format long e e+000 >> 1+2*3-4^5/6 ans =

13 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 = e-308 nejmenší číslo v Matlabu >> realmax ans = e+308 největší číslo v Matlabu >> 1/0 ans = Inf číslo větší než realmax, nekonečno >> 0/0 ans = NaN nedefinovaná hodnota

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

15 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

16 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 = >> abs(a) ans = >> conj(a) ans = i 2i reálná část 3 -2i imaginární část >> j ans = i >> i argument modul komplexně sdružené číslo

17 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 = >> A(1,3) ans = 6 >> A(1,:) ans = >> c=zeros(1,3) c = >> A=[8 1 6;3 5 7;4 9 2] A = >> A([2 3],[2 1]) ans = >> E=diag([2 5 7]) E =

18 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 = transpozice >> J=eye(2)+i*ones(2) J = i i i i >> A' ans = >> A=[8 1 6;3 5 7;4 9 2]; >> b=ones(3,1);

19 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 = dimenze matice >> (2*ones(2)).^[1 2;3 4] ans = >> C=[3 4 6;5 1 4]; >> size(C) ans = >> length(C) 3 tečková notace, operace člen po členu >> [8 2;6 10]./[4 1;3 5] ans = >> [2 3;1 2].*[3 4;5 1] ans =

20 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=[ ]; >> sum(c) ans = 7 >> c=[ ]; >> min(c) ans = -9 >> [a b]=min(c) a = -9 b = 5 >> C=[2 4;7 -2;-5 7]; >> min(C) ans = >> [a b]=min(C) a = b = >> max(C) >>C = >> sum(C) ans = minimum index minimum >> max(c) ans = 7

21 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=[ ]; >> prod(c) ans = -945 >> c=[ ]; >> sort(c) ans = >> c=[ ]; >> cumsum(c) ans = >> c=[ ]; >> cumprod(c) V matici – buď podle sloupců - 1, nebo řádků -2 >> C=[2 4 7; ] C = >> sort(C) ans = >> C=[2 4 7; ] >> prod(C,1) ans = >> prod(C,2) 56 70

22 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 =

23 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 = 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 = … 1 >> 0:0.2:1 ans = >> logspace(0,3,4) ans =

24 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í

25 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.4222 0.0889 b) >> x=A\b x = 0.4222 0.0889 >> A=[8 1 6;3 5 7;4 9 2]; >> b=[-1;2;3]; Inverze >> inv(A) ans = I když oba způsoby řešení dávají stejné výsledky, operace \ je numericky mnohem stabilnější

26 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.3411 0.1679 >> pinv(A) ans =

27 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 = D = >> A=[8 1 6;3 5 7;4 9 2] Vlastní čísla >> eig(A) ans = 4.8990 Ve výsledku platí A*V=V*D

28 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=[ ]; >> roots(M) ans = i i >> rank(A) ans = 3

29 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 = >> roots(M) ans = 4.8990 >> poly([ ]) ans = >> eig(A) ans = 4.8990 Vlastní čísla matice A mají stejné hodnoty jako kořeny polynomu M. >> roots([ ]) ans = Z numerického hlediska je ale výpočet vlastních čísel matice mnohem spolehlivější

30 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 = i i i i i i 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.

31 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 = R = P = K = 2 >> N=[ ]; >> M=[ ]; >> [R P K]=residue(N,M)

32 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

33 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

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

35 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

36 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

37 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 ]) 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

38 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')

39 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')

40 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 = ans = >> [X Y]=meshgrid(x,y); >> size(X),size(Y) ans = >> f=(X.^2+3*Y.^2).*exp(1-X.^2-Y.^2); >> size(f) ans = >> surf(x,y,f) Vyhodnoťme funkci na intervalu daném

41 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.

42 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)

43 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.*( *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)')

44 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')


Stáhnout ppt "Simulační Programování - Matlab"

Podobné prezentace


Reklamy Google