Váení zákazníci, dovolujeme si Vás upozornit, e na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, e ukázka má slouit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, e není dovoleno tuto ukázku jakýmkoliv zpùsobem dále íøit, veøejnì èi neveøejnì napø. umisováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura
[email protected]
2 Základy práce v prostøedí MATLAB Jak bylo zmínìno výe, pro efektivní práci je tøeba mít sputìný MATLAB. Nebudeme se vìnovat detailnímu popisu instalace, poadavkù na vybavení poèítaèe atd. Pravdou je, e na pomalém poèítaèi s malou operaèní pamìtí bude práce vyadovat pevné nervy. Budeme pøedpokládat, e pracujete na legálnì zakoupené èi pøidìlené licenci.
&
Sputìní MATLABu:
Nemáte-li na pracovní ploe poèítaèe (pøedpokládáme operaèní systém MS Windows 95 a vyí) pøíslunou ikonu, pak spustitelným souborem je soubor MATLAB.exe. Je umístìn ve sloce (adresáøi) ...../MATLAB6p1/bin/win32. Je vak tøeba hned poznamenat, e to platí pro aktuální verzi 6.6. a v pøípadì, e pøi instalaci nebyla zmìnìna cílová sloka ...../MATLAB6p1. V jiných verzích, zejména niích, je cesta k souboru MATLAB.exe pozmìnìna, soubor sám je vak stejného jména. Poznáte jej podle typického grafického symbolu oranové barvy.
2.1
Struèný prùvodce pracovní plochou
Ne se pustíme do vlastní práce, poznamenejme, e souèasnou aktuální verzí MATLABu je verze 6.6. Ta bude pøedmìtem popisu ve skriptu. Verze 6 je oproti pøedchozím typická také ponìkud modifikovaným pracovním prostøedím. To je problémem vech systémù podobného typu. Obèas je uivatel postaven pøed nutnost pøizpùsobit se sice efektivnìjímu a výkonnìjímu prostøedí, ale za cenu zmìn svých návykù. Z dùvodù výroby knihy jsme nuceni pouívat jen èernobílé obrázky, resp. obrázky s odstíny edi. Bohuel, nìkdy je to právì barva èi barevnost, která odliuje rùzné varianty pøíkazù a povelù a která èiní vizualizaci dat efektnìjí. Sami jsme pøi práci pouívali operaèní systémy MS Windows XP.
&
Vlastní popis pracovní plochy:
Po sputìní MATLABu se nám otevøe pracovní plocha nebo prostøedí. Jak je vidìt z obr. 2.1, sestává celkem ze tøí otevøených oken. Jedno okno je podstatnì vìtí, je v horní èásti nazváno Command Window. Dalí dvì mení okna v levé èásti jsou nazvána Launch Pad a Command History. Vimnìte si, e tato mení okna mohou
A
2 ZÁKLADY PRÁCE V PROSTØEDÍ MATLAB
13
být pøepnuta na jiná. Okno Launch Pad mùe být pøepnuto na Workspace a okno Command History na Current Directory. Pøepínání se dìje kliknutím na záloky ve spodních èástech tìchto oken. Vysvìtleme si struènì funkci tìchto oken.
&
Funkce oken pracovní plochy:
Okno Command Window je hlavní a nejdùleitìjí èástí pracovní plochy. Sem zapisuje uivatel své pøíkazy a povely, zde je vidìt odezva MATLABu a zde se zobrazují systémová hláení. Toto okno si mùeme pøedstavit jako chytrou kalkulaèku s mnoha funkcemi a monostmi. Okno Launch Pad slouí k rychlému sputìní øady nabídek. Jde o interaktivní help, demonstraèní samobìící výukové programy demos, podporu tvorby grafických prostøedkù atd. Staèí si je vybrat a poklepat na nì myí.
Obr. 2.1
Pracovní plocha po sputìní MATLABu verze 6.6.
Okno Command History je velmi uiteèným oknem. Zobrazují se zde vechny pøíkazy a povely, zapsané a potvrzené uivatelem v hlavním oknì Command Window. Je-li potøeba ji jednou zapsaný a potvrzený pøíkaz znovu pouít, staèí jej v tomto oknì nalistovat a poklepáním znovu aktivovat èi jej pøetáhnout myí do hlavního okna. Toté je vak moné v hlavním oknì pomocí kurzorových ipek nahoru a dolù.
14
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
Okno Workspace bude pøi prvním sputìní prázdné. Pøi pouívání promìnných v hlavním oknì bude v tomto okénku pøehled vech vámi pouitých promìnných. Poklepete-li na symbol nìkteré promìnné, zobrazí se detailní informace o ní (rozmìr, struktura apod.). To je uiteèné zejména pøi pouívání vìtího mnoství promìnných pro udrení pøehledu. Okno Current Directory ukazuje seznam souborù v aktuální (current) sloce (adresáøi). Poklepáním myí na nìkterý ze zobrazených souborù jej otevøete ve vestavìném editoru apod. Current Directory (aktuální sloka) je zobrazena tìsnì nad hlavním oknem (Command Window). Je moné ji zmìnit podle potøeby. Implicitní nastavení je do sloky ...MATLAB6p1/Work, kam MATLAB pøedpokládá umístìní výsledkù vaí práce. Ukonèit práci se systémem MATLAB lze zápisem quit s následným ENTER nebo myí kliknutím na køíek vpravo nahoøe (standardní ukonèení v operaèním systému Windows). Funkce oken plnì oceníte pozdìji, a budete zkuenìjími uivateli. Pak vám budou velmi etøit èas.
&
Menu nad okny pracovní plochy:
Nad výe popsanými okny pracovní plochy jsou dvì øady nabídek. Ta níe uvedená je ve formì tlaèítek. Slouí k vytvoøení nového tzv. m-souboru, otevøení ji existujícího, ke sputìní simulaèního systému Simulink a k dalím funkcím, potøebným k editaci. Nejvýe jsou umístìny rozbalovací nabídky menu. Mùete si je prohlédnout, vìnovat se jim zatím nebudeme, nebo to není nutné. Slouí napø. k nastavení cesty k m-souborùm èi jiným souborùm, k detailnímu nastavení pracovní plochy, vyvolání helpu atd.
&
Co jsou to m-soubory:
Tzv. m-soubory, zmínìné výe, jsou textové soubory s pøíponou *.m. Slouí k zápisu posloupnosti pøíkazù MATLABu a jejich uloení napø. na disk. Jsou tedy zdrojovým kódem, který umí MATLAB vykonat. Pokud si pouívané pøíkazy neuloíte, pøi zavøení MATLABu o nì pøijdete. Jde tedy o soubory, které zatím nevyuijete, ale které jsou nezbytné napø. pøi programování. Více informací prozatím není tøeba. Pro ilustraci, jenom popisu nastavení pracovní plochy vìnují autoøi MATLABu v manuálu nìkolik desítek stran.
2.2
Základní operace s èísly
2.2.1
Elementární operace s reálnými èísly
MATLAB je svou podstatou nástroj pro práci s èísly (pomiòme monost dokoupení toolboxu pro symbolickou matematiku). Zaènìme prací s reálnými èísly.
A
2 ZÁKLADY PRÁCE V PROSTØEDÍ MATLAB
15
3 Práce s maticemi a øeení soustavy rovnic Programový systém MATLAB je orientován maticovì. Matice je základním objektem s mnoha monými podobami a tomu je pøizpùsobena struktura celého systému. Kapitola 3 proto tvoøí jádro knihy. Ukáeme si v ní zejména monosti základní definice matic a práce s nimi.
3.1
Vytvoøení matic a vektorù
Moností, jak vytvoøit matici èi vektor, je v MATLABu nìkolik. Zapite v hlavním oknì MATLABu zápis: A=[1 2;3 4] a potvrïte pomocí ENTER. Zopakujme, e pouijete-li støedníku za výrazem, matice se nadefinuje, ale nevypíe. Zapite dále ostatní výrazy podle obr. 3.1.
Obr. 3.1
Základní zpùsob vytvoøení matice a vektoru
A
3 PRÁCE S MATICEMI A ØEENÍ SOUSTAVY ROVNIC
47
Z obr. 3.1 je zøejmé, e matice se zapisují po øádcích, které jsou oddìleny støedníkem. Prvky kadého øádku jsou oddìleny mezerou nebo èárkou (ménì èasto). Je-li matice jen jednoøádková, nazýváme ji øádkovým vektorem, v naem pøípadì V1. Pøitom poèet øádkù, resp. sloupcù matice není v principu nijak omezen. Pro vytvoøení matic a vektorù mùete vak pouít také libovolné matematické výrazy a rovnì promìnné, jak ukazuje obr. 3.2.
Obr. 3.2
&
Vyuití matematických výrazù a promìnných k definici matic a vektorù
Tvorba dlouhých vektorù a matic:
Popsaný zpùsob tvorby matic, resp. vektorù, je doporuèen pro nepøíli velký poèet øádkù èi sloupcù. Pøi potøebì generovat dlouhé vektory, napø. s mnoha desítkami èi stovkami prvkù, je tøeba vyuít jiný zpùsob. Pøedpokládejme, e potøebujete vytvoøit èasovou osu pro nìjaký graf. Pùjde tedy o vektor, nazvaný napø. Osat. Zapite: Osat=0:2*pi/20:2*pi a potvrïte pomocí ENTER. Odezvu ukazuje obr. 3.3. Èísla v zápisu vektoru pøedstavují startovací prvek, krok a cílový prvek vektoru Osat a jsou oddìleny dvojteèkou.
Obr. 3.3
48
Tvorba dlouhého øádkového vektoru KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
Obr. 3.3 ukazuje výpis vech 21 prvkù celého vektoru Osat. Je tøeba poznamenat, e u definic velmi dlouhých vektorù èi matic je vhodné pouívat støedník na konci výrazu. Jinak toti dojde k èasto dlouhému vypisování èísel, co jen zdruje od práce. Pokud se to stane, staèí stisknout klávesy Ctrl-C a zdlouhavý výpis je zastaven. Dlouhé vektory, vytvoøené popsaným zpùsobem, lze jednodue sdruovat do matic. Vyzkouejte si to podle obr. 3.4.
Obr. 3.4
Sdruení dvou vektorù do matice
Uvedené monosti tvorby matic a vektorù pøedstavují základní zpùsob jejich definice. MATLAB má i jiné zpùsoby, jak naplnit matice jejich èíselnými, pøíp. jinými obsahy. Pro základní seznámení se systémem vak tyto postupy postaèí.
&
A
Struèné shrnutí:
}
relativnì malé matice a vektory definujeme zápisem na dialogovém øádku hlavního okna; matice jsou zapisovány po øádcích, oddìlených støedníky, prvky jednotlivých øádkù se oddìlují mezerami nebo èárkami, napø. Mat=[1 2 3;4 5 6;7 8 9], Vek=[11 12 13 14],
}
k definici delích vektorù je vhodné pouít specifický zpùsob s vyuitím dvojteèek, napø. Osax=0:4*pi/100:4*pi,
}
pøi zápisu delích matic èi vektorù je vhodné pouívat støedníky, aby nedocházelo k zdlouhavým výpisùm prvkù, stane-li se to, pomocí Ctrl-C lze výpis pøeruit,
}
vektory lze jednodue sdruovat do matic.
3 PRÁCE S MATICEMI A ØEENÍ SOUSTAVY ROVNIC
49
4 Základní pouití 2D grafiky Grafický výstup je pro technika nezbytnou potøebou, nebo obrázek poví za tisíc slov, jak pravili ji staøí Èíòané. MATLAB v tomto smìru poskytuje znaèné monosti jak dvojrozmìrné (2D), tak i trojrozmìrné (3D) vizualizace výsledkù.
4.1
Struèný prùvodce pracovní plochou
Nové grafické okno vytvoøíme pøíkazem figure zapsaným do hlavního okna Command Window. Zaloí se grafické okno Figure No. 1 jako edá plocha. Okno se opìt chová jako bìné windowsovské lze jej posouvat, zmenovat atp.
Obr. 4.1
A
Vzhled pracovní plochy po zaloení grafického okna
4 ZÁKLADNÍ POUITÍ 2D GRAFIKY
69
Souèástí okna jsou rozbalovací menu a implicitnì i øada ikon Figure Toolbar Pruh nástrojù obrázku. Pro ilustraci jsou na obr. 4.2 uvedena dvì menu v rozbaleném tvaru a to menu View a Tools. Pøedevím proto, e zobrazují druhý pøístupný nástrojový pruh Camera Toolbar a nìkteré funkce nástroje Camera. Asi tuíte, e jde o nástroj vyuitelný plnì a ve 3D grafice.
Obr. 4.2 Rozbalovací menu Ikony mají formu typickou z windows; po najetí kurzoru se ve lutém políèku objeví její název. Ikonka New Figure Nový Soubor je stále plnì funkèní. Z prázdného obrázku Figure 1 si takto hned mùeme zaloit prázdný obrázek Figure 2, atd. I dalí ikonky v první sekci jsou, jak vzhledem, tak funkcí identické s ostatními ve windowsovských programech: Open File Otevøi soubor, Save Figure Ulo obrázek, Print Figure Vytiskni obrázek. Nyní si povimnìte druhé sekce ikon ve Figure Toolbar:
&
ukneme-li levým tlaèítkem myi na ikonu ipky (Edit Plot) a následnì provedeme na ploe obrázku Figure 1 dvojklik, otevøe se okno Editoru vlastností obrázku Property editor Figure.
Pouhým pohledem je patrné, e zde je mono nastavovat a mìnit vekeré atributy a nastavení pøísluného budoucího obrázku. Ná obrázek Figure 1 je prázdný a pøedstavuje jen edou plochu pozadí. Ale i tu mùeme ovlivnit. Tìm trochu obeznámenìj-
70
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
Obr. 4.3
Editor vlastností obrázku
ím s barevnou stupnicí je jasné, e kála [0,800 0,800 0,800] v rozbalovacím menu Background color (barva pozadí), pøedstavuje RGB souøadnice edé barvy. Mùeme pøímo rozbalit toto menu a zmìnit si barvu podkladu. Máme-li zakrtnuto políèko Immediate apply, tak se ve dle tohoto pøíkazu okamitì provede
Obr. 4.4
A
Monosti ovlivnìní barvy podkladu obrázku
4 ZÁKLADNÍ POUITÍ 2D GRAFIKY
71
5 Základní pouití 3D grafiky a dalí typy grafù Základní princip pouití 3D (tøírozmìrné) grafiky je v souladu s tím, co bylo vysvìtleno v kapitole 4 o práci s 2D grafikou. Mnohé pøíkazy pro práci s 3D grafy jsou analogií tìch dvourozmìrných, èasto jsou jim podobné i syntaxí. Rovnì editace 3D grafù je analogická jejich 2D ekvivalentùm. Graf 3D má celkem tøi osy, dvì nezávisle a jednu závisle promìnnou. Z toho vyplývají i nutná rozíøení moností nastavení grafù, ale i jejich základních typù. Tak jako v ostatních kapitolách, je i zde cílem uvést uivatele do problematiky. Prostudování vech moností a kombinací je pak na vaí píli. Ètenáø nech se dùkladnì seznámí s kapitolou 4, kde je vysvìtleno pouití a editace 2D grafù.
5.1
Vytvoøení spojitého 3D grafu
Principiálnì se tato èinnost nelií od tvorby 2D ekvivalentu. Je tøeba mít k dispozici:
} }
tøi vektory, popisující osy x, y, z (dvì nezávisle a jednu závisle promìnnou), klíèový pøíkaz pro vykreslení 3D grafu, pøíp. dalí povely pro editaci grafu (nebo pomocí menu).
Zapite a potvrïte: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t). Dojde k vykreslení základního typu spojitého grafu (parametricky zadaná roubovice). Aby graf vypadal lépe, je moné jetì dodat: grid on a axis square nebo box on. Vytvoøí se møíka a upraví osy. Tyto jednoduché editaèní povely jsou stejné jako u 2D grafu. Obecnì je pøíkaz plot3 tvoøen syntaxí: plot3(X,Y,Z), kde X, Y a Z jsou vektory nebo matice. V pøípadì matic se kreslí více køivek pro kadý sloupec jednotlivých matic. Jako u 2D grafu je moné pøidat dalí parametry povelu plot3 pro blií urèení typu kreslených bodù a èar, barev apod. Odezva na uvedené pøíkazy je na obr. 5.1. Dalí editaci vytvoøeného 3D grafu lze provést analogicky podle popisu v kapitolách 4.2 a 4.5 (popis os, natoèení grafu, zmìna tlouky èar, editace mìøítka na osách apod.). Lze jen doporuèit provádìt toto pomocí tlaèítek nad obrázkem. Vyuívejte nápovìdu help plot3 nebo okno pro interaktivní help (viz kapitolu 2.5).
A
5 ZÁKLADNÍ POUITÍ 3D GRAFIKY A DALÍ TYPY GRAFÙ
93
Obr. 5.1
5.2
Vytvoøení základního spojitého 3D grafu
Matice jako plocha
Kromì základního spojitého grafu je vak v Matlabu zakomponována monost kreslení ploných 3D grafù. Protoe celý systém je orientován maticovì, je matice základním objektem k dosaení takových velmi efektních grafù.
&
3D síovaný graf:
Zapite a potvrïte: x=3:0.125:3; y=x; [X,Y]=meshgrid(x,y);
vytvoøení vektoru na ose x (jedna nezávisle promìnná), vytvoøení vektoru na ose y (druhá nezávisle promìnná), vytvoøení zvlátní matice (møíky), která umoní následné 3D kreslení, Z=X.*exp(X.^2Y.^2); definice osy závisle promìnné, mesh(Z) klíèový povel pro vykreslení 3D síovaného grafu. Obrázek, dosaený povelem mesh, je velmi efektní. Dolo k vykreslení tzv. síovaného, barevnì kolorovaného grafu. Barevnì jsou rozlieny hodnoty závisle promìnné podle své velikosti. Hustota sítì grafu závisí na poètu bodù definovaných vektorù x a y. Vyzkouejte místo povelu mesh povel meshc. Výsledný graf je pak kombinací grafu ploného síovaného a tzv. contour (vrstevnicového) grafu, viz obr. 5.2 a obr. 5.3.
94
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
Obr. 5.2
Tvorba základního typu 3D síovaného grafu
Obr. 5.3
Varianta základního typu 3D síovaného grafu
Opìt lze pouít ji známé editaèní povely (axis, grid on, box on atd.). Povel axis bude mít vak nikoli ètyøi, nýbr est parametrù (tøi osy místo dvou).
A
5 ZÁKLADNÍ POUITÍ 3D GRAFIKY A DALÍ TYPY GRAFÙ
95