Tvorba učebního textu MATLAB

  • Published on
    22-Mar-2016

  • View
    224

  • Download
    10

DESCRIPTION

Bakalarska prace

Transcript

<ul><li><p>ESK VYSOK UEN TECHNICK V PRAZE </p><p>MASARYKV STAV VYCH STUDI </p><p>Katedra inenrsk pedagogiky </p><p>Tvorba uebnho textu MATLAB Bakalsk prce </p><p>Vedouc prce: Prof. RNDr. Emanuel Svoboda, CSc. </p><p>Vypracoval: Ing. Ladislav Prskavec nor 2003 </p></li><li><p> 2</p><p>Prohlauji, e jsem bakalskou prci zpracoval(a) samostatn a uvedl(a) </p><p>veker pouit prameny a pouitou literaturu. </p><p> Byl(a) jsem seznmen(a) s tm, e se na moji prci vztahuj prva a </p><p>povinnosti vyplvajc ze zkona .121/2000 Sb., zejmna se skutenost, e MVS </p><p>VUT m prvo na uzaven licenn smlouvy o uit tto prce jako kolnho dla </p><p>podle 60 odst. 1 autorskho zkona, a s tm, e pokud dojde k uit tto prce </p><p>mnou nebo bude poskytnuta licence o uit jinmu subjektu, je MVS VUT </p><p>oprvnn ode m poadovat pimen pspvek na hradu nklad, kter na </p><p>vytvoen dlo vynaloil a to podle okolnosti a do jejich skuten ve. </p><p> Souhlasm s prezennm zpstupnnm na katede inenrsk pedagogiky </p><p>MVS VUT. </p><p>V Praze dne 28.01.2003 Ing. Ladislav Prskavec </p><p> .................................... </p></li><li><p> 3</p><p>Anotace </p><p>Tento text pojednv o tvorb textu pro nov pedmt, kter je zamen na een </p><p>problm pomoc potaovho algebraickho systmu MATLAB. Text je zamen </p><p>na zklady prce, sna se o jednouch, ucelen a nzorn vklad s monost </p><p>rozen problematiky na dal moduly MATLABu. st textu se vnuje vuce </p><p>pedmtu, kde je MATLAB vyuovn, a jsou zde m zkuenosti se studenty a </p><p>vsledky jejich prce s hodnocenm. </p><p>Annotation </p><p>This thesis deals with creating text for new subject that it aimed at problem solving </p><p>by computer algebra system MATLAB. Text is aimed at basis work with it. It tries </p><p>about simple, compact and illustration interpretation with possibility extension to </p><p>more toolbox of MATLAB. Part of text presents educations experiences with </p><p>students and it presents results of exercises with classifications. </p></li><li><p> 4</p><p>Obsah </p><p>1 vod ...................................................................................................................5 </p><p>2 Pprava na tvorbu uebnho textu .....................................................................6 </p><p>2.1 Posouzen a hodnocen ..............................................................................6 </p><p>2.2 Poadavky na nov text..............................................................................6 </p><p>3 Tvorba uebnho textu........................................................................................7 </p><p>3.1 Co je Matlab ?.............................................................................................7 </p><p>3.2 Systm MATLAB ........................................................................................7 </p><p>3.3 Dokumentace..............................................................................................8 </p><p>3.4 Zkladn funkce ..........................................................................................9 </p><p>3.5 Vuka........................................................................................................20 </p><p>3.6 Uitel - zadn a vyhodnocen ..................................................................20 </p><p>3.7 k - pochopen zadn a vypracovn loh.............................................22 </p><p>4 Zvr ................................................................................................................25 </p><p>5 Literatura ..........................................................................................................26 </p></li><li><p> 5</p><p>1 vod Tato prce si klade za cl vytvoit text pro vuku pedmt, kde je pouvn </p><p>potaov algebraick systm MATLAB [19], zvlt pak bude pouit pro vuku </p><p>novho pedmtu, kter je v nvrhu posledn pestavby studia na VUT FEL pro </p><p>obor silnoproud elektrotechnika. Vytvoen text je zamen na zklady prce </p><p>s MATLABem a je uren pro vechny studenty elektrotechniky. </p><p>MATLAB je integrovan prosted pro vdeckotechnick vpoty, modelovn, </p><p>nvrhy algoritm, simulace, analzu a prezentaci dat, men a zpracovn signl, </p><p>nvrhy dicch a komunikanch systm. MATLAB je nstroj, jak pro pohodlnou </p><p>interaktivn prci, tak pro vvoj irokho spektra aplikac. </p><p>Program existuje adu let a proel dlouhm vvojem. Vlastn Matlab nen jen v jedn </p><p>linii zkladnho programu, ale pouv se spousta rozen (toolbox). Nejznmj a </p><p>asi nejpouvanj je Simulink. </p><p>Simulink je program pro simulaci a modelovn dynamickch systm, kter vyuv </p><p>algoritmy Matlabu pro numerick een nelinernch diferencilnch rovnic. </p><p>Poskytuje uivateli monost rychle a snadno vytvet modely dynamickch soustav </p><p>ve form blokovch schmat a rovnic. </p><p>V posledn dob se tak rozila nabdka vrobce [19] o produkt FEMLAB vdsk </p><p>spolenosti COMSOL. FEMLAB je nadstavba MATLABu, kter vyuv jeho </p><p>matematickch funkc a grafickho prosted k modelovn a k simulaci loh z </p><p>technick praxe v oblasti strojrenstv, chemie, elektromagnetismu a z dalch </p><p>oblast fyziky. FEMLAB usnaduje pochopen ady fyziklnch a technickch </p><p>proces dky nzorn grafice, snadn zmn vstupnch parametr a monosti </p><p>simulace dan lohy. Na een je mon v krtk dob pohledt z nkolika zornch </p><p>hl a efektivn tak najt optimln variantu. </p><p>Vhoda Matlabu je nejen v jeho velkch monostech, ale i v tom, jak je iroce </p><p>rozen v prmyslu a jeho verze existuj pro adu operanch systm (Unix, Linux, </p><p>Windows, Open VMS, IRIX, Solaris, Macintosh, HP-UX a dal). Matlab je komern </p><p>software, ale existuje i jeho GNU (general public license) varianta Octave [22]. Nen </p><p>to samozejm to sam, ale syntaxe pkaz a prce s tmto produktem je stejn </p><p>jako v Matlabu, chyb dal nadstavby a vylepen, ale pro samotn vpoty je to </p><p>velmi zajmav nstroj. Hlavn je zdarma a tak pstupnj studentm i pro domc </p><p>pouit. Studenti maj monost tak vhodn si podit studentskou verzi Matlabu, </p><p>kde je rovn velmi vhodn cena proti komern verzi. </p></li><li><p> 6</p><p>2 Pprava na tvorbu uebnho textu Tvorbu novho uebnho textu jsem rozdlil do dvou st. V 2.1 se zabvm </p><p>problematikou existence stvajcch text a manulu k Matlabu a jejich hodnocen </p><p>s pihldnutm na subjektivn pohled z hlediska elektrotechniky. V 2.2 si stanovuji </p><p>poadavky na nov vytven text. </p><p>V sti 3 nsleduje tvorba jednotlivch kapitol textu, kter je zamen na zklady </p><p>prce s Matlabem a postihuje rozsah znalost potebnch pro vypracovn loh. </p><p>2.1 Posouzen a hodnocen </p><p>Vzhledem k tomu, e vrobce produkuje piblin kad rok njak update </p><p>programu, pibudou nov funkce, vylepen a nov nadstavby, bylo poteba vytvoit </p><p>nov text pro vuku, kter bude aktuln. Prostudoval jsem dostupnou literaturu </p><p>v etin a sloventin [6],[9],[10] a pozdji jsem se dostal i k zahranin literatue, </p><p>kde jednoznan dominuje asi jako nejlep kniha [8].Napsan je velmi dobe a </p><p>podrobn. Dleit bylo nalzt tak vhodn pklady, kter by byli bli studentm </p><p>elektrotechniky a ty jsem nael v knize [11], kter je koncipovna jako text pro </p><p>strojae a pbuzn obory. To co jsem nenael v dnm textu je pmo </p><p>specializovan kniha pro elektrotechniky se zamenm na Matlab. </p><p>2.2 Poadavky na nov text </p><p>Ze zkuenost, kter jsem erpal z vuky Matlabu a z dostupn literatury, jsem si </p><p>stanovil tyto poadavky: </p><p>1 pehlednost </p><p>2 ucelenost </p><p>3 roziitelnost </p><p>4 jednoduchost a nzornost </p><p>Pehlednost textu je dleit, aby se pi studiu neztrcel pehled probran </p><p>problematiky a zrove se dalo pi pozdjm nahldnut lehce najt pslun heslo </p><p>i ukzka een problmu. Ucelenost je v tom, e problmy nejsou jenom </p><p>nastnny, ale obsahuj pehledn a srozumiteln een. Roziitelnost textu je </p><p>v tom, e sta jednodue pipsat dal kapitolu o novm toolboxu i rozit nkter </p><p>tabulky s funkcemi. Jednoduchost a nzornost je v tom, jak jsou problmy dny a </p><p>pedvedeny na pkladech, od jednoduchch loh a ke sloitjm lohm. </p></li><li><p> 7</p><p>3 Tvorba uebnho textu </p><p>3.1 Co je Matlab ? </p><p>MATLAB [4] je vysoce vkonn jazyk pro technick vpoty. Integruje vpoty, </p><p>vizualizaci a programovn do jednodue ovladatelnho prosted, kde problmy a </p><p>een jsou vyjdeny pomoc dobe znmch matematickch vztah. Typick </p><p>pouit zahrnuje: </p><p> Matematiku a vpoty Tvorba algoritm Zskvn dat Modelovn a simulace Analza dat, vzkum a vizualizace Vdeck a inenrsk grafika Tvorba aplikac, vetn grafickho rozhran </p><p>MATLAB je interaktivn systm,kter umouje prci s poli, kter nen poteba </p><p>dimenzovat. To umouje eit mnoho technickch problm s pouitm formulac </p><p>pomoc vektor a matic. Ve zlomku asu se daj napsat programy podobn jako v C </p><p>nebo ve Fortranu. </p><p>Jmno MATLAB je zkratka z slov matrix laboratory. MATLAB byl vyvinut ped lety </p><p>s podnty od mnoha uivatel. V univerzitnm prosted je to standardn instruktn </p><p>nstroj v vodnch a pokroilch kursech matematiky, techniky a vdy. V prmyslu </p><p>je to vysoce produktivn nstroj pro vzkum, vrobu a analzu. </p><p>3.2 Systm MATLAB </p><p>Systm MATLAB se skld z pti hlavnch st: </p><p>Vvojov prosted. Tato sada nstroj a prostedk pomh v prci s funkcemi a soubory. Mnoho tchto nstroj m grafick uivatelsk prosted. To zahrnuje </p><p>plochu MATLABu, pkazov okno, historii pkaz, editor, ladc software a prohle </p><p>helpu, plochy, soubor a vyhledvc cesty. </p><p>Knihovna matematickch funkc MATLABu. To je obrovsk sada vpoetnch algoritm v rozsahu od elementrnch funkc jako suma, sin, cos a komplexn </p></li><li><p> 8</p><p>aritmetika k vce sofistikovanm funkcm jako je inverze matice, vlastn sla matice, </p><p>Besselovy funkce a rychl Fourierova transformace. </p><p>Jazyk MATLAB. To je pokroil jazyk pro prci s maticemi a poli s monost zen vpotu. Jazyk umouje prci s datovmi strukturami, s vstupem a vstupem. Je </p><p>zahrnuta podpora objektovho programovn. To umouje dv vci, jak velmi </p><p>rychle udlat jednoduch program tak vytvet sloit komplexn aplikace. </p><p>Grafika. MATLAB m rozshl prostedky pro zobrazen vektor a matic jako grafy, prv tak jako monosti popisu a tisku tchto graf. MATLAB m mnoho funkc pro </p><p>2D a 3D vizualizaci dat, zpracovn obrazu, animac a prezentac grafiky. </p><p>Rozhran MATLABu pro aplikan programy (API). Tato knihovna nm umouje pst programy v C a ve Fortranu, kter komunikujc s MATLABem. To zahrnuje </p><p>prostedky pro voln podprogram z MATLABu (dynamick linky), voln </p><p>vpoetnho jdra MATLABu, a umouje ten a zpis MAT soubor. </p><p> Obr. 3.1 vodn obrazovka </p><p>3.3 Dokumentace </p><p>Dokumentace je ve dvou podobch jako on-line help a ve formtu pro tisk (pdf), </p><p>online dokumentace obsahuje taky mnoho pklad. Dokumentace MATLABu je </p><p>rozdlena do tchto hlavnch st (nzvy jsou dle dokumentace v anglitin): </p><p> Development Environment - Poskytuje kompletn informace o pracovn ploe MATLABu. </p></li><li><p> 9</p><p> Mathematics - V tto sti jsou popsny matematick a statistick schopnosti MATLABu. </p><p> Programming and Data Types - Popisuje jak pst skripty a funkce v jazyku MATLABu. </p><p> Graphics - V tto sti jsou popsny monosti grafickho vstupu MATLABu. 3-D Visualization - Tato st popisuje pouit pohled, svtla a prhlednosti </p><p>a dalch grafickch monost ve 3D. </p><p> Creating Graphical User Interfaces - Zde je popsno jak vytvet grafick rozhran. </p><p> External Interfaces/API - Popisuje propojen MATLABu s programy v jazyce C a Fortran, Java tdy a objekty, COM objekty, datov soubory, sriov port </p><p>I/O a DDE. </p><p>3.4 Zkladn funkce </p><p> pro peruen provdnho pkazu CTRL+C klvesy ipka nahoru/dolu umouj pohyb po historii pkaz editace dku se provd ipkami vlevo/vpravo, klvesami delete, backspace klvesa ESC vymae cel dek promnn v MATLABu mus zanat psmenem a mohou mt a 31 znak rozliuj se mal a velk psmena pkaz ukonen stednkem (;) se nevypisuje na obrazovku </p><p>3.4.1 Jednoduch matematika </p><p>V tab.1 jsou zkladn operace a pro bn matematick operace, s tm rozdlem, e </p><p>MATLAB pracuje stejn s sly tak se promnnmi, kter mu nadefinujeme (nap. </p><p>a=5, b=3). Pro kombinace promnnch a relnch sel zapisujeme 5*a. Pokud </p><p>zapomene symbol pro nsoben, nastane chyba. </p></li><li><p> 10</p><p>Operace Symbol Pkladstn, a+b + 3+22odtn, a-b - 90-54nsoben, ab * 3.14*0.85dlen, ab / nebo \ 56/8=8\56mocnn, ab ^ 2^8 </p><p>Tab. 1 </p><p>V tab.2 jsou rzn pedem nadefinovan promnn, kter se vyuij pi vpotu. </p><p>Krom znmch pi (Ludolfovo slo) a komplexnch jednotek (i nebo j) jsou tam </p><p>dal, kter souvis s numerickou matematikou pota (eps, realmin, realmax, inf, </p><p>NaN, flops). Dleit jsou inf (nekoneno) a Nan (neplatn numerick operace) se </p><p>ktermi se meme pi vpotech astji setkat. Petypovn specilnch </p><p>promnnch je mon a jejich hodnota se obnov po vymazn promnn se </p><p>stejnm nzvem (clear nebo clear promnn). </p><p>Nejdleitj st kadho potaovho algebraickho systmu (PAS) jako je </p><p>MATLAB je npovda (help). Pkazy pro prci s npovdou jsou v tab. 3, dle </p><p>v programu funguje standardn npovda, kterou vyvolme pes menu (help &gt; </p><p>MATLAB help). </p><p>Speciln promn Popisans promnn k uloen vsledkupi pomr obvodu a polomrueps nejmen pouiteln sloflops poet operacinf oznaen pro nekoneno (nap. 1/0)Nan (nebo) nan oznaen nedefinovan hodnoty (nap. 0/0)i (a) j komplexn jednotkanargin poet vstupnch parametr funkcenargout poet vstupnch parametr funkcerealmin nejmen pouiteln kladn realn slorealmax nejvt pouiteln kladn realn slo </p><p>Tab. 2 </p><p>Pkaz Popishelp npovda, vpis pkaz a funkchelp pkaz npovda konkrtnho pkazuhelpwin npovda v oknlookfor hled klov slovo v helpuinfo informace o Matlabu a fa Mathworks </p><p>Tab. 3 </p></li><li><p> 11</p><p>Komplexn funkce Popisabs absolutn hodnota nebo velikostangle fzov hel v radinechconj komplexn sdruenimag imaginrn st kompexnho slareal reln st kompexnho slaunwrap konverze na stejn fzov hel (+2n)isreal je true pro reln polecplxpair setd vektor podle velikost realnch st </p><p>Tab. 4 </p><p> Exponenciln funkce Popisexp exponenciln fcelog logaritmick fce se zkladem e (e=2.7183)log10 logaritmick fce se zkladem 10log2 logaritmick fce se zkladem 2pow2 mocnina na druhou o zklad 2sqrt druh odmocninanextpow2 nejbli vy druh mocnina </p><p>Tab. 5 </p><p>Pro prci s komplexnmi sly slou funkce v tab.4, komplexn slo se zapisuje ve </p><p>tvaru a+j*b nebo a+i*b. Obdobn jako pro prci s komplexnmi sly jsou k dispozici dal funkce, kter bychom mohli potebovat, po podrobnm prostudovn </p><p>npovdy, zjistte, e nechyb tm nic. A co chyb si mete sami naprogramovat. </p><p>V dal tabulkch jsou funkce pro prc s exponencilnmi funkcemi (tab.5), funkce </p><p>pro transformaci souadnic (tab.6), rzn funkce pro prci s zlomky, prvosly i </p><p>permutacemi (tab.7). </p><p>Transformace souadnic</p><p>Popis</p><p>cart2sph z kartzskch do sfrickchcart2pol z kartzskch do polrnch, cylindrickchpol2cart z polrnch do kartzskchsph2cart z sfrickch do kartzskch </p><p>Tab. 6 </p></li><li><p> 12</p><p>Funkce Popisfactor rozklad na prvoslaisprime je true pro prvoslaprimes seznam prvoselgcd nejvt spolen dlitellcm nejmen spolen nsobekrat aproximace zlomkemrats vyjden zlomkemperms permutacenchoosek n nad k </p><p>Tab. 7 </p><p>3.4.2 Formtovn, prce s vstupem a vstupem </p><p>Pro zobrazen sel pouvn pkaz format (tab.8 ukzka formtovn sla PI pro rzn druhy formt). MATLAB si uchovv pesnou reprezentaci sel </p><p>v pamti, ale jak je chceme zobrazit a pracovat s nimi je na uivateli. </p><p>V pracovn ploe vidme aktuln definovan promnn, kter si meme vypsat </p><p>tak pomoc pkazu who (vype seznam existujcch jmen) a whos (opt seznam jmen, s velikost). </p><p>Pro prci s MATLABem jsou mon dva pstupy, bu jednodue zadvme pkazy </p><p>v okn pkaz (command window) a potme. To m nevhodu v tom, e pokud </p><p>chceme tento vpoet zopakovat, tak musme ve napsat znovu. Proto se pouv </p><p>spe druh zpsob a to je vytven soubor s pponou .m (m-file). Je to textov </p><p>soubor, kter obsahuje sled pkaz v MATLABu. </p><p>Pokud chceme napsat speciln funkci musme ji vytvoit jako samostatn soubor a </p><p>mus mt tuto syntaxi. </p><p>Zpis funkce: </p><p> function [out1, out2, ...]=jmeno_fce (in1, in2, ...) pkazy end; </p><p>Potom funkci meme volat: </p><p> [x1,x2]=jmeno_fce(a,b,c); [x1,x2]=jmeno_fce(2,6,32); </p></li><li><p> 13</p><p>Matlab pkaz piformat short 3.1416format...</p></li></ul>