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

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

Pozn. %% - tiskne znak %

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

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

Základy algoritmizace a programování

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

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 +

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

Grafické výstupy v Octave/Matlabu a GnuPlotu

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

Kreslení grafů v Matlabu

E+034 = ; = e E+034

Stručný návod k programu Octave

Příklady k druhému testu - Matlab

X37SGS Signály a systémy

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é

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é

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 =

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

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é

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

Interpolace a aproximace dat.

BPC2E_C08 Parametrické 3D grafy v Matlabu

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

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

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

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.

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

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í

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

Základy matematiky pracovní listy

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

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

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

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

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

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

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

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

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

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

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

VIDEOSBÍRKA DERIVACE

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

Diferenciální rovnice

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

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

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

Úvod do programu MAXIMA

3. ÚVOD DO ANALYTICKÉ GEOMETRIE 3.1. ANALYTICKÁ GEOMETRIE PŘÍMKY

II. Úlohy na vložené cykly a podprogramy

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

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

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

MODAM Popis okna. 2 Jana Bělohlávková, Katedra matematiky a deskriptivní geometrie, VŠB - TU Ostrava

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

DERIVACE. ln 7. Urči, kdy funkce roste a klesá a dále kdy je konkávní a

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

VIDEOSBÍRKA DERIVACE

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

Popisná statistika. Komentované řešení pomocí MS Excel

Základy algoritmizace a programování

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

vysledek = ((1:1:50).*(100-(1:1:50))) *ones(50,1) vysledek = ((1:1:75)./2).*sqrt(1:1:75) *ones(75,1)

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

Příklad animace změny prokládané křivky při změně polohy jednoho z bodů

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.

Matematika 1 pro PEF PaE

4. Napjatost v bodě tělesa

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

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

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

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

Úvodní informace. 17. února 2018

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 =

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

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

4. Statika základní pojmy a základy rovnováhy sil

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

Požadavky ke zkoušce

Definice Řekneme, že funkce z = f(x,y) je v bodě A = [x 0,y 0 ] diferencovatelná, nebo. z f(x 0 + h,y 0 + k) f(x 0,y 0 ) = Ah + Bk + ρτ(h,k),

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

MODAM Popis okna. 2 Jana Bělohlávková, Katedra matematiky a deskriptivní geometrie, VŠB - TU Ostrava

Matematická analýza III.

Parametrické rovnice křivky

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

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

Příklady k prvnímu testu - Matlab

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

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

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

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

Cvičné texty ke státní maturitě z matematiky

ZŠ ÚnO, Bratří Čapků 1332

Derivace funkcí více proměnných

Matematika I A ukázkový test 1 pro 2014/2015

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ň

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

Transkript:

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 koeficientů soustavy, x je sloupcový vektor řešení a b je sloupcový vektor pravých stran. V této funkci bude zavolána podle volby uživatele buď funkce soust_vstup s dvěma výstupními parametry A, b pro zadání příslušných dat z klávesnice, a nebo funkce soust_vstup_soubor s dvěma výstupními parametry A, b pro vstup ze souboru. Bude ověřeno, zdali matice A není pázdná. V případě, že ano, funkce bude ukončena. Dále bude ověřeno, zdali hodnost matice A je stejná jako počet prvů ve sloupci pravých stran b a zdali je matice A dobře podmíněná. Pokud ne, uživatel bude upozorněn, že matice A je singulární a bude tázán, chce-li program ukončit. Pokud ano, funkce bude ukončena. V jiném případě bude zavolána funkce soustava s dvěma vstupními parametry A, b a jedním výstupem x pro výpočet soustavy lineárních algebraických rovnic.

Pokračování příkladu: Potom bude zavolána funkce soustava_vystup se třemi vstupními parametry A, b, x pro výpis řešení na obrazovku. Pokud si uživatel bude přát, bude proveden výpis do souboru zavoláním funkce soustava_vystup_soubor se třemi vstupními parametry A, b, x. Při řešení předpokládejme, že vektor b má stejný počet prvků jako má matice A řádků (tj. stejný jako je počet rovnic). Ve funkci soust_vstup zadá uživatel z klávesnice počet rovnic. Bude ověřeno, zdali je počet rovnic kladný. Pokud ano, po výzvě programu (např.: Zadej prvek matice na pozici 1, 2:, kde čísla 1, 2 udávají příslušný řádek a sloupec v matici A) zadá uživatel hodnotu prvku, který se uloží do matice A na příslušnou pozici. Jednotlivé prvky sloupcového vektoru pravých stran b zadá uživatel také z klávesnice po výzvě programu. Pokud je počet rovnic záporný nebo rovný nule, matice A i vektor b budou prázdné.

Pokračování příkladu: Funkce soust_vstup bude mít 2 výstupní parametry matici A a sloupcový vektor b. Ve funkci soust_vstup_soubor budou načtena data ze souboru, jehož název zadá uživatel z klávesnice, přičemž první číslo v souboru bude představovat počet rovnic. Předpokládejme, že v souboru budou jen reálná čísla. Funkce soustava s dvěma výstupními parametry A, b a jedním výstupem x bude řešit soustavu lineárních algebraických rovnic. Funkce soustava_vystup s třemi vstupními parametry A, b, x bez návratové hodnoty vypíše na obrazovku matici koeficientů soustavy A, sloupec pravých stran b a výsledné hodnoty x, tj. řešení soustavy lineárních algebraických rovnic. Funkce soustava_vystup_soubor s třemi vstupními parametry A, b, x bez návratové hodnoty uloží do textového souboru, jehož název zvolí uživatel, matici koeficientů soustavy A, sloupec pravých stran b a výsledné hodnoty.

function vypocet v = menu('vstup z klavesnice nebo ze souboru?','klavesnice','soubor'); switch v case 1 [A,b]=soust_vstup; % volani funkce soust_vstup.m case 2 [A,b]=soust_vstup_soubor; % volani funkce soust_vstup_soubor.m otherwise return end if(min(size(a))==0) disp('konec programu') return end if((rank(a)~=length(b))&(rcond(a)<1e-12)) disp('matice je singularni') d = input('pocitat dal A/N?','s'); d = lower(d); while((d~='a')&(d~='n')) d=input('pocitat dal A/N?','s'); d=lower(d); end if(d=='n') disp('konec programu') return end end

x = soustava(a,b); % volani funkce soustava.m soustava_vystup(a,b,x) % volani funkce soustava_vystup.m s = input('vystup do souboru A/N? ','s'); s = upper(s); if(s == 'A') soustava_vystup_soubor(a,b,x) % volani funkce % soustava_vystup_soubor.m end end function [A,b] = soust_vstup_soubor t = input('zadej nazev vstupniho souboru: ','s'); f = fopen(t,'r'); r = fscanf(f,'%d',[1,1]); A = fscanf(f,'%g',[r,r]); b = fscanf(f,'%g',[1,r]); b = b.'; fclose(f); end

function [A,b] = soust_vstup p = input('zadej pocet rovnic: '); if(p<=0) msgbox('zadna rovnice','hlaseni','error') A=[];b=[]; return elseif(p==1) msgbox('1 rovnice','pozor','warn') else msgbox('ok','hlaseni','help') end A=zeros(p); for m=1:p % radky for n=1:p % sloupce fprintf('zadej prvek matice na pozici %d,%d: ',m,n); A(m,n)=input(''); end end b=zeros(p,1); for m=1:p fprintf('zadej prvek vektoru pravych stran na pozici %d: ',m) b(m)=input(''); end end

function x = soustava(a,b) x=a\b; end function soustava_vystup(a,b,x) disp('matice koeficientu soustavy:') for m=1:length(a) for n=1:length(a) fprintf('%6.2f %+6.2fi\t',real(A(m,n)),imag(A(m,n))); end fprintf('\n'); end disp('vektor pravych stran') for m=1:length(b) fprintf('%6.2f %+6.2fi\n',real(b(m)),imag(b(m))) end disp('reseni') for m=1:length(x) fprintf('%6.2f %+6.2fi\n',real(x(m)),imag(x(m))) end end

function soustava_vystup_soubor(a,b,x) n=input('zadej nazev souboru: ','s'); f=fopen(n,'w'); fprintf(f,'matice koeficientu soustavy:\n'); for m=1:length(a) for n=1:length(a) fprintf(f,'%6.2f %+6.2fi\t',real(A(m,n)),imag(A(m,n))); end fprintf(f,'\n'); end fprintf(f,'vektor pravych stran\n'); for m=1:length(b) fprintf(f,'%6.2f %+6.2fi\n',real(b(m)),imag(b(m))); end fprintf(f,'reseni\n'); for m=1:length(x) fprintf(f,'%6.2f %+6.2fi\n',real(x(m)),imag(x(m))); end fclose(f); msgbox('vysledek byl ulozen do souboru','zprava','help') end

Pokračování příkladu: volání funkce vypočet vypocet Zadej pocet rovnic: 1 Zadej prvek matice na pozici 1,1: 5+i Zadej prvek vektoru pravych stran na pozici 1: 10+4i Matice koeficientu soustavy: 5.00 +1.00i Vektor pravych stran 10.00 +4.00i Reseni 2.08 +0.38i Vystup do souboru A/N? N

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 2,y 2,,x n,y n ) přes sebe hold hold on 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ě hold off 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ů

Příklad: sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y 2 = sin(2x), y 3 = sin(4x), pro x od 0 do 2π, a vykreslení grafů y 1 (x), y 2 (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:2*pi; Y = [sin(x).', sin(2*x).', sin(4*x).']; % tři sloupce plot(x.',y) legend('sin(x)','sin(2x)','sin(4x)')

Příklad: sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y 2 = sin(2x), y 3 = sin(4x), pro x od 0 do 2π, a vykreslení grafů y 1 (x), y 2 (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:2*pi; Y = [sin(x).', sin(2*x).', sin(4*x).']; % tři sloupce plot(x.',y) legend('sin(x)','sin(2x)','sin(4x)')

Příklad: sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y 2 = sin(2x), y 3 = sin(4x), pro x od 0 do 2π, a vykreslení grafů y 1 (x), y 2 (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:2*pi; Y = [sin(x).', sin(2*x).', sin(4*x).']; % tři sloupce plot(x.',y) legend('sin(x)','sin(2x)','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:2*pi; Y = [sin(x); sin(2*x); sin(4*x)]; % tři řádky plot(x,y) legend('sin(x)','sin(2x)','sin(4x)')

Příklad: sestavení matice Y, která jako 3 sloupce obsahuje funkční hodnoty y 1 = sin(x), y 2 = sin(2x), y 3 = sin(4x), pro x od 0 do 2π, a vykreslení grafů y 1 (x), y 2 (x), y 3 (x) pomocí dat v matici Y. x = 0:.01:2*pi; Y = [sin(x).', sin(2*x).', sin(4*x).']; % tři sloupce plot(x.',y) legend('sin(x)','sin(2x)','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:2*pi; Y = [sin(x); sin(2*x); sin(4*x)]; % tři řádky plot(x,y) legend('sin(x)','sin(2x)','sin(4x)')

Příklad: Vykreslení grafů funkcí y 1 = sin(x)/x, y 2 = sin 2 (x), y 3 = cos(x 2 ). function nekolik_grafu(a) x = a.'; % sloupcový vektor x (transponovaný a) y1 = sin(x)./x; % jeden sloupcový vektor y23 = [sin(x).^2,cos(x.^2)]; % dva sloupce plot(x,y1,x,y23) legend('sin(x)/x','sin^2(x)','cos(x^2)','location','southeast') end Volání funkce pro x od 0 do 4π : x = [0:0.01:2*pi]; nekolik_grafu(x)

Příklad: Vykreslení grafů funkcí y 1 = sin(x)/x, y 2 = sin 2 (x), y 3 = cos(x 2 ). function nekolik_grafu(a) x = a.'; % sloupcový vektor x (transponovaný a) y1 = sin(x)./x; % jeden sloupcový vektor y23 = [sin(x).^2,cos(x.^2)]; % dva sloupce plot(x,y1,x,y23) legend('sin(x)/x','sin^2(x)','cos(x^2)','location','southeast') end legend('krivka1', 'krivka2','location','south') parametrem 'Location' lze nastavit polohu (umístění) legendy podle světových stran, (např. 'SouthEast' jihovýchod vpravo dole), pokud umístění legendy není nastaveno, je na severovýchodě (vpravo nahoře) Volání funkce pro x od 0 do 4π : x = [0:0.01:2*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 2,y 2 ) osa pro graf y 1 vlevo, osa pro graf y 2 vpravo Příklad: Vykreslení grafů funkcí y 1 = sin(x), y 2 = 100cos(x) x=[0:0.01:4*pi]; y1=sin(x); y2=100*cos(x); plotyy(x,y1,x,y2) legend('y_1','y_2')

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,2] compass([-5,6],[5,2]) nebo jiným způsobem: a = [-5,5]; b = [6,2]; compass([a(1),b(1)],[a(2),b(2)]) 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 Příklad: graf v polárních souřadnicích r = sin(4φ) cos(4φ), kde φ je z intervalu od 0 do 2π. fi = 0:0.01:2*pi; y = sin(4.*fi).*cos(4.*fi); polar(fi, y, 'r')

polar(uhel,velikost,s) graf v polárních souřadnicích Příklad: 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/12, φ z intervalu od 0 do 12 π. phi = 0:0.1:12*pi; r = exp((1/12)*phi); polar(phi,r,'m')

Pozn.: užitečná funkce pol2cart převod souřadnic polárních na kartézské [x,y] = pol2cart(uhel, vzdálenost_od_počátku); Pokračování příkladu: graf logaritmické spirály z předchozího příkladu r = a e mφ, kde a = 1, m = 1/12, φ je z intervalu od 0 do 12 π, je převeden do kartézských souřadnic a vykreslen příkazem plot. phi = 0:0.1:12*pi; r = exp((1/12)*phi); [x,y]=pol2cart(phi,r); plot(x,y) Naopak: cart2pol převod souřadnic kartézských na polární

Příklad: - graf parametrizované křivky (popsán parametrickými rovnicemi) - t je parametr, na kterém závisí x, y t = 0:.001:2*pi; x = cos(3.*t); y = sin(2.*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

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 2D (plot), parametr S je řetězec, který specifikuje barvu, způsob vykreslení a styl křivky nebo typ značky bodu. Příklad: graf křivky popsané parametrickými rovnicemi: x = t, y = sin(t), z = cos(t), pro t od 0 do 20π. t = [0:0.1:20*pi] plot3(t,sin(t),cos(t),'r') xlabel('x') ylabel('y') zlabel('z')

Příklad: vykreslení úsečky v prostoru z bodu [0, 0, 0] do bodu [1, 2, 3] x=[0,1]; % x-ové souřadnice bodů y=[0,2]; % 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 hold on plot3(0,0,0,'ro','markersize',15,'linewidth',3) plot3(1,2,3,'ro','markersize',15,'linewidth',3) hold off % '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 20π. t = [0:0.1:20*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 20π. t = [0:0.1:20*pi]; plot3(t.*sin(t),t.*cos(t),t,'g')

3D "plošné" grafy 3D plochy a sítě mesh(x,y,z) 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) Příklad: 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)

Příklad: Graf funkce: sin z( x, y) x x 2 2 y pro x, y od -20 do 20 s krokem 0,5. x = -20:0.5:20; y = x; [X,Y] = meshgrid(x,y); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z) y 2 2 Pokud mají x, y stejný rozsah -20 až 20, lze zapsat, např. takto: [X,Y] = meshgrid(-20:0.5:20); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z)

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.

Pokračování příkladu: Graf funkce: sin z( x, y) pro x, y od -2 do 2 s krokem 1. x x 2 2 y y 2 2 [X,Y] = meshgrid(-2:2) Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2) surf(x,y,z) xlabel('x') ylabel('y') zlabel('z') Za příkazy nejsou středníky, vypíší se matice X, Y, Z Y = -2-2 -2-2 -2-1 -1-1 -1-1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 X = -2-1 0 1 2-2 -1 0 1 2-2 -1 0 1 2-2 -1 0 1 2-2 -1 0 1 2 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

Pokračování příkladu: Graf funkce: sin z( x, y) x x 2 2 y y 2 2 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.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z) pro x od -20 do 20 a y od -40 do 40 [X,Y] = meshgrid(-20:0.5:20,-40:0.5:40); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z)

Pokračování příkladu: Graf funkce: sin z( x, y) x x 2 2 y y 2 2 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.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z) pro x od -20 do 20 a y od -40 do 40 [X,Y] = meshgrid(-20:0.5:20,-40:0.5:40); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z)

Příklad: 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 mesh(x,y,z) colorbar Elapsed time is 0.05995 seconds. colorbar doplní barevnou stupnici (škálu)

Příklad: 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)); end end toc mesh(x,y,z) 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), není to povinný parametr, 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

mesh(), surf() lze použít pro zobrazení stejné funkce Příklad: Graf funkce z = cos(x 2 + y 2 ) pro x, y od π/2 do π/2 a jeho vrstevnice. [X,Y] = meshgrid(-pi/2:0.1:pi/2); Z = cos(x.^2+y.^2); subplot(2,2,1) mesh(x,y,z) subplot(2,2,2) surf(x,y,z) subplot(2,2,3) contour(x,y,z) subplot(2,2,4) contourf(x,y,z)

Příklad: Graf funkce z = cos(x 2 + y 2 ) pro x, y od -1 do 1 s krokem 0.2 a vykreslení vrstevnic ke grafu [X,Y] = meshgrid(-1:0.2:1); Z = cos(x.^2+y.^2); [C,h]=contour(X,Y,Z); clabel(c,h); contour() - vrstevnice grafu clabel() - popisky vrstevnic

Příklad: Vrstevnice grafu funkce z = cos(x 2 + 0.5y 2 ) pro x, y od -10 do 10 x=[-10:0.5:10]; y=x; [X,Y]=meshgrid(x,y); Z=X.^2+0.5*Y.^2; subplot(2,2,1) contour(x,y,z) colorbar subplot(2,2,2) contourf(x,y,z) colorbar subplot(2,2,3) contour(x,y,z,30) colorbar subplot(2,2,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.)

Příklad:Graf funkce: z 1 = cos(x 2 +y 2 ) a funkce z 2 = cos(x 2 +y 2 ) 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.^2+Y.^2); subplot(2,2,1) mesh(x,y,z) subplot(2,2,3) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) hold on contour(x,y,z) hold off Z2=-cos(X.^2+Y.^2); subplot(2,2,2) mesh(x,y,z2) subplot(2,2,4) [GX2,GY2]=gradient(Z2); quiver(x,y,gx2,gy2) hold on contour(x,y,z2) hold off

Příklad:Graf funkce: z 1 = cos(x 2 +y 2 ) a funkce z 2 = cos(x 2 +y 2 ) 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.^2+Y.^2); subplot(2,2,1) mesh(x,y,z) subplot(2,2,3) [GX,GY]=gradient(Z); quiver(x,y,gx,gy) hold on contour(x,y,z) hold off Z2=-cos(X.^2+Y.^2); subplot(2,2,2) mesh(x,y,z2) Krok tentokrát zvolen větší, aby byly dobře vidět šipky vyjadřující gradient. subplot(2,2,4) [GX2,GY2]=gradient(Z2); quiver(x,y,gx2,gy2) hold on contour(x,y,z2) hold off

Příklad: Graf funkce: z( x, y) sin x x 2 2 y [X,Y] = meshgrid(-7:0.5:7); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z) figure % nové grafické okno [Px,Py] = gradient(z,.5,.5); quiver(x,y,px,py); y 2 2 a vykreslení jejího gradientu pro x, y od -7 do 7 s krokem 0,5.

Příklad: Graf funkce: z( x, y) sin [X,Y] = meshgrid(-7:0.5:7); Z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z) figure % nové grafické okno [Px,Py] = gradient(z,.5,.5); quiver(x,y,px,py); x x 2 2 y y 2 2 gradient je vykreslen s krokem podle kroku X a Y a vykreslení jejího gradientu pro x, y od -7 do 7 s krokem 0,5. 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.

Příklad: Graf funkce z = cos(x 2 + y 2 ) pro x, y od -1 do 1 a vykreslení normál k povrchu funkce [X,Y] = meshgrid(-1:0.2:1); Z = cos(x.^2+y.^2); mesh(x,y,z) [NX,NY,NZ] = surfnorm(x,y,z); hold on quiver3(x,y,z,nx,ny,nz) hold off 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 hold on / off Příklad: Graf funkce z = cos(x 2 + y 2 ) pro x, y od π/2 do π/2 a jeho 3D vrstevnice. [X,Y] = meshgrid(-pi/2:0.1:pi/2); Z = cos(x.^2+y.^2); subplot(2,1,1) contour3(x,y,z) subplot(2,1,2) mesh(x,y,z) hold on contour3(x,y,z,'k') hold off

- 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 ) Příklad: Graf funkce z = - cos(x 2 + y 2 ) pro x, y od π/2 do π/2 [X,Y] = meshgrid(-pi/2:0.1:pi/2); Z = -cos(x.^2+y.^2); surfc(x,y,z) surfl(x,y,z)

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 Příklad: Graf funkce z = cos(x 2 + y 2 ) pro x, y od π/2 do π/2 [X,Y] = meshgrid(-pi/2:0.1:pi/2); Z = cos(x.^2+y.^2); 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

Příklad: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 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,20,30,5]; subplot(2,2,1) pie(pecivo) subplot(2,2,2) pie(pecivo,{'rohliky',... % tři tečky pokračování na další řádce 'bagety','koblihy','ostatni'}) subplot(2,2,3) ex=[0,1,0,0]; pie(pecivo,ex) subplot(2,2,4) pie(pecivo,[1,1,1,1],... {'rohliky','bagety','koblihy','ostatni'})

Příklad: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 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,20,30,5]; subplot(2,2,1) pie(pecivo) subplot(2,2,2) pie(pecivo,{'rohliky',... 'bagety','koblihy','ostatni'}) subplot(2,2,3) ex=[0,1,0,0]; pie(pecivo,ex) subplot(2,2,4) pie(pecivo,[1,1,1,1],... {'rohliky','bagety','koblihy','ostatni'})

Pokračování příkladu: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 baget, 30 koblih a 5 kusů ostatního pečiva. Vykreslete rovněž toto prodané pečivo ve formě sloupcového grafu pecivo = [10,20,30,5]; bar(pecivo)

Příklad: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 baget, 30 koblih a 5 kusů ostatního pečiva, ve druhé prodejně bylo prodáno za stejnou dobu prodáno 8 rohlíků, 12 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 20 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,20,30,5; 8,12,4,15; 20,4,7,5] subplot(1,2,1) bar(prodejna,'stacked') legend('rohliky','bagety','koblihy','ostatni') subplot(1,2,2) bar(prodejna,'grouped') legend('rohliky','bagety','koblihy','ostatni')

Příklad: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 baget, 30 koblih a 5 kusů ostatního pečiva, ve druhé prodejně bylo prodáno za stejnou dobu prodáno 8 rohlíků, 12 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 20 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,20,30,5; 8,12,4,15; 20,4,7,5] subplot(1,2,1) bar(prodejna,'stacked') legend('rohliky','bagety','koblihy','ostatni') subplot(1,2,2) bar(prodejna,'grouped') legend('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], [2,0], a další viz help

stairs "schodový" graf Příklady: V bufetu bylo za 15 minut prodáno 10 rohlíků, 20 baget, 30 koblih a 5 kusů ostatního pečiva. Vykreslete rovněž toto prodané pečivo ve formě schodového grafu pecivo = [10,20,30,5,0]; stairs(pecivo) Zobrazení funkce sin(x) x = linspace(-2*pi,2*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 Příklady: a=rand(1,1000).*10; hist(a)

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) x = -5:0.1:5; y = randn(1000,1); hist(y,x)

rose úhlový histogram Příklad: uhel = rand(1,500).*2.*pi; rose(uhel) Prvky vektoru uhel musí být zadány v radiánech.