text(x,y,'nejaky text') umístí text na souřadnice x, y

Podobné dokumenty
Příklad: Vytvořte funkci s názvem vypocet bez parametrů, která bude řešit soustavu lineárních algebraických rovnic Ax = b, kde A je matice

KTE / PPEL Počítačová podpora v elektrotechnice

KTE / PPEL Počítačová podpora v elektrotechnice

Grafy, úprava, popisky, vizualizace výsledk výpo - pokra ování Další typy graf plot semilogx semilogy loglog Více graf

E+034 = ; = e E+034

Lineární algebra s Matlabem cvičení 3

Základy algoritmizace a programování

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

Pozn. %% - tiskne znak %

Grafické výstupy v Octave/Matlabu a GnuPlotu

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Kreslení grafů v Matlabu

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

Stručný návod k programu Octave

Pokračování příkladu: funkce s2cos pro výpočet y = sin 2 (x) cos(x) function y = s2cos(x) y = (sin(x).^ 2).* cos(x);

Příklady k druhému testu - Matlab

X37SGS Signály a systémy

Vizualizace. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

Matematika II, úroveň A ukázkový test č. 1 (2016) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Indexové výrazy >> A(1,:) >> A=[1,2;3,4] >> a=a(:) >> a(3)= 8 A = a = ans = 1 2. >> a a = >> A(2,1) >> A(:,1) ans = ans = >> a(3) ans =

Matematika II, úroveň A ukázkový test č. 1 (2017) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Interpolace a aproximace dat.

více křivek v jednom grafu hold on přidrží aktuální graf v grafickém okně, lze nakreslit více grafů do jednoho grafického okna postupně hold off

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

4 Přesné modelování. Modelování pomocí souřadnic. Jednotky a tolerance nastavte před začátkem modelování.

Transformujte diferenciální výraz x f x + y f do polárních souřadnic r a ϕ, které jsou definovány vztahy x = r cos ϕ a y = r sin ϕ.

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

BPC2E_C08 Parametrické 3D grafy v Matlabu

při vykreslování křivky je důležitá velikost kroku, příp. počet prvků, ve vektoru t (na ose x). t = linspace(0,2*pi,500); y = sin(t); t =

Řešení diferenciálních rovnic v MATLABu

Vytváranie trojrozmerných grafických zobrazení v prostredí MATLAB a interaktívne úpravy grafov pomocou Figure Toolbar

. Poté hodnoty z intervalu [ 1 4, 1 2. ] nahraďte hodnotami přirozeného logaritmu.

výsledek 2209 y (5) (x) y (4) (x) y (3) (x) 7y (x) 20y (x) 12y(x) (horní indexy značí derivaci) pro 1. y(x) = sin2x 2. y(x) = cos2x 3.

MATEMATIKA II - vybrané úlohy ze zkoušek (2015)

PPEL_3_cviceni_MATLAB.txt. % zadat 6 hodnot mezi cisly 2 a 8 % linspace (pocatek, konec, pocet bodu)

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

Matematika 1 pro PEF PaE

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

1/15. Kapitola 2: Reálné funkce více proměnných

KTE / PPEL Počítačová podpora v elektrotechnice

Základy programování: Algoritmizace v systému MATLAB

Seriál II.II Vektory. Výfučtení: Vektory

Excel tabulkový procesor

otočení matice o 180

3.T Technické výpočty v Octave/Matlabu zpracování a zobrazení dat

Pracovní text a úkoly ke cvičením MF002

1. Přímka a její části

Soukromá střední odborná škola Frýdek-Místek, s.r.o.

přesné jako tabulky, ale rychle a lépe mohou poskytnou názornou představu o důležitých tendencích a souvislostech.

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

KTE / PPEL Počítačová podpora v elektrotechnice

SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7

Obsah. Funkce grafu Zdrojová data pro graf Typ grafu Formátování prvků grafu Doporučení pro tvorbu grafů Zdroje

1. Je dána funkce f(x, y) a g(x, y, z). Vypište symbolicky všechny 1., 2. a 3. parciální derivace funkce f a funkce g.

Otázku, kterými body prochází větev implicitní funkce řeší následující věta.

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

Matematická analýza III.

Občas se používá značení f x (x 0, y 0 ), resp. f y (x 0, y 0 ). Parciální derivace f. rovnoběžného s osou y a z:

Úvod do programu MAXIMA

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Přednášky z předmětu Aplikovaná matematika, rok 2012

Diferenciální rovnice

MATEMATIKA II - vybrané úlohy ze zkoušek ( 2015)

(0, y) 1.3. Základní pojmy a graf funkce. Nyní se již budeme zabývat pouze reálnými funkcemi reálné proměnné a proto budeme zobrazení

14. přednáška. Přímka

4. Napjatost v bodě tělesa

Nalezněte hladiny následujících funkcí. Pro které hodnoty C R jsou hladiny neprázdné

printf - formatovany vystup

1. a) Určete parciální derivace prvního řádu funkce z = z(x, y) dané rovnicí z 3 3xy 8 = 0 v

Obsah Přehled existujících a evidence nových klientů... 3 Přehled foto-záznamů... 4 Nahrávání foto-záznamů... 6 Analýza foto-záznamů...

plot() vytváří dvou-dimenzionální grafy, mnoho různých kombinací vstupních argumentů, nejjednodušší formou je plot(y), plot(x,y).

1 Funkce dvou a tří proměnných

Základy matematiky pracovní listy

I. Diferenciální rovnice. 3. Rovnici y = x+y+1. převeďte vhodnou transformací na rovnici homogenní (vzniklou

smaže n-tý sloupec matice A vybere hodnotu 6.,1.,3.,2.prvku vektoru a a1 =

Příklady k prvnímu testu - Matlab

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Úvodní informace. 17. února 2018

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Maple. Petr Kundrát. Ústav matematiky, FSI VUT v Brně. Maple a základní znalosti z oblasti obyčejných diferenciálních rovnic.

MATLAB HRAVĚ Zdeněk Jančík, FIT VUT Brno

Modelování blízkého pole soustavy dipólů

Mechanika II.A Třetí domácí úkol

y = 2x2 + 10xy + 5. (a) = 7. y Úloha 2.: Určete rovnici tečné roviny a normály ke grafu funkce f = f(x, y) v bodě (a, f(a)). f(x, y) = x, a = (1, 1).

Mechanika - kinematika

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu

Jak ovládat ručičku tachometru (ukazatel)?

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ

Derivace funkcí více proměnných

Plošný integrál Studijní text, 16. května Plošný integrál

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Příklad: Vytvoření uživatelské funkce prolozeni_bodu pro polynomiální regresi: Vstupní data: x-ové a y-ové souřadnice bodů (2 vektory x, y), stupeň

Základy algoritmizace a programování

MS Excel grafická prezentace dat

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

Transkript:

16.1.015 Výpočetní systémy umožňují vykreslit více grafů do jednoho grafického okna: vedle sebe, pod sebe - rozdělení grafického okna (subplot) přes sebe např. plot(x 1,y 1,x,y,,x n,y n ) přes sebe hold přidrží aktuální graf v grafickém okně (zmrazí aktuální grafickou obrazovku) a všechny následující grafické výstupy do něho přikresluje, lze tedy nakreslit více grafů do jednoho grafického okna postupně vypnutí, konec možnosti kreslit více grafů do jednoho grafického okna (tj. opět mazání předchozích grafů) text(x,y,'nejaky text') umístí text na souřadnice x, y gtext('nejaky g-text') umístí text na souřadnice tam, kam je kliknuto myší ( platí v MATLABu) Soustavy souřadnic kartézská soustava souřadnic je taková soustava souřadnic, u které jsou souřadné osy vzájemně kolmé a protínají se v jednom bodě - počátku soustavy souřadnic. plot(x,y),semilogx(x,y),semilogy(x,y), polární soustava souřadnic je taková soustava souřadnic v rovině, u které jedna souřadnice (označovaná r) udává vzdálenost bodu od počátku souřadnic, druhá souřadnice (označovaná φ) udává úhel spojnice tělesa a počátku od zvolené osy ležící v rovině. polar(φ,r) plot(x,y,s) rovinný graf s lineárním dělením na osách x, y (tj. klasický graf x, y, v kartézských souřadnicích), jsou-li x a y vektory o stejné délce, pak plot(x,y) vykreslí x-y graf, semilogx(x,y,s) graf jako plot, ale s logaritmickou stupnicí (o základu 10) na ose x, semilogy(x,y,s) graf jako plot, ale s logaritmickou stupnicí (o základu 10) na ose y, loglog(x,y,s) graf jako plot, ale s logaritmickou stupnicí (o základu 10) na obou osách x, y. polar(uhel,velikost,s) graf v polárních souřadnicích compass(u,v,s) vektor se složkami u, v ve formě šipky vycházející z počátku Parametr S je řetězec, který musí být v apostrofech (některé výpočetní systémy připouštějí i uvozovky) a specifikuje barvu, způsob vykreslení a styl křivky nebo typ značky bodu. Pozn. barvy, typy značek bodů, styly čar viz předchozí přednášky a viz help plot Základním je pro vykreslení grafu v kartézských souřadnicích je příkaz plot: plot(x,y,s) rovinný graf s lineárním dělením na osách x, y data jsou předávána ve formě sloupcových nebo řádkových vektorů obecně má příkaz tvar plot(x,y,s, ),(x a S mohou být vynechány) skupinu parametrů x,y,s lze i několikrát opakovat parametr y nemusí být jen jeden vektor, více sloupcových vektorů složených do matice provede vykreslení několika průběhů sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y = sin(x), y 3 = sin(4x), pro x od 0 do π, a vykreslení grafů y 1 (x), y (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:*pi; Y = [sin(x).', sin(*x).', sin(4*x).']; % tři sloupce plot(x.',y) leg('sin(x)','sin(x)','sin(4x)') 1

16.1.015 sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y = sin(x), y 3 = sin(4x), pro x od 0 do π, a vykreslení grafů y 1 (x), y (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:*pi; Y = [sin(x).', sin(*x).', sin(4*x).']; % tři sloupce plot(x.',y) leg('sin(x)','sin(x)','sin(4x)') sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y = sin(x), y 3 = sin(4x), pro x od 0 do π, a vykreslení grafů y 1 (x), y (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:*pi; Y = [sin(x).', sin(*x).', sin(4*x).']; % tři sloupce plot(x.',y) leg('sin(x)','sin(x)','sin(4x)') Stejný graf obdržíme, bude-li mít matice Y 3 řádky s příslušnými funkčními hodnotami x = 0:.01:*pi; Y = [sin(x); sin(*x); sin(4*x)]; % tři řádky plot(x,y) leg('sin(x)','sin(x)','sin(4x)') sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y = sin(x), y 3 = sin(4x), pro x od 0 do π, a vykreslení grafů y 1 (x), y (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:*pi; Y = [sin(x).', sin(*x).', sin(4*x).']; % tři sloupce plot(x.',y) leg('sin(x)','sin(x)','sin(4x)') Stejný graf obdržíme, bude-li mít matice Y 3 řádky s příslušnými funkčními hodnotami x = 0:.01:*pi; Y = [sin(x); sin(*x); sin(4*x)]; % tři řádky plot(x,y) leg('sin(x)','sin(x)','sin(4x)') Vykreslení grafů funkcí y 1 = sin(x)/x, y = sin (x), y 3 = cos(x ). function nekolik_grafu(a) x = a.'; % sloupcový vektor x (transponovaný a) y1 = sin(x)./x; % jeden sloupcový vektor y3 = [sin(x).^,cos(x.^)]; % dva sloupce plot(x,y1,x,y3) leg('sin(x)/x','sin^(x)','cos(x^)','location','southeast') Volání funkce pro x od 0 do 4π : x = [0:0.01:*pi]; nekolik_grafu(x) Vykreslení grafů funkcí y 1 = sin(x)/x, y = sin (x), y 3 = cos(x ). function nekolik_grafu(a) x = a.'; % sloupcový vektor x (transponovaný a) y1 = sin(x)./x; % jeden sloupcový vektor y3 = [sin(x).^,cos(x.^)]; % dva sloupce plot(x,y1,x,y3) leg('sin(x)/x','sin^(x)','cos(x^)','location','southeast') leg('krivka1', 'krivka','location','south') parametrem 'Location' lze nastavit polohu (umístění) legy podle světových stran, (např. 'SouthEast' jihovýchod vpravo dole), pokud umístění legy není nastaveno, je na severovýchodě (vpravo nahoře) Volání funkce pro x od 0 do 4π : x = [0:0.01:*pi]; nekolik_grafu(x) plotyy graf s dvěma různými osami y pro dvě různé křivky, např. plotyy (x 1,y 1,x,y ) osa pro graf y 1 vlevo, osa pro graf y vpravo Vykreslení grafů funkcí y 1 = sin(x), y = 100cos(x) x=[0:0.01:4*pi]; y1=sin(x); y=100*cos(x); plotyy(x,y1,x,y) leg('y_1','y_')

16.1.015 compass(u,v,s) vektor se složkami u, v ve formě šipky vycházející z počátku Příklady: Zobrazení vektorů a = [-5,5], b = [6,] compass([-5,6],[5,]) nebo jiným způsobem: a = [-5,5]; b = [6,]; compass([a(1),b(1)],[a(),b()]) polar(uhel,velikost,s) graf v polárních souřadnicích graf v polárních souřadnicích r = sin(4φ) cos(4φ), kde φ je z intervalu od 0 do π. fi = 0:0.01:*pi; y = sin(4.*fi).*cos(4.*fi); polar(fi, y, 'r') Zobrazení komplexních čísel viz předchozí přednášky Např. compass(-6+3i,'r') polar(uhel,velikost,s) graf v polárních souřadnicích graf logaritmické spirály v polárních souřadnicích Logaritmická spirála se vyskytuje např. v kresbě ulit plžů, je dána rovnicí r = a e mφ Křivka vykreslena pro a = 1, m = 1/1, φ z intervalu od 0 do 1 π. phi = 0:0.1:1*pi; r = exp((1/1)*phi); polar(phi,r,'m') Pozn.: užitečná funkce polcart převod souřadnic polárních na kartézské [x,y] = polcart(uhel, vzdálenost_od_počátku); graf logaritmické spirály z předchozího příkladu r = a e mφ, kde a = 1, m = 1/1, φ je z intervalu od 0 do 1 π, je převeden do kartézských souřadnic a vykreslen příkazem plot. phi = 0:0.1:1*pi; r = exp((1/1)*phi); [x,y]=polcart(phi,r); plot(x,y) Naopak: cartpol převod souřadnic kartézských na polární - graf parametrizované křivky (popsán parametrickými rovnicemi) - t je parametr, na kterém závisí x, y t = 0:.001:*pi; x = cos(3.*t); y = sin(.*t); plot(x,y) grid % grid přikreslí do % grafu síť (mřížku) xlabel('x') ylabel('y') % popis os křivkové grafy body, úsečky, křivky v prostoru např. plot3(x,y,z) vyjadřuje obvykle závislost y a z na x plošné grafy síťové(drátové), povrchové grafy např. mesh(x,y,z), surf(x,y,z) atp. vyjadřují obvykle závislost z na x a y 3

16.1.015 plot3(x,y,z,s) 3D graf křivkový vykreslí křivku v prostoru procházející body o souřadnicích x, y, z, které jsou prvky stejně dlouhých vektorů x, y, z, vyjadřuje obvykle závislost y a z na x, lze použít podobné příkazy a parametry jako ve D (plot), parametr S je řetězec, který specifikuje barvu, způsob vykreslení a styl křivky nebo typ značky bodu. graf křivky popsané parametrickými rovnicemi: x = t, y = sin(t), z = cos(t), pro t od 0 do 0π. t = [0:0.1:0*pi] plot3(t,sin(t),cos(t),'r') xlabel('x') ylabel('y') zlabel('z') vykreslení úsečky v prostoru z bodu [0, 0, 0] do bodu [1,, 3] x=[0,1]; % x-ové souřadnice bodů y=[0,]; % y-ové souřadnice bodů z=[0,3]; % z-ové souřadnice bodů plot3(x,y,z,'c','linewidth',3) % zvolena barva - modrozelená (cyan) % zvolena tloušťka čáry % 'LineWidth',3 plot3(0,0,0,'ro','markersize',15,'linewidth',3) plot3(1,,3,'ro','markersize',15,'linewidth',3) % 'ro' - body jsou zobrazeny červenými kolečky % 'MarkerSize',15 - velikost značky % 'LineWidth',3 - tloušťka čáry kolečka (značky) xlabel('x') % popis osy x ylabel('y') % popis osy y zlabel('z') % popis osy z grid % přidá do grafu síť, mřížku Příklady: Graf křivky popsané parametrickými rovnicemi: x = t, y = t sin(t), z = t cos(t), pro t od 0 do 0π. t = [0:0.1:0*pi]; plot3(t,t.*sin(t),t.*cos(t)) Graf křivky popsané parametrickými rovnicemi: x = t sin(t), y = t cos(t), z = t, pro t od 0 do 0π. t = [0:0.1:0*pi]; plot3(t.*sin(t),t.*cos(t),t,'g') 3D "plošné" grafy 3D plochy a sítě vykreslí nad souřadnicemi x, y síť (drátěný model) tvarovanou podle Z (lze též uvést mesh(z) nemám potom regulérní hodnoty x, y) surf(x,y,z) - vykreslí nad souřadnicemi x, y plochu (vystínovanou, vybarvenou) tvarovanou podle Z (lze též uvést surf(z) nemám potom regulérní hodnoty x, y) Matice náhodných čísel s 8 řádky a 8 sloupci zobrazená pomocí surf. Rozsah osy x a y bude dán automaticky od 1 do 8 (indexy prvků matice). N = round(rand(8,8).*10); surf(n) Graf funkce: sin x y z( x, y) x y pro x, y od -0 do 0 s krokem 0,5. x = -0:0.5:0; y = x; [X,Y] = meshgrid(x,y); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); Pokud mají x, y stejný rozsah -0 až 0, lze zapsat, např. takto: [X,Y] = meshgrid(-0:0.5:0); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); Proč používáme meshgrid? - [X,Y] = meshgrid(x,y)vytvoří pomocné matice X, Y, jejichž prvky obsahují souřadnice bodů v rovině xy - pro usnadnění zápisu výpočtu s takto vytvořenými souřadnicemi mohu zapisovat rovnici pro výpočet Z "normálně" dle matematického zápisu, pouze nesmím zapomenout na operace prvek po prvku (tečkanotaci). Pozn.: Funkce vracející jako výsledek dvě a více hodnot (mohou to být i dvě matice) bude mít hlavičku: function [prvni,druha] = vraci_dve(vstupni_parametry)...atd... prvni = nějaký výsledek; druha = nějaký výsledek; Volání této funkce bude potom vypadat např.: [a, b] = vraci_dve(x) a =... b =... Příkladem takové funkce je meshgrid. 4

16.1.015 Graf funkce: sin x y z( x, y) x y pro x, y od - do s krokem 1. [X,Y] = meshgrid(-:) Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^) surf(x,y,z) X = Za příkazy nejsou xlabel('x') - -1 0 1 středníky, vypíší se ylabel('y') - -1 0 1 matice zlabel('z') - -1 0 1 X, Y, Z - -1 0 1 - -1 0 1 Y = - - - - - -1-1 -1-1 -1 0 0 0 0 0 1 1 1 1 1 Z = 0.11 0.35 0.45 0.35 0.11 0.35 0.70 0.84 0.70 0.35 0.45 0.84 NaN 0.84 0.45 0.35 0.70 0.84 0.70 0.35 0.11 0.35 0.45 0.35 0.11 Graf funkce: sin x y z( x, y) x y pro x od -30 do 30 a y od -10 do 10 (různý rozsah os x, y) x = linspace(-30,30,50); y = linspace(-10,10,50); [X,Y] = meshgrid(x,y); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); pro x od -0 do 0 a y od -40 do 40 [X,Y] = meshgrid(-0:0.5:0,-40:0.5:40); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); Graf funkce: sin x y z( x, y) x y pro x od -30 do 30 a y od -10 do 10 (různý rozsah os x, y) x = linspace(-30,30,50); y = linspace(-10,10,50); [X,Y] = meshgrid(x,y); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); pro x od -0 do 0 a y od -40 do 40 [X,Y] = meshgrid(-0:0.5:0,-40:0.5:40); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); Graf funkce: z = cos(xy) pro x, y od -π do π. funkční hodnoty vypočtené pomocí meshgrid a nematicových operací x = -pi:pi/50:pi; y = x; tic [X,Y] = meshgrid(x,y); Z = cos(x.*y); toc colorbar Elapsed time is 0.05995 seconds. colorbar doplní barevnou stupnici (škálu) Graf funkce: z = cos(xy) pro x, y od -π do π. funkční hodnoty vypočtené pomocí cyklů for x = -pi:pi/50:pi; y = x; tic for m=1:length(x) for n=1:length(y) Z(m,n)=cos(x(m)*y(n)); toc colorbar Elapsed time is 0.31 seconds. Vykreslení vrstevnic contour(x,y,z) plošné (pohled shora) dvourozměrné vykreslení např. vrstevnic, ekvipotenciál atp. contour(x,y,z,n) chci vykresli n-úrovní (v podstatě určím jak hustě se mají kreslit vrstevnice), např. contour(x,y,z,30) contourf(x,y,z) vrstevnice s barevnými plochami contour3(x,y,z) trojrozměrné vykreslení např. vrstevnic, ekvipotenciál atp. pcolor(x,y,z) obdoba contour, ale vykresleno jako barevné plochy 5

16.1.015 mesh(), surf() lze použít pro zobrazení stejné funkce Graf funkce z = cos(x + y ) pro x, y od π/ do π/ a jeho vrstevnice. [X,Y] = meshgrid(-pi/:0.1:pi/); Z = cos(x.^+y.^); subplot(,,1) subplot(,,) surf(x,y,z) subplot(,,3) contour(x,y,z) subplot(,,4) contourf(x,y,z) Graf funkce z = cos(x + y ) pro x, y od -1 do 1 s krokem 0. a vykreslení vrstevnic ke grafu [X,Y] = meshgrid(-1:0.:1); Z = cos(x.^+y.^); [C,h]=contour(X,Y,Z); clabel(c,h); contour() - vrstevnice grafu clabel() - popisky vrstevnic Vrstevnice grafu funkce z = cos(x + 0.5y ) pro x, y od -10 do 10 x=[-10:0.5:10]; y=x; [X,Y]=meshgrid(x,y); Z=X.^+0.5*Y.^; subplot(,,1) contour(x,y,z) colorbar subplot(,,) contourf(x,y,z) colorbar subplot(,,3) contour(x,y,z,30) colorbar subplot(,,4) pcolor(x,y,z) colorbar Zobrazení gradientů funkce: [FX,FY]=gradient(F) výpočet gradientu matice F, výsledkem jsou dvě matice podobně jako u meshgrid(). quiver(parametry) neumí počítat gradient umí vykreslit graf ze šipek, které mohou představovat gradient v daném bodě. (Gradient je v obecném smyslu slova směr růstu, matematickým výsledkem je vektorové pole vyjadřující směr a velikost změny skalárního pole, gradienty jsou tedy vektory, jejichž složky tvoří jednotlivé parciální derivace funkce vyjadřující dané skalární pole. FX odpovídá F/ x, FY pak F/ y.) Graf funkce: z 1 = cos(x +y ) a funkce z = cos(x +y ) a vykreslení jejich vrstevnic a gradientu, pro x, y od 1 do 1 s krokem 0,5. [X,Y]=meshgrid(-1:0.5:1); Z=cos(X.^+Y.^); subplot(,,1) subplot(,,3) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) contour(x,y,z) Z=-cos(X.^+Y.^); subplot(,,) mesh(x,y,z) subplot(,,4) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) contour(x,y,z) Graf funkce: z 1 = cos(x +y ) a funkce z = cos(x +y ) a vykreslení jejich vrstevnic a gradientu, pro x, y od 1 do 1 s krokem 0,5. [X,Y]=meshgrid(-1:0.5:1); Z=cos(X.^+Y.^); subplot(,,1) subplot(,,3) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) contour(x,y,z) Z=-cos(X.^+Y.^); subplot(,,) mesh(x,y,z) Krok tentokrát zvolen větší, aby byly dobře vidět šipky vyjadřující gradient. subplot(,,4) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) contour(x,y,z) 6

16.1.015 Graf funkce: sin x y z( x, y) a vykreslení jejího gradientu x y pro x, y od -7 do 7 s krokem 0,5. [X,Y] = meshgrid(-7:0.5:7); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); figure % nové grafické okno [Px,Py] = gradient(z,.5,.5); quiver(x,y,px,py); Graf funkce: sin z( x, y) x y a vykreslení jejího gradientu x y pro x, y od -7 do 7 s krokem 0,5. [X,Y] = meshgrid(-7:0.5:7); Z = sin(sqrt(x.^+y.^))./sqrt(x.^+y.^); figure % nové grafické okno [Px,Py] = gradient(z,.5,.5); quiver(x,y,px,py); gradient je vykreslen s krokem podle kroku X a Y krok pro výpočet gradientu, ne pro vykresleni Normály k povrchu (k ploše) grafu [U,V,W] = surfnorm(x,y,z) vytvoření pomocných matic U, V, W pro normály k plošnému grafu funkce Z quiver3(x,y,z,u,v,w) vykreslí graf ze šipek se složkami U, V, W v bodech se souřadnicemi X, Y, Z. Matice X, Y, Z, U, V, W musí mít všechny stejnou velikost. Graf funkce z = cos(x + y ) pro x, y od -1 do 1 a vykreslení normál k povrchu funkce [X,Y] = meshgrid(-1:0.:1); Z = cos(x.^+y.^); [NX,NY,NZ] = surfnorm(x,y,z); quiver3(x,y,z,nx,ny,nz) vytvoření pomocných matic NX,NY,NZ pro normály k plošnému grafu funkce Z vykresleni normál k ploše grafu jako vektoru (šipek) - grafy lze kombinovat využijeme příkaz / off Graf funkce z = cos(x + y ) pro x, y od π/ do π/ a jeho 3D vrstevnice. [X,Y] = meshgrid(-pi/:0.1:pi/); Z = cos(x.^+y.^); subplot(,1,1) contour3(x,y,z) - je více variant příkazů pro zobrazení plošných grafů (odlišné v různých výpočetních systémech), v MATLABu některé kombinují vlastnosti dvou dohromady, např.: meshc, surfc (mesh a surf a k tomu contour), meshz (mesh s podstavcem ), surfl (surf s osvětlením ) Graf funkce z = - cos(x + y ) pro x, y od π/ do π/ [X,Y] = meshgrid(-pi/:0.1:pi/); Z = -cos(x.^+y.^); surfc(x,y,z) surfl(x,y,z) subplot(,1,) contour3(x,y,z,'k') 7

16.1.015 colormap(paleta) nastavuje barevnou paletu pro graf - parametr paleta je matice o 3 sloupcích představujících Red Green Blue, položky mají hodnoty od 0 do 1 (tj. 0 až 100%) - předpřipravené palety gray, hot, copper, hsv, cool Graf funkce z = cos(x + y ) pro x, y od π/ do π/ [X,Y] = meshgrid(-pi/:0.1:pi/); Z = cos(x.^+y.^); surf(x,y,z) colormap(gray) colormap(hot) colormap(winter) Grafy zobrazující vztah částí k celku (statistika) bar sloupcový graf pie výsečový (koláčový) graf barh horizontální sloupcový graf bar3 trojrozměrný sloupcový graf pie3 trojrozměrný výsečový (koláčový) graf bar3h trojrozměrný horizontální sloupcový graf Platí pro MATLAB, v jiných výpočetních systémech nemusí být trojrozměrné grafy k dispozici V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva. Vytvořte výsečový graf, který ukáže podíl prodaného druhu pečiva. pecivo = [10,0,30,5]; subplot(,,1) pie(pecivo) subplot(,,) pie(pecivo,{'rohliky',... % tři tečky pokračování na další řádce 'bagety','koblihy','ostatni'}) subplot(,,3) ex=[0,1,0,0]; pie(pecivo,ex) subplot(,,4) pie(pecivo,[1,1,1,1],... {'rohliky','bagety','koblihy','ostatni'}) V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva. Vytvořte výsečový graf, který ukáže podíl prodaného druhu pečiva. pecivo = [10,0,30,5]; subplot(,,1) pie(pecivo) subplot(,,) pie(pecivo,{'rohliky',... 'bagety','koblihy','ostatni'}) subplot(,,3) ex=[0,1,0,0]; pie(pecivo,ex) subplot(,,4) pie(pecivo,[1,1,1,1],... {'rohliky','bagety','koblihy','ostatni'}) V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva. Vykreslete rovněž toto prodané pečivo ve formě sloupcového grafu pecivo = [10,0,30,5]; bar(pecivo) V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva, ve druhé prodejně bylo prodáno za stejnou dobu prodáno 8 rohlíků, 1 baget, 4 koblih a 15 kusů ostatního pečiva a ve třetí prodejně bylo prodáno opět za stejnou dobu prodáno 0 rohlíků, 4 bagety, 7 koblih a 5 kusů ostatního pečiva. Vykreslete poměrné zastoupení prodaného pečiva v jednotlivých prodejnách. prodejna=[10,0,30,5; 8,1,4,15; 0,4,7,5] subplot(1,,1) bar(prodejna,'stacked') leg('rohliky','bagety','koblihy','ostatni') subplot(1,,) bar(prodejna,'grouped') leg('rohliky','bagety','koblihy','ostatni') 8

16.1.015 V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva, ve druhé prodejně bylo prodáno za stejnou dobu prodáno 8 rohlíků, 1 baget, 4 koblih a 15 kusů ostatního pečiva a ve třetí prodejně bylo prodáno opět za stejnou dobu prodáno 0 rohlíků, 4 bagety, 7 koblih a 5 kusů ostatního pečiva. Vykreslete poměrné zastoupení prodaného pečiva v jednotlivých prodejnách. prodejna=[10,0,30,5; 8,1,4,15; 0,4,7,5] subplot(1,,1) bar(prodejna,'stacked') leg('rohliky','bagety','koblihy','ostatni') subplot(1,,) bar(prodejna,'grouped') leg('rohliky','bagety','koblihy','ostatni') Další typy grafů stairs "schodový" graf hist graf vyjadřující u spojité proměnné rozdělení četností podle intervalů hodnot. hist(y) rozdělí prvky y na 10 rovnoměrně rozložených intervalů a vrací počet prvků v každém intervalu. hist(y,x), kde x je vektor, vrátí rozdělení y mezi intervaly s centry určenými x rose úhlový histogram errorbar chybové úsečky ukazují úroveň spolehlivosti dat nebo odchylku podél křivky. feather graf zobrazující vektory vycházející z bodů rovnoměrně rozložených podél vodorovné osy, tj. z [0,0], [1,0], [,0], a další viz help stairs "schodový" graf Příklady: V bufetu bylo za 15 minut prodáno 10 rohlíků, 0 baget, 30 koblih a 5 kusů ostatního pečiva. Vykreslete rovněž toto prodané pečivo ve formě schodového grafu pecivo = [10,0,30,5,0]; stairs(pecivo) hist graf vyjadřující u spojité proměnné rozdělení četností podle intervalů hodnot. hist(y) rozdělí prvky y na 10 rovnoměrně rozložených intervalů a vrací počet prvků v každém intervalu. hist(y,x), kde x je vektor, vrátí rozdělení y mezi intervaly s centry určenými x Příklady: a=rand(1,1000).*10; hist(a) Zobrazení funkce sin(x) x = linspace(-*pi,*pi,40); stairs(x,sin(x)) hist graf vyjadřující u spojité proměnné rozdělení četností podle intervalů hodnot. hist(y) rozdělí prvky y na 10 rovnoměrně rozložených intervalů a vrací počet prvků v každém intervalu. hist(y,x), kde x je vektor, vrátí rozdělení y mezi intervaly s centry určenými x rose úhlový histogram uhel = rand(1,500).*.*pi; rose(uhel) Příklady: a=rand(1,1000).*10; hist(a) x = -5:0.1:5; y = randn(1000,1); hist(y,x) Prvky vektoru uhel musí být zadány v radiánech. 9

16.1.015 errorbar chybové úsečky ukazují úroveň spolehlivosti dat nebo odchylku podél křivky. x = linspace(0,*pi,10); y = sin(x); er = std(y)*ones(size(x)); errorbar(x,y,er) feather graf zobrazující vektory vycházející z bodů rovnoměrně rozložených podél vodorovné osy, tj. z [0,0], [1,0], [,0], [3,0], Příklady: Zobrazení funkce sin(x) x = linspace(-*pi,*pi,40); feather(x,sin(x)) grid Zobrazení komplexních čísel C = [-+i,-3-4i,1+i,4-3i,i,1]; subplot(1,,1) compass(c) subplot(1,,) feather(c) spy grafické zobrazení řídké matice (pro analýzu řídkých matic ) V = zeros(9); V(1,) = 7; V(,3) = 6; V(1,4) = 9; V(5,5) = 4; V(7,8) = 5; spy(v,'r') % body mi v grafu ukáží nenulové hodnoty V = 0 7 0 9 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 f = fopen('nazev_soubor', 'režim'); fopen otevře soubor s názvem nazev_soubor pro přístup pro čtení nebo zápis podle zvoleného režimu. Řetězec nazev_soubor obsahuje název souboru, který má být otevřen. Pokud fopen nemůže otevřít soubor, vrátí hodnotu -1. Jetliže soubor není v aktuální složce, lze zadat i cestu k souboru, např.: f = fopen('c:\\cesta_k_souboru\\soubor', 'režim'); kde režim může být: 'r' číst (read) 'w' zápis, přepis, vytvoření nového souboru (write) 'a' připsat na konec existujícího (app) 'r+' čtení nebo zápis 'w+' čtení nebo zápis, přepis, vytvoření nového souboru 'a+' čtení nebo zápis, přepis, vytvoření nového souboru a přidávat na konec souboru další data Zápis do textového souboru: fprintf() jako na obrazovku, jediný rozdíl je, že je nutné uvést proměnnou, do které je otevřen soubor, např. muj_soubor = fopen('c:\\cesta\\soubor.txt','w'); fprintf(muj_soubor,'format.sekvence',argumenty); formátovací sekvence a argumenty používáme stejné jako při výpisu na obrazovku Použitý soubor je třeba nakonec zavřít pomocí fclose(), jež vrací 0 v případě úspěšného zavření souboru nebo -1 v případě neúspěchu. fclose(muj_soubor); Pozn.: test konce souboru feof(muj_soubor) pokud je konec souboru, vrátí 1 'w' zápis Zápis do textového souboru: (write) fprintf() jako na obrazovku, jediný rozdíl je, že je nutné uvést proměnnou, do které je otevřen soubor, např. muj_soubor = fopen('c:\\cesta\\soubor.txt','w'); fprintf(muj_soubor,'format.sekvence',argumenty); formátovací sekvence a argumenty používáme stejné jako při výpisu na obrazovku Použitý soubor je třeba nakonec zavřít pomocí fclose(), jež vrací 0 v případě úspěšného zavření souboru nebo -1 v případě neúspěchu. fclose(muj_soubor); Pozn.: test konce souboru feof(muj_soubor) pokud je konec souboru, vrátí 1 10

16.1.015 Funkce, v níž do textového souboru uloženého v aktuální složce bude zapsán text, znak a číslo, které zadá uživatel z klávesnice. function soubor_ulozeni f = fopen('soubor.txt', 'w'); zadany_text = input('zadejte text: ', 's'); zadany_znak = input('zadejte znak: ', 's'); cislo = input('zadejte cislo: '); fprintf(f,'bylo zadan text: %s\n', zadany_text); fprintf(f,'bylo zadan znak: %c\n', zadany_znak); fprintf(f,'bylo zadano cislo: %g\n', cislo); fclose(f); Funkce, v níž do textového souboru uloženého v aktuální složce bude zapsán text, znak a číslo, které zadá uživatel z klávesnice. 'w' zápis (write) function soubor_ulozeni f = fopen('soubor.txt', 'w'); zadany_text = input('zadejte text: ', 's'); zadany_znak = input('zadejte znak: ', 's'); cislo = input('zadejte cislo: '); fprintf(f,'bylo zadan text: %s\n', zadany_text); fprintf(f,'bylo zadan znak: %c\n', zadany_znak); fprintf(f,'bylo zadano cislo: %g\n', cislo); fclose(f); Volání funkce soubor_ulozeni: Zadejte text: Ahoj! Zadejte znak: x Zadejte cislo: 1345 V textovém souboru soubor.txt, který je uložen v aktuálním adresáři, je zapsáno: Bylo zadan text: Ahoj! Bylo zadan znak: x Bylo zadano cislo: 1345 function soubor_cisla p = input('zadej, kolik chces ulozit cisel? '); if(p > 0) f = fopen('data.txt','w'); for n = 1:p 'w' zápis (write) fprintf(f,'%g\n',rand); fclose(f); fprintf('cisla byla ulozena\n'); else fprintf('chybne zadani\n'); Volání funkce soubor_cisla: Zadej, kolik chces ulozit cisel? -5 Chybne zadani nebo Zadej, kolik chces ulozit cisel? 0 Cisla byla ulozena V textovém souboru data.txt, který je uložen v aktuální složce, je pak zapsáno např.: 0.106653 0.961898 0.004634 0.77491 0.817303 0.868695 0.0844358 0.399783 0.5987 0.800068 0.431414 0.910648 0.181847 0.63803 0.145539 0.136069 0.8699 0.579705 0.54986 0.144955 fscanf čtení z textového souboru uloženého na disku, soubor musí nejprve být otevřen pomocí fopen Např. Načtení všech čísel ze souboru data.txt uloženého na disku C soubor = fopen( C:\\data.txt', 'r'); cisla = fscanf(soubor, '%g'); fclose(soubor); 'r' číst (read) Načtení jednoho čísla ze souboru data.txt uloženého na disku D (1 řádek, 1 sloupec) soubor = fopen('d:\\data.txt', 'r'); cisla = fscanf(soubor, '%g', [1,1]); fclose(soubor); Velikost je nepovinná, ale pomocí ní lze omezit počet prvků, které je možné číst ze souboru. 11

16.1.015 Velikost je tedy nepovinná, ale pomocí ní lze omezit počet prvků, které je možné číst ze souboru, je-li zadán rozměr matice, vyplní se matice o dané velikosti, např. Čtení z textového souboru soubor.txt uloženého v aktuálním adresáři: muj_soubor = fopen('soubor.txt', 'r'); cisla = fscanf(muj_soubor, '%g', [,inf]); fscanf má přečíst reálná čísla, organizovaná ve řádcích a neznámém počtu sloupců (chci číst až do konce souboru), na pozici řádek nesmí být inf. Použitý soubor je třeba nakonec zavřít: fclose(muj_soubor) 1