1
Obsah 1. MATLAB......................................................................................................................2 1.1 Hlavní kategorie MATLABských funkcí ................................................................................... 3 1.2 Aritmetické operátory a některé speciální znaky...................................................................... 3 1.3 Základní elementární funkce MATLABu.................................................................................. 4 1.3.1 Trigonometrické ...................................................................................................................... 4 1.3.2 Exponenciální.......................................................................................................................... 5 1.3.3 Pro komplexní čísla................................................................................................................. 5 1.3.4 Numerické ............................................................................................................................... 5
2. MATLAB jako výpočetní prostředek........................................................................5 2.1 Maticové operace.......................................................................................................................... 5 2.2 Operace s vektory......................................................................................................................... 8 2.3 Analýza dat ................................................................................................................................... 8 2.4 Operace s polynomy ..................................................................................................................... 8 2.5 Operace s funkcemi ...................................................................................................................... 9
3. Matlab jako nástroj grafické prezentace ................................................................10 3.1 Funkce pro snadné kreslení grafů ve 2D a 3D......................................................................... 10 3.2 Dvoudimenzionální grafy – 2D grafika .................................................................................... 13 3.2.1 Elementární funkce pro kreslení grafů ve 2D ....................................................................... 13 3.2.2 Speciální funkce pro kreslení grafů ve 2D ............................................................................ 15 3.2.3 Popis grafu ve 2D .................................................................................................................. 15 3.3 Třídimenzionální grafy – 3D grafika........................................................................................ 16 3.3.1 Elementární funkce pro kreslení grafů ve 3D ....................................................................... 16 3.3.2 Speciální funkce pro kreslení grafů ve 3D ............................................................................ 18 3.3.3Vizualizace souborů dat ......................................................................................................... 19 3.3.4 Grafické doplňky................................................................................................................... 20 3.3.5 Popis grafu ve 3D .................................................................................................................. 25 3.3.6 Modelování geometrických těles........................................................................................... 25 3.4 Znázornění kvadratických ploch .............................................................................................. 26 3.5 Znázornění rovinných a prostorových oblastí......................................................................... 28
4. Dodatky.......................................................................................................................29 4.1 Užitečné klávesové zkratky: ...................................................................................................... 29 4.2 Užitečné příkazy ......................................................................................................................... 29 4.3 Derivace a integrace v symbolice .............................................................................................. 29
2
1. MATLAB MATLAB poskytuje svým uživatelům nejen mocné grafické a výpočetní nástroje, ale i rozsáhlé knihovny funkcí spolu s výkonným programovacím jazykem čtvrté generace. Knihovny jsou svým rozsahem využitelné prakticky ve všech oblastech lidské činnosti. Za nejsilnější stránku MATLABu je považováno mimořádně rychlé výpočetní jádro s optimálními algoritmy, které jsou prověřeny léty provozu na špičkových pracovištích po celém světě. MATLAB byl implementován na všech významnějších platformách. MATLAB nabízí rychlé výpočetní jádro, podporu vícerozměrných polí a uživatelsky definovaných datových struktur, otevřený a rozšiřitelný systém, působivou 2D a 3D grafiku, množství aplikačních knihoven, programovací jazyk 4. generace, objektové programování, interaktivní nástroje pro tvorbu grafického uživatelského rozhraní (GUI builder), rozšířenou podporu řídkých matic, pohodlnou práci se soubory různých formátů, integrované prostředí pro ladění programů (debugger), zvukový vstup a výstup, animaci, výpočetní jádro pro programy psané ve Fortranu a jazyce C a rozsáhlou tištěnou i hypertextovou on-line dokumentaci. Jádrem programu jsou algoritmy pro operace s maticemi komplexních čísel. MATLAB umožňuje provádět všechny běžné operace jako násobení, inverze, determinant atd. a v nejjednodušší podobě je možno jej použít jako maticový kalkulátor, protože všechny tyto operace se zapisují téměř tak, jako bychom je psali na papíře. Kromě datových typů jednodušších než tradiční matice podporuje MATLAB také typy složitější, jako jsou např. vícerozměrná pole reálných nebo komplexních čísel. Dalším datovým typem jsou tzv. pole buněk, tedy struktury podobné maticím, ve kterých ovšem každý prvek může být jiného typu. Podobně lze tvořit datové struktury, kde jsou prvky rozlišeny ne souřadnicemi, ale jménem, takže připomínají struktury známé z běžných programovacích jazyků. Skládáním těchto datových typů je pak možné vytvořit libovolně složité datové struktury. MATLAB ukládá všechna čísla v tzv. dvojité přesnosti, ovšem na přání uživatele je možné zvolit úspornější formu. Vektor reálných čísel může v MATLABu reprezentovat i polynom a operace s polynomy jsou v programu rovněž obsaženy. Vektory mohou také reprezentovat časové řady nebo signály a MATLAB obsahuje funkce pro jejich analýzu, jako hledání extrémů, výpočet střední hodnoty, směrodatné odchylky a korelačních koeficientů nebo rychlou Fourierovu transformaci. MATLAB také podporuje speciální formát uložení tzv. řídkých matic, které jsou rozměrem velké, ale obsahují většinu nulových prvků. MATLAB přidává možnost definovat k datovým strukturám funkce, které s nimi pracují. Tyto objekty obohacují výpočetní prostředí MATLABu o prostředky obecných programovacích jazyků a posouvají tak jeho možnosti na úroveň například C++. Spojení objektově orientovaného jazyka s ověřenou matematickou a grafickou silou vytváří z MATLABu bezkonkurenčně ucelený výpočetní systém. Grafika v MATLABu umožňuje snadné zobrazení a prezentaci získaných výsledků. Je možné vykreslit různé druhy grafů: dvourozměrné, třírozměrné, histogramy, apod. MATLAB také umožňuje otevřít více oken pro zobrazení grafů najednou nebo zobrazit více grafů v jednom okně. Pro pokročilé uživatele je určeno stínování třírozměrných grafů s určením zdroje dopadajícího světla, animace třírozměrných grafů, zobrazení kontur a mnoho dalších grafických funkcí. Většinu těchto efektů je možné docílit jedním nebo několika málo příkazy a jejich vykreslení je rychlé díky použitému algoritmu Z-buffer. Obrázky v grafických oknech MATLABu navíc nejsou statické – každý již nakreslený objekt má přiřazen identifikátor, jehož prostřednictvím je možné měnit vlastnosti objektu a tím i jeho vzhled. Tento grafický systém, nazvaný Handle Graphics, umožňuje vytvořit v okně také ovládací prvky (tlačítka apod.) a vytvořit tak graficky ovládané uživatelské rozhraní. Samozřejmě je k dispozici nástroj pro vytvoření uživatelského rozhraní interaktivně, bez nutnosti programování. MATLAB dále podstatně rozšiřuje možnosti práce s trojrozměrnými objekty včetně nových technik násvitu, stínování a perspektivních zobrazení objektů. Vysoká kvalita zobrazení je zajištěna použitím 24-bitových barev. Vlastností, která patrně nejvíce přispěla k rozšíření MATLABu, je jeho otevřená architektura. MATLAB je úplný programovací jazyk, to znamená, že uživatelé v něm mohou vytvářet funkce „šité
3 na míru“ pro jejich aplikace. Tyto funkce se způsobem volání nijak neliší od vestavěných funkcí a jsou uloženy v souborech v čitelné formě. Dokonce většina funkcí s MATLABem dodávaných je takto vytvořena a opravdu vestavěné jsou jen funkce základní. To má dvě velké výhody: jazyk MATLABu je téměř neomezeně rozšiřitelný a kromě toho se uživatel může při psaní vlastních funkcí poučit z algoritmů s programem dodávaných. Navíc jsou takto koncipované funkce snadno přenosné mezi různými platformami, na kterých je MATLAB implementován. MATLAB poskytuje 24 hlavních kategorií funkcí. Některé MATLABské funkce jsou obsaženy uvnitř interpreteru, zatímco jiné jsou ve formě M-files (M-souborů). M-files obsahují pouze pomocný text, jsou organizovány do 24 adresářů, z nichž každý obsahuje soubory sdružené s kategorií.
1.1 Hlavní kategorie MATLABských funkcí audio datafun datatypes demos elfun elmat funfun general graph2d graph3d graphics iofun lang matfun ops polyfun sparfun specfun specgraph strfun timefun uitools verctrl winfun
podpora zvuku analýza dat a Fourierova transformace datové typy a struktury příklady a demonstrace elementární matematické funkce elementární matice a manipulace s maticemi funkce pro práci s funkcemi a ODE řešení funkce k obecnému použití dvoudimenzionální (2-D) grafika třídimenzionální (3-D)grafika ovládání grafiky soubory vstupu/výstupu konstrukce programovacího jazyka maticové funkce – numerická lineární algebra operátory a speciální znaky interpolace a polynomy řídké matice speciální matematické funkce speciální grafy znakové řetězce čas a datum nástroje grafického uživatelského rozhraní řízení verze soubory rozhraní operačního systému Windows (DDE/ActiveX)
V adresáři Matlab6p1\Toolbox\Matlab je uloženo 24 hlavních adresářů, ve kterých jsou jednotlivé příkazy a funkce programu MATLAB. Po spuštění například příkazu help audio, získáme všechny příkazy a funkce sdružené v adresáři audio. Abychom získali podrobný popis jednotlivého příkazu (například colormap), nebo funkce, pak spouštíme příkaz help colormap. Jestliže chceme průvodce MATLABem, pak spustíme příkaz intro, a jestliže si chceme prohlédnout demonstrační příklady, pak zadáme příkaz demo.
1.2 Aritmetické operátory a některé speciální znaky + + – – * .* ^ .^
plus unární plus minus unární minus násobení matic násobení polí; tj. prvků matic umocnění matic umocnění polí
4 \ / .\ ./ kron : ( ) [ ] { } . . .. ... , ; % ! = ‚ .‘
zpětné lomítko nebo dělení matic zleva lomítko nebo dělení matic zprava dělení polí zleva dělení polí zprava kroneckerův tenzorový součin dvojtečka kulaté závorky a indexování hranaté závorky složené závorky a indexování desetinná tečka přístup k strukturnímu poli nadřazený adresář pokračování čárka, separátor středník poznámka vykřičník; dovolává se příkazu operačního systému přiřazení uvozovky transpozice
atd. Nebudeme probírat všechny MATLABské příkazy a funkce, ale zaměříme se na ty nejzákladnější a ty, které souvisí s výukou předmětu Matematika I a II. Přitom text, který je psán v programu MATLAB a výstupy z tohoto programu budou psány písmem Courier New, názvy M-filů budou psány kurzívou.
1.3 Základní elementární funkce MATLABu 1.3.1 Trigonometrické Funkce sin sinh asin asinh cos cosh acos acosh tan tanh atan atan2 atanh sec sech asec asech csc csch acsc acsch
Název funkce sinus hyperbolický sinus arkussinus argument hyperbolického sinu kosinus hyperbolický kosinus arkuskosinus argument hyperbolického kosinu tangens hyperbolický tangens arkustangens čtyř-kvadrantový arkustangens argument hyperbolické tangenty sekans hyperbolický sekans arkussekans argument hyperbolické sekanty kosekans hyperbolický kosekans arkuskosekans argument hyperbolické kosekanty
Příkaz MATLABU sin(3) sinh(3) asin(0.9) asinh(0.4) cos(3) cosh(3) acos(0.4) acosh(2) tan(3) tanh(3) atan(4) atan2(1.1,1) atanh(5) sec(3) sech(3) asec(5) asech(8) csc(3) csch(3) acsc(5) acsch(4)
Výstup MATLABU 0.1411 10.0179 1.1198 0.3900 -0.9900 10.0677 1.1593 1.3170 -0.1425 0.9951 1.3258 0.8330 0.2027+1.5708i -1.0101 0.0993 1.3694 0 + 1.4455i 7.0862 0.0998 0.2014 0.2475
5 cot coth acot acoth
kotangens hyperbolický kotangens arkuskotangens argument hyperbolické kotangenty
cot(3) coth(3) acot(3) acoth(7)
-7.0153 1.0050 0.3218 0.1438
Příkaz MATLABU exp(8) log(9.8) log10(10) log2(16) pow2(3) sqrt(16)
Výstup MATLABU 2.9810e+003 2.2824 1 4 8 4
1.3.2 Exponenciální Funkce exp log log10 log2 pow2 sqrt atd.
Název funkce exponenciální funkce přirozený logaritmus dekadický logaritmus logaritmus o základu dvě mocnina o základu dvě druhá odmocnina
1.3.3 Pro komplexní čísla Funkce abs angle complex conj imag real atd.
Název funkce absolutní hodnota argument komplexního čísla (fázový úhel) sestrojí komplexní číslo z reálné a imaginární části komplexně sdružené číslo imaginární část komplexního čísla reálná část komplexního čísla
Příkaz MATLABU abs(-2+3i) angle(-2+3i)
Výstup MATLABU 3.6056 2.1588
complex(-2,3)
-2.0000+3.0000i
conj(-2+3i) imag(-2+3i) real(-2+3i)
-2.0000–3.0000i 3 -2
1.3.4 Numerické Funkce fix floor ceil round mod rem sign
Název funkce převede na celé číslo tak, že odřízne desetinnou část zaokrouhlí dolů na nejbližší nižší celé číslo zaokrouhlí nahoru na nejbližší vyšší celé číslo zaokrouhlí na celé číslo běžným způsobem modul (znaménko zbytku po celočíselném dělení) zbytek po celočíselném dělení funkce signum (znaménko funkce)
2. MATLAB jako výpočetní prostředek 2.1 Maticové operace Matice může být do MATLABu zavedena několika způsoby: • napsána jako seznam prvků, • vygenerována příkazem nebo funkcí, • vytvořena v souboru lokálním editorem a načtena, • načtena z externího datového souboru nebo aplikace.
Příkaz MATLABU fix(-5.16) floor(-5.16) ceil(-5.16) round(-5.16) mod(7,-2) rem(7,2) sign(-5.16)
Výstup MATLABU -5 -6 -5 -5 -1 1 -1
6 Jazyk MATLABu neobsahuje žádný příkaz pro nastavení dimenze nebo typu matice. Potřebnou paměť alokuje MATLAB automaticky až do velikosti využitelné na konkrétním počítači. Příkaz MATLABU Výstup MATLABU Popis funkce A=[1,1,1;3,1,-1;1,-2,4] 1 1 1 Naplnění matice 1 −1
3
Transponovaná matice
A'
Vyjmutí diagonály z matice
A=[1,1,1;3,1,-1;1,-2,4]; diag(A)
Vložení prvků do hlavní diagonály a vynulování ostatních Vyjmutí dolní trojúhelníkové matice
blkdiag(2,7,4)
Vyjmutí horní trojúhelníkové matice
triu(A)
Zrcadlení matice ve směru zleva doprava
fliplr(A)
1 −2
4
1
3
1
1
1 −2
1 −1 4 1 1 4 2 0 0 0 7 0 0 0 4
tril(A)
1
0 0
3 1 0 1 −1 4 1 1
1
0 1 −1 0 0 4 1 −1
1 1 1 3
4 −2 1
Zrcadlení matice ve směru shora dolů
flipud(A)
Zrcadlení matice podle dimenze d = 1 ⇒ flipud d = 2 ⇒ fliplr
flipdim(A,1)
1 −2 3 1
1 −1 1 1
1 −2 3 1
4
4
1 −1 1 1
flipdim(A,2)
1 1 1 −1 1 3 4 −2 1
Třídění podle řádků (vzestupně)
sortrows(A)
1 −2 4 1 1 1 3 1 −1
Rotace matice o 90 stupňů
rot90(A)
Součet diagonálních prvků Determinant matice Ortogonální matice
trace(A) det(A) orth(A)
1 −1 4 1 1 −2 1 3 1 6 -18
Inverzní matice
inv(A)
Hodnost matice
rank(A)
0.1157 0.3749 −0.9198 − 0.2304 0.9109 0.3423 0.9662 0.1723 0.1918 0.3333 0.1111 −0.1111 0.7222 − 0.1667 − 0.2222 0.3889 − 0.1667 0.1111 3
7 Číslo podmíněnosti matice Norma matice
cond(A) norm(A) norm(A,2) norm(A,1) norm(A,inf) norm(A,'fro')
4.1890 4.6984 4.6984 6 7 5.9161
Sloupcová norma matice Řádková norma matice Frobeniova (Eukleidovská) norma matice normest(A) Odhad 2 normy matice Charakteristický polynom poly(A) A^3 Umocnění matice An 3 A =A*A*A
4.6984 1.0 -6.0
3.0
9
−3 21
21
15 − 9
18.0
− 9 − 48 84
Matice s exponenciálními prvky k matici A
exp(A)
Exponenciální matice
expm(A)
2.7183 2.7183
2.7183
20.0855 2.7183 0.3679 2.7183 0.1353 54.5982 −6.3899 20.4593
6.0161
14.3918 12.7284 − 7.0347 − 13.1022 − 47.6310 80.8187
Matice s logaritmickými prvky k matici A
log(A)
Logaritmická matice
logm(A)
Druhá odmocnina prvků matice A
sqrt(A)
Druhá odmocnina matice
sqrtm(A)
Funkční operace s maticí
0 1.0986 0
0
0 0 + 3.1416i 1.3863
0 0.6931 + 3.1416i
0.7285 + 1.3439 i 0.1518 − 0.9221 i 0.2184 − 0.4218 i 0.5386 − 2.1410 i 0.7451 + 1.4690 i − 0.1851 + 0.6720 i 0.1352 − 1.0472 i − 0.4534 + 0.7185 i 1.4168 + 0.3287 i
1.0000
1.0000
1.0000
1.7321 1.0000
1.0000 0 + 1.4142 i
0 + 1.0000 i 2.0000
0.9572 + 0.5011 i 0.4343 − 0.3438 i 0.3406 − 0.1573 i 1.1857 − 0.7983 i 0.9338 + 0.5478 i − 0.3874 + 0.2506 i 0.4577 − 0.3905 i − 0.6577 + 0.2679 i 1.9321 + 0.1226 i funm(A,@sin) −0.2363 0.5530 −0.1756
0.7482 − 0.4184 − 0.1887 0.7351 0.5333 − 1.1273
Sčítání matic A + B
A=[1,1,1;3,1,-1;1,-2,4]; B=[3,3,3;4,2,5;1,5,7]; A+B
4 4 4 7 3 4 2 3 11
Odčítání matic A – B
A=[1,1,1;3,1,-1;1,-2,4]; B=[3,3,3;4,2,5;1,5,7]; A-B
−2 −2 −2 −1 −1 −6 0 −7 −3
Násobení matic A * B
A=[1,1,1;3,1,-1;1,-2,4]; B=[3,3,3;4,2,5;1,5,7]; A*B
8 12 −1 1 1 1 −13 4 14
Řešení systému lineárních A=[1,1,1;3,1,-1;1,-2,4]; B=[3;3;3]; rovnic AX = B Nalezení matice X tak, aby platilo AX = B
A\B A=[-1,4,-2;2,3,1;3,3,2]; B=[1,-1;0,-1;1,0]; inv(A)*B
10 15 6 7 19 21
−11 3 12
8
2.2 Operace s vektory Popis funkce Zadání vektorů Velikost (norma) vektoru Sčítání vektorů Odčítání vektorů Skalární součin vektorů Vektorový součin vektorů
Příkaz MATLABU u=[1,2,3];v=[2,-1,2]; norm(u) u+v u-v dot(u,v) cross(u,v)
Výstup MATLABU
3.7417 3 1 5 -1 3 1 6 7 4 -5
2.3 Analýza dat Popis funkce Zadání dat Setřídění dat Součet dat Součin dat Nalezení minima Nalezení maxima Nalezení mediánu Aritmetický průměr Směrodatná odchylka Rozptyl Numerická integrace lichoběžník. metodou Kumulativní součet elementů Kumulativní součin elementů Kumulativní numer. integrace lich. met. Gradient Diference funkce a aproximace derivace Korelační koeficient Kovariance Největší společný dělitel dvou čísel Nejmenší společný násobek dvou čísel
Příkaz MATLABU d=[-2,-1,5,0,3,2,4,2,5,6] sort(d) sum(d) prod(d) min(d) max(d) median(d) mean(d) std(d) var(d) trapz(d)
Výstup MATLABU -2 –1 5 0 3 2 4 2 5 6 -2 –1 0 2 2 3 4 5 5 6 24 0 -2 6 2.5 2.4 2.7162 7.3778 22
cumsum(d)
-2 –3 2 2 5 7 11 13 18 24
cumprod(d)
-2 2 10 0 0 0 0 0 0 0
cumtrapz(d)
0 -1.5 0.5 3 4.5 7 10 13 16.5 22
gradient(d) diff(d)
1 3.5 0.5 –1 1 0.5 0 0.5 2 1 1 6 -5 3 -1 2 -2 3 1
corrcoef(d) cov(d) gcd(36,135)
1 7.3778 9
lcm(26,65)
130
2.4 Operace s polynomy Popis funkce Zadání polynomu p = x2 + 5x + 6 Výpočet hodnoty polynomu pro x = 3 Sčítání polynomů p + q, kde q = x – 3 Násobení polynomů p * q Dělení polynomů p / q Nalezení kořenů polynomu p Derivace polynomu p Integrace polynomu analyticky
Příkaz MATLABU p=[1,5,6] polyval(p,3) q=[0,1,-3];p+q conv(p,q) q=[1,3];deconv(p,q) roots(p) polyder(p) polyint(p)
Výstup MATLABU 1 5 6 30 1 6 3 0 1 2 -9 -18 1 2 -3 -2 2 5 0.3333 2.5 6 0
9 Vytvoření polynomu s danými kořeny 2, 3 Nalezne koeficienty polynomu n-tého stupně aproximující data (x, y) (nejmenší čtverce) B( x) Rozklad racionální lomené funkce A( x) na parciální zlomky 5x + 1 3 2 = + +0 2 x + x − 2 x + 2 x −1
k=[2,3];poly(k) x=[0,1,2]; y=[0,6,9]; polyfit(x,y,2)
1 -5 6 -1.5 7.5
B=[5,1]; A=[1,1,-2]; [r,p,k]=residue(B,A)
r = 3 2 p =-2 1 k =[]
-0.0
2.5 Operace s funkcemi a) Zadání elementární funkce – jsou zde již vytvořené, například sin(x), cos(x) atd. b) Vytvoření nové funkce – Je nutné na disku vytvořit soubor například fce.m, který tvoří předpis pro výpočet funkčních hodnot nové funkce s názvem fce. Vytvoříme funkci jedné proměnné kvad, pomocí kvad.m, která bude definována takto: y = (x – 0,1)2 + 1. Pak vytvoříme funkci jedné proměnné kv, pomocí kv.m, která bude definována takto: y = – (x – 3)2 + 2 a nakonec funkci dvou proměnných fce, pomocí fce.m, která bude definována takto: z = x3 – 3xy + y3. Soubor kvad.m obsahuje tento text:
function[u]=fce(x); u=(x-0.1).^2+1;
Soubor kv.m obsahuje tento text:
function[u]=fce(x); u=-(x-3).^2+2;
Soubor fce.m obsahuje tento text
function[z]=fce(x,y); z=x.^3-3.*x.*y+y.^3;
c) Nalezení minima funkce jedné proměnné – příkaz fminbnd (fun,x1,x2), fminsearch (fun,x1), Nelder-Mead metoda, kde fun je funkce buď elementární, nebo předem vytvořená příkazem function, nebo přímo pomocí funkčního předpisu, x1 je dolní hranice intervalu a x2 horní hranice intervalu, ve kterém hledáme minimum. Výsledkem je x-ová souřadnice minima. Pro výpočet funkční hodnoty pak použijeme příkaz function(x) Příklady: fminbnd('sin',-1,1) Výsledkem je –1 a sin(–1) pak dává hodnotu -0.8415. fminbnd('kvad',-3,3) fminbnd('x.^2-2*sqrt(2).*x+9',-3,3) fminsearch('sin',-1) fminsearch('kvad',-3) fminsearch('x.^2-2*sqrt(2).*x+9',-3)
Výsledkem je 0.1 a kvad(0.1) pak dává hodnotu 1. Výsledkem je 1.4142. Výsledkem je -1.5708 a sin(–1.5708) pak dává hodnotu -1.0000. Výsledkem je 0.1 a kvad(0.1) pak dává hodnotu 1. Výsledkem je 1.4142.
d) Nalezení nulových bodů funkce jedné proměnné – příkaz fzero (fun,x0), kde fun je funkce buď elementární, nebo předem vytvořená příkazem function, nebo přímo pomocí funkčního předpisu, x0 je dolní hranice intervalu, od kterého se má nalézt nulový bod. Výsledkem je x-ová souřadnice nulového bodu. Výsledkem je 3.1416. Příklady: fzero('sin',2) fzero('kv',-4) Výsledkem je 1.5858. fzero('-(x-3).^2+2',-4) Výsledkem je 1.5858.
10 e) Numerický výpočet určitého integrálu – příkaz quad (fun,a,b), quadl (fun,a,b),výpočet vyššími metodami, kde fun je funkce buď elementární, nebo předem vytvořená příkazem function, nebo přímo pomocí funkčního předpisu, a, b jsou dolní a horní mez určitého integrálu. Příklady: quad('sin',0,1) Výsledkem je hodnota 0.4597. quad('kv',1,5) Výsledkem je hodnota 2.6667. quad('-(x-3).^2+2',1,5) Výsledkem je hodnota 2.6667. quadl('sin',0,1) Výsledkem je hodnota 0.4597. quadl('kv',1,5) Výsledkem je hodnota 2.6667. quadl('-(x-3).^2+2',1,5) Výsledkem je hodnota 2.6667. f) Numerický výpočet dvojného integrálu – příkaz dblquad(fun,xmin,xmax,ymin,ymax), kde fun je funkce buď elementární, nebo předem vytvořená příkazem function, nebo přímo pomocí funkčního předpisu, a xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y. Příklady: dblquad('sinx+cosy',0,pi/2,0,pi/2) Výsledkem je hodnota 3.8758. dblquad('fce',0,1,0,2) Výsledkem je hodnota 1.5 . dblquad('x.^3-3.*x.*y+y.^3',0,1,0,2) Výsledkem je hodnota 1.5 . g) Řešení diferenciální rovnice – příkaz [t,x] = ode45 (odefun,tspan,x0), kde tspan = [t0 tfinal] [t,x] = ode23 (odefun,tspan,x0), kde tspan = [t0 tfinal] kde odefun je předem vytvořená diferenciální rovnice, t0 je startovací a tfinal je koncová hodnota a x0 je vektor, který představuje počáteční podmínky. Obě funkce používají Metodu Runge-Kutta, funkce ode23 pracuje jednoduššími metodami. Příklady: t0=0;tf=20;x0=[1,2.72]; tspan=[t0 tf];[t,x]=ode45('dif',tspan,x0);plot(t,x)
Soubor dif.m obsahuje tento text: function u=dif(t,x); u=exp(t)+x;
Výsledkem je graf funkce, která je řešením této diferenciální rovnice. nebo t0=0;tf=20;x0=[1,2.72]; tspan=[t0 tf];[t,x]=ode23('dif',tspan,x0);plot(t,x);
Výsledkem je graf funkce, která je řešením této diferenciální rovnice jednoduššími metodami.
3. Matlab jako nástroj grafické prezentace 3.1 Funkce pro snadné kreslení grafů ve 2D a 3D Syntaxe uvedené u jednotlivých příkazů (funkcí) nevyčerpávají všechny možnosti použití tohoto příkazu (funkce), ale pouze ty nejzákladnější, nebo často používané. Rovněž popis jednotlivých příkazů (funkcí) vyjadřuje pouze jeho základní charakteristiku a je co nejstručnější. Pro získání podrobnějších informací o konkrétním příkazu (funkce) vždy použijte příkaz help, za níž následuje název tohoto příkazu (funkce). a) Graf funkce – příkaz fplot (fun,lims), kde fun je funkce buď elementární, nebo předem vytvořená příkazem function, nebo přímo pomocí funkčního předpisu, a lims je vektor s počátečním a koncovým bodem intervalu (na ose x), ve kterém se má funkce zobrazit. Příklady: fplot('sin',[-3.14 3.14]) fplot('sin',[-3.14 3.14], 'r') fplot('kv',[-10 10]) fplot('kvad',[-10 10]) fplot('x.^2+x-5',[-10 10])
11 Grafické znázornění minima funkce kvad: Grafické znázornění nulových bodů funkce kv: Grafické znázornění integrálu funkce kv:
M-soubor M-soubor M-soubor
minimum.m nulove.m integral.m
b) Snadné kreslení grafu funkce – příkaz ezplot (fun,[a,b]), ezplot(fun, [xmin, xmax, ymin, ymax]), kde fun je funkce zadaná explicitně, a je počáteční a b koncový bod intervalu proměnné x, xmin a xmax je počáteční a koncový bod intervalu proměnné x, ymin a ymax je počáteční a koncový bod intervalu proměnné y. Příklady: ezplot('sin',[-3.14 3.14]) ezplot('kv',[-10 10]) ezplot('-x.*x+4',[-10 10]) ezplot('x.*x+y.*y-4',[-5,5,-5,5])
c) Snadné kreslení parametricky zadané křivky v prostoru – příkaz
ezplot3(x,y,z), ezplot3(x,y,z,[tmin,tmax]), kde x, y, z jsou parametrické rovnice křivky a tmin a tmax jsou meze intervalu pro parametr t, jestliže nejsou uvedeny jde implicitně o interval od 0 do 2π. Příklady: ezplot3('3*cos(t)','3*sin(t)','(2*t)/2*pi') ezplot3('3*cos(t)','3*sin(t)','(2*t)/2*pi',[0,6*pi])
d) Snadné vykreslení grafu v polárních souřadnicích – příkaz
ezpolar(fun), ezpolar(fun,[a,b]), kde fun je funkce parametru t; a, b jsou krajní meze intervalu pro parametr t, jestliže nejsou uvedeny jde implicitně o interval od 0 do 2π. Příklady: ezpolar('3*cos(t)') ezpolar('3*cos(t)',[0,pi/2])
e) Snadné vykreslení vrstevnic grafu – příkaz
ezcontour (fun), ezcontour (fun,[xmin,xmax,ymin,ymax], fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y. Příklady: ezcontour('fce') ezcontour('fce',[0,1,0,2]) ezcontour('x.^2-3.*x.*y+y.^2',[0,1,0,2])
f) Snadné vykreslení vrstevnic grafu s barevně vyplněnými plochami mezi jednotlivými vrstevnicemi – příkaz ezcontourf (fun), ezcontourf (fun,[xmin,xmax,ymin,ymax], fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y. Příklady:
ezcontourf('fce') ezcontourf('fce',[0,1,0,2]) ezcontourf('x.^2-3.*x.*y+y.^2',[0,1,0,2])
g) Snadné vykreslení síťového grafu funkce – příkaz ezmesh (fun), ezmesh (fun,[xmin,xmax,ymin,ymax]), fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y.
12 Příklady:
ezmesh('fce') ezmesh('fce',[0,1,0,2]) ezmesh('x.^2-3.*x.*y+y.^2',[0,1,0,2])
h) Snadné vykreslení síťového (drátového) grafu funkce doplněného o vrstevnice v rovině xy – příkaz ezmeshc (fun), ezmeshc (fun,[xmin,xmax,ymin,ymax], fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y. Příklady:
ezmeshc('fce') ezmeshc('fce',[0,1,0,2]) ezmeshc('x.^2-3.*x.*y+y.^2',[0,1,0,2])
i) Snadné vykreslení grafu s barevně vyplněnými ploškami – příkaz ezsurf (fun), ezsurf (fun,[xmin,xmax,ymin,ymax]), fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y. Příklady: ezsurf('fce') ezsurf('fce',[0,1,0,2]) ezsurf('x.^2-3.*x.*y+y.^2',[0,1,0,2])
j) Snadné vykreslení grafu s barevně vyplněnými ploškami, který je doplněný o vrstevnice v rovině xy – příkaz ezsurfc (fun), ezsurfc (fun,[xmin,xmax,ymin,ymax]), fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro proměnnou x i y. Příklady: ezsurfc('fce') ezsurfc('fce',[0,1,0,2]) ezsurfc('x.^2-3.*x.*y+y.^2',[0,1,0,2])
k) Snadné vykreslení ploch – příkaz ezgraph3(plotfun,fun) ezgraph3(plotfun,fun,[xmin,xmax,ymin,ymax]) ezgraph3(plotfun,x,y,z) ezgraph3(plotfun,x,y,z,[smin,smax,tmin,tmax]) plotfun je předdefinovaná standardní funkce pro kreslení ploch jako například surf, fun je funkce dvou proměnných, xmin, xmax jsou dolní a horní mez pro proměnnou x a ymin, ymax jsou dolní a horní mez pro proměnnou y; x, y, z jsou parametrické rovnice plochy a smin, smax jsou dolní a horní mez pro parametr s a tmin, tmax jsou horní a dolní mez pro parametr t, nejsou-li uvedeny, pak platí implicitní hodnoty od –2π do 2π pro oba parametry. Příklady: ezgraph3('surf','fce') ezgraph3('mesh','fce',[0,1,0,2]) ezgraph3('surfl','x.^2-3.*x.*y+y.^2',[0,1,0,2]) ezgraph3('surf','3.*cos(t).*sin(s)','3.*sin(t).*sin(s)','3.*cos(s)') ezgraph3('surfl','5.*cos(t)','5.*sin(t)','s',[0 pi 0 5])
13
3.2 Dvoudimenzionální grafy – 2D grafika 3.2.1 Elementární funkce pro kreslení grafů ve 2D Následující seznam obsahuje přehled funkcí, které se liší pouze užitím jiné stupnice os. Všechny akceptují vstupní data ve tvaru vektorů nebo matic a automaticky provádějí transformaci os podle rozsahu hodnot vstupních dat. Funkce Popis funkce vytváří graf užitím lineární stupnice pro obě osy plot vytváří graf užitím logaritmické stupnice pro obě osy loglog semilogx vytváří graf užitím logarit. stupnice pro x-ovou osu a lineární stupnice pro y-ovou osu semilogy vytváří graf užitím logarit. stupnice pro y-ovou osu a lineární stupnice pro x-ovou osu vytváří graf v polárních souřadnicích polar vytváří dva grafy do jednoho obrázku a y-ové souřadnice prvního grafu popisuje plotyy vpravo a y-ové souřadnice druhého grafu popisuje vlevo plot – vytváří lineární graf, plot (y); plot (x,y); plot (x,y,s); plot (x1,y1,s1,x2, y2, s2, …), kde y je sloupec y-nových souřadnic (pokud není uvedeno x jsou x jsou přirozená čísla), x je sloupec x-ových souřadnic a s je řetězec 1, 2 nebo 3 znaků, jejichž význam je následující: Symbol y m c r g b w k
Plný název yellow magenta cyan red green blue white black
Barva žlutá fialová světle modrá červená zelená tmavě modrá bílá černá
Symbol : -. --
Typ čáry plná tečkovaná čerchovaná čárkovaná
Symbol . o x + * s d v ^ < > p h
Značka bod kroužek značka x plus hvězdička čtvereček kosočtverec trojúhelník (dolů) trojúhelník (nahoru) trojúhelník (vlevo) trojúhelník (vpravo) pěticípá hvězda šesticípá hvězda
Příklad1: p1.m
y=[1,5,6,8,9,10]; plot(y); title('Zadány pouze {\ity}-ové hodnoty');
Příklad2: p2.m
x=0:5; y=x.^4+4.*x+2; plot(y); title('Hodnoty {\itx} nejsou specifikovány');
Příklad3: p3.m
x=-3:0.1:3; y=exp(x)-x.*x+7.*x+2; plot(x,y); title('Hodnoty {\itx} jsou specifikovány');
14 Příklad4: p4.m
x=-3:0.1:3; y=exp(x)-x.*x+7.*x+2; plot(x,y); axis([-2 2 -5 10]); title('Nastavení os je upraveno');
p0.m p00.m p000.m
postupně po zadání ENTER zobrazí různé typy čar postupně po zadání ENTER zobrazí různé značky postupně po zadání ENTER zobrazí různé barvy
Poznámka: Jestliže potřebujeme změnit implicitní tloušťku čáry, můžeme to učinit přímo v příkazu plot tak, že na konec seznamu vstupních parametrů doplníme požadavek na nastavení větší, nebo menší tloušťky čar pomocí příkazu LineWidth. Implicitní tloušťka čáry je 0,5. Jestliže chceme upravit značku, kterou vykreslujeme jednotlivé body, můžeme obdobně doplnit na konec seznamu vstupních parametrů požadavek na nastavení větší nebo menší velikosti značky MarkerSize, změnit barvu hran značky MarkerEdgeColor, nastavit barvu výplně značky MarkerFaceColor a příkazem LineWidth můžeme dokonce změnit i tloušťku hran značky. Dále lze upravovat vlastní data různými interpolačními funkcemi a tím grafy dále upravovat do žádoucí podoby. Příklad5: p5.m demonstruje použití změny tloušťky čar a u značky změnu barvy hran, změnu barvy výplně i tloušťky hran. demonstruje použití různých interpolačních metod na data. Příklad6: p6.m loglog – vytváří graf užitím logaritmické stupnice pro osu x i y. Příklad7: p7.m x=0:0.1:10; y=exp(x)-x.*x+7.*x+2; loglog(x,y,'m'); title('Logaritmická stupnice pro osu {\itx} i {\ity}');
semilogx – vytváří graf užitím logarit. stupnice pro x-ovou osu a lineární stupnice pro y-ovou osu. Příklad8: p8.m x=0:0.1:10; y=exp(x)-x.*x+7.*x+2; semilogx(x,y,'m'); title('Logaritmická stupnice pro osu {\itx}');
semilogy – vytváří graf užitím logarit. stupnice pro y-ovou osu a lineární stupnice pro x-ovou osu. Příklad9: p9.m x=0:0.1:10; y=exp(x)-x.*x+7.*x+2; semilogy(x,y,'m'); title('Logaritmická stupnice pro osu {\ity}');
polar – vytváří graf v polárních souřadnicích Příklad10: pp10.m x=0:0.1:10; y=exp(x)-x.*x+7.*x+2; polar(x,y,'m'); title('\fontname{times new roman ce}Polární souřadnice');
plotyy – vytváří dva grafy v jednom obrázku s popisem y-ových souřadnic Příklad11: p11.m x=0:0.1:10; y1=exp(x)-x.*x+7.*x+2; x2=0:0.1:10; y2=sqrt(y1); plotyy(x,y1,x2,y2); title('Dva grafy s popisem {\ity}-ových os');
15 3.2.2 Speciální funkce pro kreslení grafů ve 2D Funkce Název grafu Základní syntaxe plošný area(y); area(x,y) area sloupcový bar(y); bar(x, y) bar vodorovný sloupcový barh(y); barh(x,y) barh dráhový comet(y); comet(x,y) comet kompasový pro C compass(z); compass(x,y) compass (šipky z jednoho bodu) chybový errorbar(x,y,l,u); errorbar(x,y,e) errorbar peříčkový pro C feather(z); feather(x,y) feather (šipky z ekvid. bodů) vyplněný 2-D fill(x,y,c); fill mnohoúhelník fill(x1,y1,c1,x2,y2,c2, …) histogram hist(y); hist(y,m); hist(y,x) hist paretický pareto(y,names); pareto(y); pareto pareto(y,x) koláčový pie(x); pie(x,explode); pie pie(x,labels) plotmatrix rozptylový graf matic plotmatrix(x,y); plotmatrix(y) růžicový rose (theta); rose (theta,n); rose (úhlový histogram) rose (theta,x) rozptylový scatter(x,y,s,c); scatter(x,y); scatter hůlkový stem(y); stem(x,y) stem schodový stairs(y); stairs(x,y) stairs Voronoi diagram voronoi(x,y) voronoi graf gradientu quiver(x,y,u,v); quiver(u, v) quiver
M-soubor area1; area2 bar1; bar2 barh1; barh2 come1; come2 co1; co2 er1; er2 fea1; fea2 fil1; fil2 hist1; hist2 par1; par2 pi1; pi2; pi3 plo1; plo2 ros1; ros2 sca1; sca2 ste1; ste2 sta1; sta2 voro1; voro2 qui1; qui2
3.2.3 Popis grafu ve 2D Do grafu lze přidat nadpis, popisy os, text nebo zobrazit síť pomocí následujících funkcí: Příklad Funkce Popis funkce Syntaxe plotedit on plotedit zapíná (vypíná) editaci plotedit on plotedit off grafu plotedit off title('\fontname{times}Dráha') přidá nadpis do grafu title title('text') (doprostřed nad graf) xlabel('\fontname{times new přidá popis x-ové osy xlabel('text') xlabel roman ce}čas {\itt}') (doprostřed pod osu) ylabel('vzdálenost {\its}') přidá popis y-ové osy ylabel('text') ylabel (doprostřed podél osy) text(-0.6,3,'Dolní mez') vloží text text text(x,y,'text') na určenou pozici gtext('\fontsize{20}\it{\alpha}') vloží text gtext gtext('string') na místo vybrané myší vloží legendu legend legend('string') legend('Pohyb hmotného bodu') Příklad: popis1.m
demonstruje popis grafu, na kliknutí myší vloží α.
16 Ovládání os a objektů Funkce Popis funkce nastavuje rozsah a vzhled os axis
Základní syntaxe axis([xmin xmax ymin ymax]); axis on; axis off;axis equal; axis square zvětšuje (zmenšuje) objekty zoom on; zoom off; zoom; zoom out zoom zobrazuje (nezobrazuje) mřížku grid on; grid off; grid grid přidá (odstraní) rámeček box on; box off; box box drží (nedrží) aktuální graf hold on; hold off hold otevře osy v zadané pozici axes(‚position‘, rect) axes (rect = odleva odspodu šířka výška) rect = [left, bottom, width, height] subplot(m,n,p) subplot vytvoří osy v nových pozicích rotate otáčení objektem h kolem středu rotate(h,[x y],alpha) [x,y] o úhel alpha (ve stupních) Příklad: ax1.m
demonstruje použití výše uvedených příkazů, ovládá se pomocí ENTER.
3.3 Třídimenzionální grafy – 3D grafika MATLAB poskytuje velké množství funkcí pro zobrazení 3-D dat ve tvaru čar, ploch nebo síťových (drátových) modelů ploch. Zadání souřadnic MATLAB definuje pomocí z-ových souřadnic síť bodů plochy nad obdélníkovou mříží v rovině xy. Vytváří síť spojením sousedních bodů přímými čarami. Tento způsob zobrazení je vhodný pro grafické znázornění matice, která je v numerickém tvaru příliš velká a nepřehledná, nebo pro grafy funkcí dvou proměnných. Ke znázornění funkce dvou proměnných z = f(x, y) musíme nejprve vytvořit matice X a Y (definiční oblast funkce). Funkce meshgrid transformuje oblast určenou dvěma vektory x a y na matice X a Y, které mohou být použity pro vyhodnocení funkcí dvou proměnných a grafů síťových (drátových) modelů ploch. Řádky matice X jsou kopiemi vektoru x, sloupce matice Y jsou kopiemi vektoru y. meshgrid – generuje x-ové a y-nové pole pro třídimenzionální grafy Syntaxe příkazu: [X,Y]] = meshgrid (x,y); [X,Y]] = meshgrid (x). Příklad: [x,y]=meshgrid(–2:0.1:0,1:0.2:3); [x,y]=meshgrid(–2:0.2:2);
3.3.1 Elementární funkce pro kreslení grafů ve 3D Funkce Popis funkce kreslí čáry a body v prostoru plot3 vytváří síťový (drátový) model plochy ve 3-D mesh navíc kreslí pod síťový model plochy vrstevnice v rovině xy meshc vytvoří síťový (drátový) model plochy s referenční rovinou v místě minimální meshz hodnoty dat; tato rovina je spojena s rovinou z = 0 svislými čarami vytvoří model plochy s barevně vyplněnými ploškami ve 3-D surf navíc kreslí pod model plochy vrstevnice této plochy v rovině xy surfc vytváří model plochy s barevně vyplněnými ploškami včetně osvětlení surfl vytvoří mnohoúhelník v prostoru a vyplní jej fill3
17 plot3 – kreslí lineární graf, lze měnit typ čáry a barvu čáry jako u příkazu plot. Syntaxe příkazu: plot3(x,y,z); plot3 (X,Y,Z); plot3 (x,y,z,s); plot (x1,y1,z1,s1,x2,y2,z2,s2, …), plot3(x,y,z) – x je sloupec x-ových souřadnic ,y je sloupec y-nových souřadnic a z je sloupec z-tových souřadnic, plot3 (X,Y,Z) – X,Y,Z jsou matice téže velikosti, plot3 (x,y,z,s) – x,y,z jsou vektory příslušných souřadnic téže délky a s je řetězec 1, 2 nebo 3 znaků, jejichž význam je stejný jako u příkazu plot. Také zde můžeme doplnit na konec seznamu vstupních parametrů požadavek na nastavení větší nebo menší tloušťky čar a větší nebo menší velikosti značky. Příklad1: pl1.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); plot3(x,y,z,'g—'); title('Lineární graf');
Příklad2: pl2.m demonstruje použití změny tloušťky čar a u značky změnu barvy hran, změnu barvy výplně i tloušťky hran. Příklad3: pl3.m demonstruje použití různých interpolačních metod na data. mesh – síťový (drátový) graf Příklad: m1.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); mesh(x,y,z); title('\fontname{times new roman ce}Síťový graf');
meshc – síťový graf s vrstevnicemi v rovině xy Příklad: m2.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); meshc(x,y,z); title('\fontname{times new v rovině {\itxy}');
roman
ce}Síťový
graf
s vrstevnicemi
meshz – síťový graf nad kvádrem Příklad: m3.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); meshz(x,y,z); title('\fontname{times new roman ce}Síťový graf nad kvádrem');
surf – síťový graf s barevně vyplněnými ploškami (ve směru osy z), často kombinovaný s příkazem shading Příklad: m4.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); surf(x,y,z); title('\fontname{times new roman ce}Síťový graf s barevně vyplněnými ploškami');
Příklad: m5.m
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z = x.*exp(-x.^2-y.^2); surf(x,y,z); shading interp; title('\fontname{times new roman ce}Síťový graf s barevně vyplněnými ploškami kombinovaný s příkazem shading');
18 surfc – síťový graf s barevně vyplněnými ploškami doplněný o vrstevnice v rovině xy Příklad: m6.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); surfc(x,y,z); title('\fontname{times new roman ce}Síťový graf s barevně vyplněnými ploškami doplněný o vrstevnice v rovině {\itxy}');
surfl – osvětlený síťový graf barevně vyplněnými ploškami (ve směru osy y), často kombinovaný s příkazem shading Příklad: m7.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); surfl(x,y,z); title('\fontname{times new roman ce}Osvětlený síťový graf s barevně vyplněnými ploškami');
Příklad: m8.m
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); surfl(x,y,z); shading interp; title('\fontname{times new roman ce}Osvětlený síťový graf s barevně vyplněnými ploškami kombinovaný s příkazem shading'); pause; s=[10,50]; surfl(x,y,z,s); shading interp; title('\fontname{times new roman ce}Tentýž graf doplněný o nastavení zdroje světla');
fill3 – vytvoří plošný graf Syntaxe příkazu: fill3(x, y,z, c); fill3 (X1, Y1,Z1, C1, X2, Y2, Z2, C2, …). Význam x, y, z a c je obdobný jako u příkazu plot3. Příklad: fil.m [x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2); fill3 (x,y,z,'b'); title('\fontname{times new roman ce}Plošný graf');
m0.m
postupně po zadání ENTER zobrazí předchozí typy grafů
3.3.2 Speciální funkce pro kreslení grafů ve 3D Funkce Popis funkce (název grafu) vytváří rovinné vrstevnice plochy contour vykreslení vrstevnic plochy s barevně vyplněnými plochami contourf mezi jednotlivými vrstevnicemi vytváří prostorové vrstevnice plochy contour3 přidá popis vrstevnic jejich výškovou hodnotou clabel kreslí pseudobarevné nebo mozaikové grafy, tj. obdélníková pcolor pole buněk s barvami určenými prvky matice sloupcový graf bar3 vodorovný sloupcový graf bar3h dráhový graf comet3 prostorový koláčový graf pie3 kreslí 2-D čáry jako pásky ve 3-D ribbon
M-soubor cont1 cont2 cont3 clab pcol bar4 barh3 come3 pi4 ribb
19 scatter3 stem3 trisurf trimesh waterfall slice quiver3 quiver
rozptylový graf hůlkový graf triangulární plošný graf triangulární síťový graf prostorový řezový graf, graf ve tvaru vodopádu kreslí řezy v zadaných rovinách zobrazí prostorové siločáry zobrazí siločáry v rovině xy
sca3 ste3 tris trim wat sli qui3 qui4
3.3.3Vizualizace souborů dat Skalární data Funkce isosurface isonormals isocaps isocolors contourslice
Popis funkce izoplošný extraktor izoplošné normály izoplošný koncový uzávěr izoplochy s barevnými ploškami vrstevnice v řezných rovinách
Vektorová data Funkce streamline stream2 stream3 divergence curl coneplot streamtube streamribbon streamslice streamparticles interpstreamspeed
M-soubor dat1 dat2 dat3 dat4 dat5
Popis funkce proudové čáry z 2D nebo 3D vektorových dat 2D proudové čáry 3D proudové čáry divergence vektorového pole vírová a úhlová rychlost vektorového pole 3D kuželový graf 3D proudová trubice 3D proudová páska proudové čáry v řezných rovinách proudové čáry postupně kreslené na display interpolační proudové čáry ve vrcholech rychlosti
M-soubor stre1 stre2 stre3 stre4 stre5 stre6 stre7 stre8 stre9 stre10 stre11
Obslužné programy Funkce Popis funkce subvolume extrahuje podmnožinu z rosáhlého souboru dat reducevolume redukce z rozsáhlého souboru dat volumebounds vrací x, y, z a barevné mezní hodnoty pro skalární i vektorová data smooth3 hladká 3-D data reducepatch redukce počtu vyplněných 2-D polygonů shrinkfaces redukce velikosti vyplněných 2-D polygonů
M-soubor vol1 vol2 vol3 vol4 vol5 vol6
20 3.3.4 Grafické doplňky Řízení barvy Funkce Popis funkce colormap vyhledávací tabulka barev změna barevného měřítka caxis způsoby barevného stínování shading řízení viditelnosti čar hidden brighten zesvětlení nebo ztmavění mapy barev řízení kontrastu, vrací šedou mapu barev contrast mění barvu pozadí colordef
Základní syntaxe colormap(map) caxis(v) shading flat, shading interp, shading faceted hidden on, hidden off, hidden brighten(beta) cmap=contrast(X,M) colordef white, colordef black
colormap – tabulka barev, colormap(map) MATLAB definuje mapu barev ve tvaru matice o třech sloupcích. Každá řádka matice definuje jednotlivou barvu na základě tří hodnot v rozsahu od 0 do 1 (RGB hodnoty). RGB hodnoty mají význam intenzity složek červené(R), zelené(G) a modré(B). Některé typické barvy obsahuje následující tabulka: Červená Zelená Modrá Barva 0 0 0 černá 1 1 1 bílá 1 0 0 červená 0 1 0 zelená 0 0 1 tmavě modrá 1 1 0 žlutá 1 0 1 fialová 0 1 1 bledě modrá 0,5 0,5 0,5 šedá 0,5 0 0 tmavě červená 1 0,62 0,4 měděná 127/255 1 212/255 akvamarinová Příklad: b1.m
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z = x.*exp(-x.^2-y.^2); surf(x,y,z);colormap([0,0,0]); title('\fontname{times new roman ce}Černá barva');pause;close;
b0.m
demonstruje změnu barvy grafu pomocí colormap
Mapy barev nemusí být zadány přímo ve tvaru matice, ale mohou být generovány přímo operacemi MATLABu. Mapy barev Mapa Barvy od červené přes žlutou, zelenou, světle modrou, tmavě modrou, hsv fialovou zpět k červené teplotní (černá-červená-žlutá-bílá) hot různé odstíny šedi gray různé odstíny šedomodré bone různé odstíny mědi copper různé odstíny starorůžové (pastelové odstíny růžové) pink celá bílá white
21 flag lines colorcube vga jet prism cool autumn spring winter summer
střídavě červená, bílá, tmavě modrá, černá (vlajka) barevná mapa s barevnými čarami barevná krychle (krok od šedé, čistě červené, zelené a modré) mapa Windows pro 16 barev varianta HSV (žlutá, světle zelená, světle modrá, červená) střídavě červená, oranžová, žlutá, zelená, tmavě modrá, fialová různé odstíny od bleděmodré po fialovou různé odstíny od červené po žlutou různé odstíny od fialové po žlutou různé odstíny od tmavě modré po zelenou různé odstíny od zelené po žlutou
Příklad: b2.m
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4);z=x.*exp(-x.^2-y.^2); surfl(x,y,z);shading interp;colormap(hsv); title('Mapa hsv');
b00.m
demonstruje změnu barvy grafu pomocí předdefinovaných map barev
caxis – změna barevného měřítka, caxis(v), caxis(′′auto′′), caxis(′′manual′′) Parametr v je dvouprvkový vektor [cmin cmax], kde cmin je první a cmax je poslední barva v běžné barevné mapě. Parametr auto vrátí původní nastavení a parametr manual podrží nastavení volbou caxis. Využívá se pro objekty vytvořené funkcemi mesh, pcolor a surf. Příklad: cax.m demonstruje použití funkce caxis shading – způsoby barevného stínování, shading flat, shading interp, shading faceted shading flat nastavuje odstíny aktuálního grafu na hodnotu flat. Odstín flat je po částech konstantní, každý segment drátové sítě nebo plochy má konstantní barvu určenou hodnotami barev v krajních bodech segmentu nebo v rozích plošky, shading interp nastavuje odstíny aktuálního grafu na hodnotu interp. Interpolované odstíny, které jsou známé jako Gouraudovy odstíny, jsou po částech bilineární, barva každého segmentu nebo plošky se mění lineárně a interpoluje hodnoty na koncích segmentu nebo v rozích plošky, shading faceted nastavuje odstíny aktuálního grafu na hodnotu faceted, což je implicitní hodnota. Odstíny faceted jsou odstíny flat s černou drátovou sítí. Tato volba je často nejpůsobivější, a proto je nastavena jako implicitní hodnota. Příklad: gr1.m demonstruje použítí funkce shading hidden – řízení viditelnosti čar grafu typu mesh, hidden on, hidden off, hidden hidden on zapíná odstranění skrytých (neviditelných) čar v aktuálním grafu, takže čáry v zadních ploškách mesh jsou skryty předními ploškami. Tato hodnota je implicitní, hidden off zobrazuje i neviditelné čáry v grafu mesh, hidden přepíná status viditelnosti. Příklad: hid.m demonstruje použítí funkce hidden brighten – zesvětlení nebo ztmavění mapy barev, brighten(beta) brighten(beta) nahradí aktuální mapu barev světlejší nebo tmavší mapou, která ale obsahuje tytéž základní barvy. Je-li 0 < beta ≤ 1, je mapa světlejší, pro –1 ≤ beta < 0 je mapa tmavší, brighten(beta) následováno příkazem brighten (–beta) obnoví původní mapu. Příklad: brig.m demonstruje použití funkce brighten
22 contrast – řízení kontrastu, cmap=contrast(X,M) vrací šedou mapu barev, což je matice typu (M,3) se třemi stejnými sloupci, při které příkazy image(X);colormap(cmap) vytvoří objekt image se zhruba vyrovnaným jasovým histogramem. Pokud není M specifikováno, je použita implicitní hodnota, tj.64. Příklad: kontrast.m demonstruje použití funkce contrast colordef – mění barvu výchozího nastavení grafického okna, která se projeví po novém otevření okna colordef white mění barvu pozadí na bílou, colordef black mění barvu pozadí na černou a okolí na šedou, colordef none jako Matlab4, pozadí celé černé. Příklad: Zadejte postupně sled následujících příkazů: colordef black;cor;colordef white;cor; colordef none;cor;colordef white;cor
Osvětlení Funkce camlight lightangle lighting material specular diffuse surfnorm
Popis funkce vytváří nebo nastavuje pozici osvětlení sférické souřadice osvětlení způsoby osvětlení způsoby materiálové odrazivosti zrcadlová odrazivost rozptýlená (difúzní) odrazivost výpočet a zobrazení normál plochy
camlight – vytváří nebo nastavuje pozici osvětlení, camlight headlight, camlight right, camlight left, camlight(az,el), camlight(az,el,′′local′′), camlight(az,el,′′infinite′′) Příklad: cam1.m demonstruje použití funkce camlight lightangle – nastavuje pozici osvětlení pomocí azimutu a elevace, lightangle(az,el), demonstruje použití funkce lightangle Příklad: tan1.m lighting – způsoby osvětlení, lighting flat, lighting gouraud, lighting phong, lighting none demonstruje použití funkce lighting Příklad: li1.m material – způsoby materiálové odrazivosti, material shiny (lesklé), material dull (matné), material metal (kovové). Dále je možné u této funkce nastavit ambient (okolí), diffuse (difúzi), specular strength (zrcadlovou pevnost), specular exponent (zrcadlový exponent) a specular color reflectance (zrcadlovou barevnou odrazivost) objektu. Syntaxe příkazu je pak material([ka kd ks n sc]), kde ka/kd/ks/n/sc je postupně ambient/diffuse/specular strength, specular exponent and specular color reflectance objektu. Příklad: mater1.m demonstruje použití funkce material specular – zrcadlová odrazivost, r = specular(Nx,Ny,Nz,s,v,spread). Odrazivost je ta část světla, která se odráží od plochy směrem k pozorovateli. Odrazivost se mění od 0 (řádný světelný odraz) do 1 (všechno světlo se odráží). Funkce vrací hodnotu koeficientu odrazu zrcadlové plochy plochy s vektorem normály o složkách Nx, Ny, Nz, parametry s a v specifikují zdroj světla a bod pohledu. Parametr s je vektor o třech složkách, které určují směr, ze kterého je plocha osvětlena. Parametr v (délky 3) určuje bod pohledu. Oba vektory mohou mít též délku 2, pak určují azimut a elevaci. Argument spread udává ostrost zrcadlového odrazu. Mění se v rozsahu [1, ∞ ) . Implicitně nastavená hodnota je spread = 10. S rostoucím spread se odlesky na zobrazovaném tělese stávají menší a ostřejší, dokonalé zrcadlo má spread = ∞. . Příklad: specul.m demonstruje použití funkce specular (r = 0.7969)
23 diffuse – difúzní odrazivost, r = diffuse(Nx,Ny,Nz,s) Funkce vrací hodnotu koeficientu odrazivosti plochy s vektorem normály o složkách Nx, Ny, Nz, parametr s specifikuje zdroj světla, je to vektor o třech složkách, které určují směr, ze kterého je plocha osvětlena. Příklad: difus.m demonstruje použití funkce diffuse (r = 0.9926) surfnorm – výpočet a zobrazení normál plochy ve 3-D surfnorm(Z) a surfnorm(X,Y,Z) zobrazují objekt (plochu) včetně normál, které směřují ven z plochy. Normály těch prvků plochy, které nejsou viditelné z místa pohledu, nejsou zobrazeny. [Nx,Ny,Nz]=surfnorm(X,Y,Z) a [Nx,Ny,Nz]=surfnorm(Z) vrací složky normál plochy ve 3-D pro objekt (plochu) definovanou maticemi X,Y a Z. Normály plochy jsou normalizované na délku 1 a jsou vypočteny v každém vrcholu. Funkce surfnorm je volána funkcí surfl k výpočtu normál plochy. Příklad: suno.m demonstruje použití funkce surfnorm. Výsledné vektory normál první varianty jsou: r =
0 0 0
0 0 0
0 0 0
-0.4472 -0.8321 -0.9285
-0.4472 -0.8321 -0.9285
-0.4472 -0.8321 -0.9285
0.8944 0.5547 0.3714
0.8944 0.5547 0.3714
0.8944 0.5547 0.3714
Výsledné vektory normál druhé varianty jsou: r = -0.7584 -0.5925 -0.3579 0.0668 -0.7922 -0.4815 -0.6484 0.1465 0.8000 0.4924 -0.5657 0.5592 -0.1231 0.7071 -0.8078 0.8616 -0.4243 0.1864 0.3071 0.0927 0.3654 -0.8774 0.9950 0.8984 0.3685 0.0371 0.2436
Transparent alpha – řízení průhlednosti, alpha(′x′), alpha(′y′), alpha(′z′), alpha(′color′), alpha(′rand′), atd. demonstruje použití funkce alpha Příklad: tra.m Řízení os axis – nastavuje rozsah a vzhled os, axis([xmin xmax ymin ymax]); axis on; axis off; axis equal; axis square; axis normal Příklad: ax2.m demonstruje použití funkce axis ve 3D Ovládání objektů Funkce zoom grid box hold axes
Popis funkce zvětšuje (zmenšuje) objekty zobrazuje (nezobrazuje) mřížku přidá (odstraní) rámeček drží (nedrží) aktuální graf otevře osy v zadané pozici (rect = odleva odspodu šířka výška) subplot vytvoří osy v nových pozicích daspect informace o poměru stran a jejich řízení pbaspect informace o velikosti rámečku poměru stran a jeho řízení
Základní syntaxe zoom on; zoom off; zoom; zoom out grid on; grid off; grid box on; box off; box hold on; hold off axes(‚position‘, rect) rect = [left, bottom, width, height] subplot(m,n,p) dar = daspect, daspect([x y z]) pbar = pbaspect, pbaspect([x y z])
24 xlim ylim zlim rotate
vrací minimální a maximální hodnotu osy x a nastavuje ji vrací minimální a maximální hodnotu osy y a nastavuje ji vrací minimální a maximální hodnotu osy z a nastavuje ji otáčení objektem h kolem středu [x,y] o úhel alpha (ve stupních)
xl=xlim, xlim([xmin xmax]) yl=ylim, ylim([xmin xmax]) zl=zlim, zlim([xmin xmax]) rotate(h,[x y],alpha)
Příklad: ax3.m Demonstruje použití předchozích příkazů Výsledné hodnoty: dar = 8 8 1, pbar = 1 1 1, xl = -5 5, yl = -5 5, zl = -0.5000 0.5000
Řízení bodu pohledu view – definuje bod pohledu na graf v prostoru, view(az,el). MATLAB dovoluje určit bod pohledu na graf. Obecně je pohled definován transformační maticí čtvrtého řádu, kterou MATLAB používá k transformaci třírozměrného grafu na dvourozměrnou obrazovku. Hodnota az je azimut, nebo-li horizontální rotace, a hodnota el je vertikální elevace (obě hodnoty jsou zadávány ve stupních). Azimut se otáčí kolem osy z s kladnými hodnotami ve směru proti pohybu hodinových ručiček. Kladné hodnoty elevace odpovídají pohledu shora; záporné hodnoty pohledu zdola. Příklad: pohled.m demonstruje použití funkce view Řízení kamery Funkce campos camtarget camva camup camproj camorbit campan camdolly camzoom camroll camlookat cameratoolbar
Popis funkce vrací umístění kamery a řídí jej vrací cíl kamery a řídí jej vrací úhel pohledu kamery a řídí jej vrací horní vektor kamery a řídí jej vrací projekci kamery a řídí ji dráha (rotace) kamery záběr kamery specifikace umístění a cíle kamery ovládání lupy kamery rolování kamery přesun kamery a cíle pohledu do specifikovaného objektu interaktivní manipulace s kamerou
Výsledné hodnoty jsou: cp = -36.5257 -47.6012 4.3301, ct = 0 0 0, cva = 10.3396, up = 0 0 1, proj = orthographic.
Základní syntaxe cp=campos; campos([x y z]) ct=camtarget; camtarget([x y z]) cva=camva; camva(val) up=camup;camup([x y z]) proj= camproj; camproj(projection) camorbit(dtheta,dphi) campan(dtheta,dphi) camdolly(dx,dy,dz) camzoom(zf); camroll(dtheta) camlookat(h)
M-soubor kam1 kam2 kam3 kam4 kam5 kam6 kam7 kam8 kam9 kam10 kam11
cameratoolbar
kam12
25 3.3.5 Popis grafu ve 3D
Do grafu lze přidat nadpis, popisy os, text nebo zobrazit síť pomocí následujících funkcí: Funkce title
Popis funkce přidá nadpis do grafu (doprostřed nad graf) přidá popis x-ové osy xlabel (doprostřed pod osu) přidá popis y-ové osy ylabel (doprostřed podél osy) zlabel přidá popis z-ové osy (doprostřed vlevo od osy, text je otočený o 90°) colorbar zobrazení barevného měřítka vloží text text na určenou pozici
Příklad: popis2.m
Syntaxe title('text')
Příklad title('Graf funkce {\itf(x,y,z)}')
xlabel('text')
xlabel('osa {\itx}')
ylabel('text')
ylabel('osa {\ity}')
zlabel('text')
zlabel('osa {\itz}')
colorbar('vert') colorbar('vert') colorbar('horiz') colorbar('horiz') text(4,7,'Vrchol') text(x,y,'text')
demonstruje použití předchozích příkazů
3.3.6 Modelování geometrických těles cylinder – vykreslí válcovou plochu
c1.m, c2.m
sphere – vykreslí kulovou plochu
c3.m, c4.m
ellipsoid – vykreslí elipsoid
c5.m, c6.m
patch – přikreslí vyplněný 2-D polygon definovaný vektory x a y Příklad: pa1.m x=-6:0.2:5;y=x.*x;plot(x,y,'m'); patch([-4:0.1:2],[kv3(-4:0.1:2)],'g');axis([-6 4 -1 17]); title('\fontname{times new roman ce}Přikreslený vyplněný v rovině');
Příklad: pa2.m
[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); z=x.*exp(-x.^2-y.^2);mesh(x,y,z); patch([1,3,5],[2,4,-2],[1,-3,4],[1,0,1]);hidden off; title('\fontname{times new roman ce}Přikreslený vyplněný v prostoru');
polygon
polygon
surf2patch – konvertuje geometrická a barevná data prostorové plochy na data formátu vyplněného 2-D polygonu (surpa.m)
26
3.4 Znázornění kvadratických ploch Kulová plocha: Středová rovnice kulové plochy (střed je v počátku): x 2 + y 2 + z 2 = r 2 Zobrazení: koule.m Elipsoid (trojosý, rotační, protáhlý, zploštělý):
Středová rovnice trojosého elipsoidu (střed je v počátku):
x2 y2 z2 + + =1 a2 b2 c2
Zobrazení zploštělého elipsoidu: elipsoi1.m Zobrazení protáhlého elipsoidu: elipsoi2.m Kuželová plocha:
Vrcholová rovnice kuželové plochy(vrchol je v počátku): Zobrazení kuželové plochy: kuzel.m
x2 y2 z2 + – =0 a2 b2 c2
Hyperboloid dvojdílný: x2 y2 z2 Středová rovnice dvojdílného hyperboloidu: 2 + 2 – 2 + 1 = 0 a b c Zobrazení dvojdílného hyperboloidu: hyperd.m Hyperboloid jednodílný:
Středová rovnice jednodílného hyperboloidu:
x2 y2 z2 + – =1 a2 b2 c2
Vlastnosti: Jednodílný hyperboloid je také plocha přímková. Povrchové přímky jednodílného hyperboloidu: x z y x z 1 y + = χ 1 + – = 1 − a c a c χ b b x z y x z 1 y χ ≠ 0, λ ≠ 0 + = λ 1 − – = 1 + a c a c λ b b První dvě rovnice patří přímkám jednoho regulu a druhé dvě rovnice přímkám druhého regulu. Jednodílný hyperboloid je jednoznačně určen třemi mimoběžkami, které nejsou rovnoběžné s touž rovinou. Parametrické vyjádření přímek prvního a druhého regulu, jestliže a = b = c = 1je: χ 2 +1 λ2 + 1 x= + (χ 2 − 1) t x= + (1 − λ2 ) t 2χ 2λ y = 0 + 2λ t y = 0 + 2χ t t∈R
χ 2 −1 z= + (1 + χ 2 ) t 2χ
λ2 − 1 z= − (1 + λ2 ) t 2λ
Zobrazení jednodílného hyperboloidu s povrchovými přímkami: hyperj1.m Zobrazení jednodílného hyperboloidu jako přímkové plochy: hyperj2.m
27 Eliptický paraboloid: x2 y2 + – 2z = 0 a2 b2 Vlastnosti: Eliptický paraboloid je také translační plocha, která vzniká posouváním paraboly po parabole. Zobrazení eliptického paraboloidu: parabe.m
Středová rovnice eliptického paraboloidu:
Hyperbolický paraboloid: x2 y2 – – 2z = 0 a 2 b2 Vlastnosti: Hyperbolický paraboloid je také translační plocha, která vzniká posouváním paraboly po parabole. Navíc je to také plocha přímková. Je jednoznačně určen buď třemi mimoběžkami, které jsou rovnoběžné s jednou rovinou, nebo dvěma mimoběžkami a řídící rovinou s nimi různoběžnou, nebo tzv. zborceným čtyřúhelníkem. x y 1 x y Povrchové přímky hyperbolického paraboloidu: + = χ – = 2z a b χ a b x y x y 1 – =λ + = 2z a b a b λ
Středová rovnice hyperbolického paraboloidu:
První dvě rovnice patří přímkám jednoho regulu a druhé dvě rovnice přímkám druhého regulu. x y Rovina prvního regulu: + = 0 a b x y Rovina druhého regulu: – = 0 χ ≠ 0, λ ≠ 0 a b Parametrické vyjádření přímek prvního a druhého regulu, jestliže a = 3 a b =2: 3 3 x= t x= t
χ
λ
y = 2χ −
2
χ
t
χ2
y = −2λ +
λ
t
t∈R
λ2
+t +t 2 2 Zobrazení hyperbolického paraboloidu jako interpolační plochy: parabh1.m Zobrazení hyperbolického paraboloidu jako translační plochy s vrstevnicemi: parabh2.m Zobrazení hyperbolického paraboloidu jako přímkové plochy: parabh3.m z=−
z=−
2
Válcová plocha (eliptická, hyperbolická, parabolická):
Středová rovnice eliptické válcové plochy kolmé k rovině xy: Zobrazení eliptické válcové plochy: valece.m
x2 y2 + =1 a2 b2
Středová rovnice hyperbolické válcové plochy kolmé k rovině xy:
x2 y2 = 1. – a2 b2
Zobrazení hyperbolické válcové plochy: valech.m Vrcholová rovnice parabolické válcové plochy kolmé k rovině xy: y 2 = 2 px . Zobrazení parabolické válcové plochy: valecp.m
28
3.5 Znázornění rovinných a prostorových oblastí Příklad 1: Znázorněte následující oblast y2 ≤ 2x, x + y ≥ 2, x + y ≤ 4. Řešení: obl1.m (kv1.m, kv2.m) Příklad 2: Znázorněte následující oblast y 2 ≤ 2 x, x + y ≥ 4, x + y ≤ 12 . Řešení: obl2.m (kv1.m, kv2.m) Příklad 3: Znázorněte následující oblast x 2 + y 2 ≤ 9, x ≤ y, x ≥ 1 . Řešení: obl3.m (fce1.m) Příklad 4: Znázorněte následující oblast x 2 + y 2 − 4 x − 6 y − 12 ≤ 0, x + 2 y − 1 ≥ 2, y + x − 2 ≤ 4 . Řešení: obl4.m (fce2.m, fce3.m) Příklad 5: Znázorněte následující oblast x 2 + 4 y 2 − 10 x + 8 y + 13 ≥ 0, x − y ≥ 1, y ≤ 4 − x . Řešení: obl5 .m (fce4.m, fce5.m) Příklad 6: Znázorněte následující oblast 9 x 2 − 4 y 2 − 36 x − 24 y − 1 ≥ 0, 2 ≤ x ≤ 4, y ≤ 4 . Řešení: obl6 .m (fce6.m, fce7.m) Příklad 7: Znázorněte následující oblast 4 y 2 − 96 x + 4 y + 49 ≤ 0, x + y − 5 ≤ 0 . Řešení: obl7.m (fce8.m, fce9.m) Příklad 8: Znázorněte následující oblast − 2 ≤ x ≤ 2,−3 ≤ y ≤ 2,2 ≤ z ≤ 5 . Řešení: obl8.m Příklad 9: Znázorněte oblast ohraničenou těmito plochami x + y + z = 1, y = 0, x = 0, z = 0. Řešení: obl9.m Příklad 10: Znázorněte následující oblast x 2 + y 2 ≤ 9, - 2 ≤ z ≤ 5 . Řešení: obl10.m Příklad 11: Znázorněte oblast ohraničenou těmito plochami z = xy, y = x, x = 1, z = 0. Řešení: obl11.m Příklad 12: Znázorněte graf funkce z = x 3 − 3xy + y 3 , jestliže − 3 ≤ x ≤ 3, − 3 ≤ y ≤ 3 . Řešení: obl12.m
29
4. Dodatky 4.1 Užitečné klávesové zkratky: Znak \ @ ~ ^ [ ] { } < >
Název znaku zpětné lomítko zavináč velká tilda stříška levá hranatá závorka pravá hranatá závorka levá složená závorka levá složená závorka menší než větší než
Klávesová zkratka pravé Alt + q pravé Alt + v pravé Alt + 1 pravé Alt + 3 pravé Alt + f pravé Alt + g pravé Alt + b pravé Alt + n pravé Alt + < pravé Alt + >
Kód levé Alt + 092 levé Alt + 92 levé Alt + 064 levé Alt + 64 levé Alt + 0126 levé Alt +126 levé Alt + 094 levé Alt + 94 levé Alt + 091 levé Alt + 91 levé Alt + 093 levé Alt + 93 levé Alt + 0123 levé Alt +123 levé Alt + 0125 levé Alt +125 levé Alt + 060 levé Alt + 60 levé Alt + 062 levé Alt + 62
4.2 Užitečné příkazy Příkaz path clear close pause
Význam nastaví vyhledávací cestu, například do jiného pracovního adresáře vymaže z paměti všechny proměnné a funkce zavře grafické okno pozastaví probíhající proces, nejčastěji M-soubor
4.3 Derivace a integrace v symbolice Funkce
Název funkce
diff(f)
Derivace funkce f = ax 2 + bx + c
int(f)
Primitivní funkce ∫ sin 2x dx
int(f,a,b)
π 2
Určitý integrál ∫ sin 2 x dx 0
Příkaz MATLABU f=sym('a*x^2+b*x+c'); diff(f) f=sym('sin(2*x)'); int(f)
Výstup MATLABU
2*a*x+b
f=sym('sin(2*x)'); int(f,0,pi/2)
1
-1/2*cos(2*x)
30 minimum.m
zpět
31 nulove.m
zpět
32 integral.m
zpět
33 p1.m
zpět
34 p2.m
zpět
35 p3.m
zpět
36 p4.m
zpět
37 p0.m
zpět
38 p00.m
zpět
39 p000.m
zpět
40 p5.m
zpět
41 p6.m
zpět
42 p7.m
zpět
43 p8.m
zpět
44 p9.m
zpět
45 pp10.m
zpět
46 p11.m
zpět
47 area1.m
zpět
48 area2.m
zpět
49 bar1.m
zpět
50 bar2.m
zpět
51 barh1.m
zpět
52 barh2.m
zpět
53 come1.m
zpět
54 come2.m
zpět
55 co1.m
zpět
56 co2.m
zpět
57 er1.m
zpět
58 er2.m
zpět
59 fea1.m
zpět
60 fea2.m
zpět
61 fil1.m
zpět
62 fil2.m
zpět
63 hist1.m
zpět
64 hist2.m
zpět
65 par1.m
zpět
66 par2.m
zpět
67 pi1.m
zpět
68 pi2.m
zpět
69 pi3.m
zpět
70 plo1.m
zpět
71 plo2.m
zpět
72 ros1.m
zpět
73 ros2.m
zpět
74 sca1.m
zpět
75 sca2.m
zpět
76 ste1.m
zpět
77 ste2.m
zpět
78 sta1.m
zpět
79 sta2.m
zpět
80 voro1.m
zpět
81 voro2.m
zpět
82 qui1.m
zpět
83 qui2.m
zpět
84 popis1.m
zpět
85 ax1.m
86
87
88
89
90
91
92
93
zpět
94 pl1.m
zpět
95 pl2.m
zpět
96 pl3.m
zpět
97 m1.m
zpět
98 m2.m
zpět
99 m3.m
zpět
100 m4.m
zpět
101 m5.m
zpět
102 m6.m
zpět
103 m7.m
zpět
104 m8.m
zpět
105 fil.m
zpět
106 m0.m
107
108
109
110
111
112
zpět
113 cont1.m
zpět
114 cont2.m
zpět
115 cont3.m
zpět
116 clab.m
zpět
117 pcol.m
zpět
118 bar4.m
zpět
119 barh3.m
zpět
120 come3.m
zpět
121 pi4.m
122
zpět
123 ribb.m
zpět
124 sca3.m
zpět
125 ste3.m
zpět
126 tris.m
zpět
127 trim.m
zpět
128 wat.m
zpět
129 sli.m
130
131
132
zpět
133 qui3.m
zpět
134 qui4.m
zpět
135 dat1.m
zpět
136 dat2.m
zpět
137 dat3.m
zpět
138 dat4.m
zpět
139 dat5.m
zpět
140 stre1.m
zpět
141 stre2.m
zpět
142 stre3.m
zpět
143 stre4.m
zpět
144 stre5.m
zpět
145 stre6.m
zpět
146 stre7.m
zpět
147 stre8.m
zpět
148 stre9.m
zpět
149 stre10.m
zpět
150 stre11.m
zpět
151 vol1.m
zpět
152 vol2.m
zpět
153 vol3.m
zpět
154 vol4.m
zpět
155 vol5.m
zpět
156 vol6.m
zpět
157 b1.m
zpět
158 b0.m
159
160
161
162
163
zpět
164 b2.m
zpět
165 b00.m
166
167
168
169
170
171
172
173
zpět
174 cax.m
175
176
zpět
177 gr1.m
178
zpět
179 hid.m
180
zpět
181 brig.m
182
zpět
183 kontrast.m
zpět
184 cam1.m
185
186
187
zpět
188 tan1.m
zpět
189 li1.m
190
191
zpět
192 mater1.m
193
194
zpět
195 specul.m
zpět
196 difus.m
zpět
197 suno.m
198
zpět
199 tra.m
200
201
zpět
202 ax2.m
203
204
205
zpět
206 ax3.m
207
208
209
210
211
212
213
214
215
216
zpět
217 pohled.m
218
zpět
219 kam1.m
zpět
220 kam2.m
zpět
221 kam3.m
zpět
222 kam4.m
zpět
223 kam5.m
zpět
224 kam6.m
zpět
225 kam7.m
zpět
226 kam8.m
zpět
227 kam9.m
228
zpět
229 kam10.m
zpět
230 kam11.m
zpět
231 kam12.m
232
zpět
233 popis2.m
234
zpět
235 c1.m
zpět
236 c2.m
zpět
237 c3.m
zpět
238 c4.m
zpět
239 c5.m
zpět
240 c6.m
zpět
241 pa1.m
zpět
242 pa2.m
zpět
243 surpa.m
zpět
244 koule.m
245
zpět
246 elipsoi1.m
247
zpět
248 elipsoi2.m
249
zpět
250 kuzel.m
zpět
251 hyperd.m
zpět
252 hyperj1.m
253
zpět
254 hyperj2.m
zpět
255 parabe.m
256
zpět
257 parabh1.m
zpět
258 parabh2.m
zpět
259 parabh3.m
zpět
260 valece.m
261
zpět
262 valech.m
263
zpět
264 valecp.m
265
zpět
266 obl1.m
zpět
267 obl2.m
zpět
268 obl3.m
zpět
269 obl4.m
zpět
270 obl5.m
zpět
271 obl6.m
zpět
272 obl7.m
zpět
273 obl8.m
zpět
274 obl9.m
zpět
275 obl10.m
zpět
276 obl11.m
zpět
277 obl12.m
zpět © Marie Polcerová 2004