ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE MASARYKŮV ÚSTAV VYŠŠÍCH STUDIÍ Katedra inženýrské pedagogiky
Tvorba učebního textu MATLAB Bakalářská práce
Vedoucí práce: Prof. RNDr. Emanuel Svoboda, CSc. Vypracoval:
Ing. Ladislav Prskavec
srpen 2002
Prohlašuji, že jsem bakalářskou práci zpracoval(a) samostatně a uvedl(a) veškeré použité prameny a použitou literaturu.
Byl(a) jsem seznámen(a) s tím, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č.121/2000 Sb., zejména se skutečností, že MÚVS ČVUT má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta licence o užití jinému subjektu, je MÚVS ČVUT oprávněn ode mě požadovat přiměřený příspěvek na úhradu nákladů, které na vytvořené dílo vynaložil a to podle okolnosti až do jejich skutečné výše.
Souhlasím s prezenčním zpřístupněním na katedře inženýrské pedagogiky MÚVS ČVUT.
V Praze dne 25.8.2002
Ing. Ladislav Prskavec
....................................
2
Anotace Tento text pojednává o tvorbě textu pro nový předmět, který je zaměřen na řešení problémů pomocí algebraického systému MATLAB. Text je zaměřen na základy práce, snaží se o jednouchý, ucelený a názorný výklad s možností rozšíření problematiky na další moduly MATLABu. Část textu se věnuje výuce předmětu, kde je MATLAB vyučován, a jsou zde mé zkušenosti se studenty a výsledky jejich práce s hodnocením.
Annotation This thesis deals with creating text for new subject that it aimed at problem solving by algebraic system MATLAB. Text is centred on basis work with it. It tries about simple, compact and illustration interpretation with possibility extension to more toolbox of MATLAB. Part of text presents education’s experiences with students and it presents results of exercises with classifications.
3
Obsah 1
Úvod ...................................................................................................................5
2
Příprava na tvorbu učebního textu .....................................................................6
3
4
2.1
Posouzení a hodnocení ..............................................................................6
2.2
Požadavky na nový text..............................................................................6
Tvorba učebního textu........................................................................................8 3.1
Kapitola 1: Úvod do MATLABu, použití, výhody a nevýhody......................8
3.2
Kapitola 2: Základní příkazy a funkce.......................................................10
3.3
Kapitola 3: Příkazové okno .......................................................................13
3.4
Kapitola 4: M - files, skripty, funkce ..........................................................14
3.5
Kapitola 5: Práce s adresáři a soubory.....................................................16
3.6
Kapitola 6: Pole a operace s poli, speciální fce ........................................16
3.7
Kapitola 7: Práce s grafikou, 2D a 3D grafy..............................................20
Výuka................................................................................................................23 4.1
Učitel - zadání a vyhodnocení ..................................................................23
4.2
Žák - pochopení zadání a vypracování úloh.............................................25
5
Závěr ................................................................................................................29
6
Literatura ..........................................................................................................30
4
1 Úvod Tato práce si klade za cíl vytvořit text pro výuku předmětů, kde je používán počítačový algebraický systém MATLAB [18], zvláště pak bude použit pro výuku nového předmětu, který je v návrhu poslední přestavby studia na ČVUT FEL pro obor silnoproudá elektrotechnika. Vytvořený text je zaměřen na základy práce s MATLABem a je určen pro všechny studenty elektrotechniky. MATLAB je integrované prostředí pro vědeckotechnické výpočty, modelování, návrhy algoritmů, simulace, analýzu a prezentaci dat, měření a zpracování signálů, návrhy řídicích a komunikačních systémů. MATLAB je nástroj, jak pro pohodlnou interaktivní práci, tak pro vývoj širokého spektra aplikací. Program existuje řadu let a prošel dlouhým vývojem. Vlastní Matlab není jen v jedné linii základního programu, ale používá se spousta rozšíření (toolbox). Nejznámější a asi nejpoužívanější je Simulink. Simulink je program pro simulaci a modelování dynamických systémů, který využívá algoritmy Matlabu pro numerické řešení nelineárních diferenciálních rovnic. Poskytuje uživateli možnost rychle a snadno vytvářet modely dynamických soustav ve formě blokových schémat a rovnic. V poslední době se také rozšířila nabídka výrobce [18] o produkt FEMLAB švédské společnosti COMSOL. FEMLAB
je nadstavba MATLABu, která využívá jeho
matematických funkcí a grafického prostředí k modelování a k simulaci úloh z technické praxe v oblasti strojírenství, chemie, elektromagnetismu a z dalších oblastí fyziky. FEMLAB usnadňuje pochopení řady fyzikálních a technických procesů díky názorné grafice, snadné změně vstupních parametrů a možnosti simulace dané úlohy. Na řešení je možné v krátké době pohledět z několika zorných úhlů a efektivně tak najít optimální variantu. Výhoda Matlabu je nejen v jeho velkých možnostech, ale i v tom, jak je široce rozšířen v průmyslu a jeho verze existují pro řadu operačních systémů (Unix, Linux, Windows, Open VMS, IRIX, Solaris, Macintosh, HP-UX a další). Matlab je komerční software, ale existuje i jeho GNU varianta Octave [21]. Není to samozřejmě to samé, ale syntaxe příkazů a práce s tímto produktem je stejná jako v Matlabu, chybí další nadstavby a vylepšení, ale pro samotné výpočty je to velmi zajímavý nástroj. Hlavně je zdarma a tak přístupnější studentům i pro domácí použití. Studenti mají možnost také výhodně si pořídit studentskou verzi Matlabu, kde je rovněž velmi výhodná cena proti komerční verzi. 5
2 Příprava na tvorbu učebního textu Tvorbu nového učebního textu jsem rozdělil do dvou částí. V 2.1 se zabývám problematikou existence stávajících textů a manuálu k Matlabu a jejich hodnocení s přihlédnutím na subjektivní pohled z hlediska elektrotechniky. V 2.2 si stanovuji požadavky na nově vytvářený text. V části 3 následuje tvorba jednotlivých kapitol textu, který je zaměřen na základy práce s Matlabem a postihuje rozsah znalostí potřebných pro vypracování úloh.
2.1 Posouzení a hodnocení Vzhledem k tomu, že výrobce produkuje přibližně každý rok nějaký update programu, přibudou nové funkce, vylepšení a nové nadstavby, bylo potřeba vytvořit nový text pro výuku, který bude aktuální. Prostudoval jsem dostupnou literaturu v češtině a slovenštině [5],[8],[9] a později jsem se dostal i k zahraniční literatuře, kde jednoznačně dominuje asi jako nejlepší kniha [7].Napsaná je velmi dobře a podrobně. Důležité bylo nalézt také vhodné příklady, které by byli bližší studentům elektrotechniky a ty jsem našel v knize [10], která je koncipována jako text pro strojaře a příbuzné obory. To co jsem nenašel v žádném textu je přímo specializovaná kniha pro elektrotechniky se zaměřením na Matlab.
2.2 Požadavky na nový text Ze zkušeností, které jsem čerpal z výuky Matlabu a z dostupné literatury, jsem si stanovil tyto požadavky: 1
přehlednost
2
ucelenost
3
rozšiřitelnost
4
jednoduchost a názornost
Přehlednost textu je důležitá, aby se při studiu neztrácel přehled probírané problematiky a zároveň se dalo při pozdějším nahlédnutí lehce najít příslušné heslo či ukázka řešení problému. Ucelenost je v tom, že problémy nejsou jenom nastíněny, ale obsahují přehledné a srozumitelné řešení. Rozšiřitelnost textu je v tom, že stačí jednoduše připsat další kapitolu o novém toolboxu či rozšířit některé tabulky s funkcemi. 6
Jednoduchost a názornost je v tom, jak jsou problémy dány a předvedeny na příkladech, od jednoduchých úloh až ke složitějším úlohám.
7
3 Tvorba učebního textu 3.1 Kapitola 1: Úvod do MATLABu, použití, výhody a nevýhody Matlab (MATRIX LABORATORY) je produkt firmy Mathworks [18], u nás je jeho distributorem firma Humusoft [14].
3.1.1 Úvod Matlab je slovy firemní literatury: „Matlab je vysoce výkonný jazyk pro technické výpočty. Integruje výpočty, vizualizaci a programování do jednoduše použitelného prostředí, kde problémy i řešení jsou vyjádřeny v přirozeném tvaru.”
3.1.1.1 Použití • Matematika a výpočty 8
• Vývoj algoritmů • Modelování a simulace • Analýza dat výzkum a vizualizace • Inženýrské výpočty a grafika • Vývoj aplikací včetně grafického uživatelského rozhraní • Propojení s Excelem • Komplikace algoritmu do jazyka C • ...
3.1.1.2 Výhody Otevřenost – možnost rozšiřování o vlastní funkce. Toolboxy – orientované balíky hotových funkcí.
3.1.1.3 Nevýhody Práce s Matlabem vyžaduje určitý stupeň znalostí jeho syntaxe a základního okruhu funkcí. Dále pak je tu určitá nevýhoda v jeho vysoké ceně a v tom, že základní balík Matlab neumí pracovat se symbolickými výpočty.
3.1.1.4 Co za nás Matlab nevyřeší Matlab je výkonný a efektivní, ale pouze nástroj proto pro řešení problému musíme vědět: Co chci – mít jasnou a jednoznačnou formulaci problému. Jak toho dosáhnout – vědět (aspoň principiálně) jak se problém řeší. Jak ověřit výsledek – být schopen ověřit či odhadnout zda je získaný výsledek správný.
9
3.2 Kapitola 2: Základní příkazy a funkce
Obr. 3.1 Okno Matlabu
3.2.1 Základní příkazy: - pro přerušení prováděného příkazu CTRL+C - klávesy šipka nahoru/dolu umožňují pohyb po historii příkazů - editace řádku se provádí šipkami vlevo/vpravo, klávesami delete, backspace - klávesa ESC vymaže celý řádek - proměnné v Matlabu musí začínat písmenem a mohou mít až 31 znaků - rozlišují se malá a velká písmena - příkaz ukončený středníkem (;) se nevypisuje na obrazovku Operace sčítání, a+b odčítání, a-b násobení, a·b dělení, a÷b mocnění, ab
Symbol + * / nebo \ ^ Tab. 3.1
10
Příklad 3+22 90-54 3.14*0.85 56/8=8\56 2^8
3.2.2 Speciální proměnné: Speciální proměné ans pi eps flops inf Nan (nebo) nan i (a) j nargin nargout realmin realmax
Popis proměnná k uložení výsledku poměr obvodu a poloměru nejmenší použitelné číslo počet operací označení pro nekonečno (např. 1/0) označení nedefinované hodnoty (např. 0/0) komplexní jednotka počet vstupních parametrů funkce počet výstupních parametrů funkce nejmenší použitelné kladné realné číslo největší použitelné kladné realné číslo Tab. 3.2
>> pi ans = 3.1416 >> pi = 1.23e-4 pi = 0.000123 >> clear pi >> pi ans = 3.1416
% vymazání proměnné pi=1.23e-4 % zobrazí se hodnota π
Přetypování speciálních proměnných je možné a jejich hodnota se obnoví po vymazání proměnné se stejným názvem (clear nebo clear proměnná).
3.2.3 Nápověda Práce s nápovědou je velmi důležitá, nápověda v Matlabu je buď přístupná pomocí příkazové okna (command window) nebo si můžeme vyvolat samostatné okno nápovědy. Manuály jsou také na disku cdrom uložené také ve formátu pdf, který je vhodný pro tisk. Příkaz help help příkaz helpwin lookfor info
Popis nápověda, výpis příkazů a funkcí nápověda konkrétního příkazu nápověda v okně hledá klíčové slovo v helpu informace o Matlabu a fa Mathworks Tab. 3.3
11
3.2.4 Nastavení prostředí
3.2.5 Komplexní čísla M ∠θ = M ⋅ e jθ = a + bj M = a 2 + b2
θ = tan −1 (b / a) a = M ⋅ cos(θ ) b = M ⋅ sin(θ )
Komplexní funkce abs angle conj imag real unwrap isreal cplxpair
Popis absolutní hodnota nebo velikost fázový úhel v radiánech komplexně sdružený imaginární část kompexního čísla reálná část kompexního čísla konverze na stejný fázový úhel (ϕ+2πn) je true pro reálná pole setřídí vektor podle velikostí realných částí Tab. 3.4
>> x =[5, .45, .16] x = 5.0000 0.4500 0.1600 >> unwrap(x) % k hodnotám menším než 5 přičte násobek pi 0.45+2*pi=6.7332 ans = 5.0000 6.7332 6.4432
3.2.6 Matematické funkce Exponenciální funkce exp log log10 log2 pow2 sqrt nextpow2
Popis exponenciální fce logaritmická fce se základem e (e=2.7183) logaritmická fce se základem 10 logaritmická fce se základem 2 mocnina na druhou o základě 2 druhá odmocnina nejbližší vyšší druhá mocnina Tab. 3.5
12
Transformace souřadnic cart2sph cart2pol pol2cart sph2cart
Popis z kartézských do sférických z kartézských do polárních, cylindrických z polárních do kartézských z sférických do kartézských Tab. 3.6
Funkce factor isprime primes gcd lcm rat rats perms nchoosek
Popis rozklad na prvočísla je true pro prvočísla seznam prvočísel největší společný dělitel nejmenší společný násobek aproximace zlomkem vyjádření zlomkem permutace n nad k Tab. 3.7
>> rats(.54) ans = 27/50 >> rat(.54) ans = 1 + 1/(-2 + 1/(-6 + 1/(4)))
3.3 Kapitola 3: Příkazové okno 3.3.1 Práce s pracovní plochou who
- vypíše seznam existujících jmen
whos
- opět seznam jmen, s velikostí
type
- obsah souboru
cd
- aktuální cesta
13
3.3.2 Zobrazované formáty čísel Matlab příkaz format short format long format short e format long e format short g format long g format hex format bank format + format rat
pi 3.1416 3.14159265358979 3.1416e+000 3.141592653589793e+000 3.1416 3.14159265358979 400921fb54442d18 3.14 + 355/113 Tab. 3.8
V předchozí tabulce jsou příkazy s jednotlivými druhy formátů pro zobrazování čísel na obrazovce. Standardně je používán typ short, ale lze toto nastavení změnit v preferencích. Formáty jsou obdobné jako v jazyce C,C++ pro formátování pomocí printf. Tento příkaz lze také v Matlabu obdobně použít. Dále jsou tu jiné formáty jako je bank, který je vhodný pro práci s penězi či formát rat pro výpočty ve zlomcích.
3.4 Kapitola 4: M - files, skripty, funkce *.mat
- binární, uložené prostředí, jednotlivé proměnné (workspace)
*.mdl
- textový, model v Simulinku
*.m
- textový, program, funkce v Matlabu
M-file je soubor, který obsahuje sekvenci příkazů v Matlabu. Vytvoření tohoto souboru proběhne vybráním z menu: FILE > NEW > M-FILE. Zápis funkce:
function [out1, out2, ...]=jmeno_fce (in1, in2, ...) příkazy end; Volání funkce:
[x1,x2]=jmeno_fce(a,b,c); [x1,x2]=jmeno_fce(2,6,32); Vstup dat z klávesnice:
x=input(t) t...řetězec y=input(’Zadej y’); 14
Výstup dat na obrazovku: příkaz neukončíme středníkem příkaz disp(proměnná)
% fak_prog - program % výpočet faktoriálu clear; % vymazání proměnných s=´Výpočet faktoriálu´; disp(s); % zobrazení N=input(’Zadej celé číslo: ’); x=fak(N); % volání funkce t=’Faktoriál je: ’; disp(t); disp(x); % fak.m - funkce % výpočet faktoriálu function[x]=faktorial(N); x=1; i=1; while i
Popis zobrazení proměnné on, off ve skriptu vypis příkazů do příkazového okna výzva k vložení hodnoty dočasné použití lvávestnice, návrat return čeka na stisk jakékoliv klávesy čekat n sekund čeká dokud nestiknete tlačítko myši nebo klávesu Tab. 3.9
15
3.5 Kapitola 5: Práce s adresáři a soubory Manipulace se soubory cd (nebo) pwd p = cd delete soubor.m dir (nebo) ls d = dir exist('cow','file') exist('dname','dir') p = matlabroot type cow what which cow
Popis zobrazí aktuální cestu aktuální cesta v řetezci p vymaže soubor.m zobrazí soubory v aktuálním adresáři soubory v aktuální cestě ve struktuře d kontroluje existenci souboru cow.m kontroluje existenci adresáře dname aktuální cesta k programu Matlab v řetezci p vypíše soubor cow.m vypíše soubory *.m zobrazí cestu k souboru cow.m Tab. 3.10
Pro
3.6 Kapitola 6: Pole a operace s poli, speciální fce 3.6.1 Tvorba matic a vektorů a = [1;2;3;4;5]
- sloupcový vektor
c = [1,2,3,4,5]
- řádkový vektor
b = [1,2,3,4,5]’
- transpozice řádkového vektoru
[poc_radku,poc_sloupcu]=size(v) poc_radku
= 1
poc_sloupcu
= 186
size(v) ans = 1
186
16
Konstrukce pole x=[2 2*pi sqrt(2) 2-3j] x=prvni:posledni
Popis vytvoří řádkový vektor x obsahující specifické hodnoty vytvoří řádkový vektor x začínající na prvni, přičítá jedničku, končí hodnotou posledni vytvoří řádkový vektor x začínající na prvni, přičítá se prirustek, končí na posledni vytvoří řádkový vektor x začínající na prvni, končící posledni, pole obsahuje n prvků
x=prvni:prirustek:posledni x=linspace(prvni,posledni,n) x=logspace(prvni,posledni,n)
vytvoří řádkový vektor x začínající na 10 posledni , pole obsahuje n prvků 10
prvni
, končící
Tab. 3.11
3.6.2 Práce s částmi matice, vektoru a(2)
- zjištění hodnoty 2 prvku vektoru a
c(5)=x(2,3)
- hodnotu z druhého řádku a třetího sloupce matice x dej do pátého prvku vektoru c
x (2:5, 1:2) y=x(3,:) diag(y)
- vytvoření matice s kterou budeme dále pracovat - vyjmi třetí řádek, ulož do proměnné y a vypiš - prvky na diagonále error using, inner matrix dimensions must agree
* =
*
=
*
error using, inner matrix dimensions must agree
*
Obr. 3.2 Násobení matic
3.6.3 Operace s maticemi det
- determinant matice
inv
- inverze matice
´
- operátor transpozice (apostrof)
.’
- transpozice prvek po prvku (sdružená transpozice, rozdílná od transpozice v komplexních číslech) 17
sqrtm
- maticová odmocnina
expm
- maticová exponenciála
logm
- logaritmus matice
poly
- charakteristický polynom
size
- rozměry matice
roots
- vlastní čísla char. polynomu
max
- maximální prvek matice
*
- maticové násobení
.*
- násobení prvek po prvku
^
- maticové mocnění
.^
- mocnění prvek po prvku
\, /
- dělení zleva, zprava
.\
- dělení zleva prvek po prvku
./
- dělení zprava prvek po prvku
kron
- Kroknerovo tenzorové násobení Data
Operace prvek po prvku skalární součet skalární součin pole - sčítání pole - součin pole - dělení zprava pole - dělení zleva pole - mocnění
a=[a1 a2 ... an], b=[b1 b2 ... bn], c - skalár a+c = [a1+c a2+c ... an+c] a*c = [a1*c a2*c ... an*c] a+b = [a1+b1 a2+b2 ... an+bn] a.*b = [a1*b1 a2*b2 ... an*bn] a./b = [a1/b1 a2/b2 ... an/bn] a.\b = [a1\b1 a2\b2 ... an\bn] a.^c = [a1^c a2^c ... an^c] c.^a = [c^a1 c^a2 ... c^an] a.^b = [a1^b1 a2^b2 ... an^bn] Tab. 3.12
3.6.3.1 Práce s polynomy p ( x) = 4 x 5 + 3,1x 3 − 7 x 2 + 11 q( x) = − x 4 + x3 − x
p=[4 0 3.1 -7 0 11]; 18
q=[-1 1 0 -1 0]; y=polyval(p,x)
- vyčíslení polynomu p pro všechny hodnoty x
r=conv(p,q)
- násobení polynomu p,q
r=roots(p)
- kořeny polynomu p
x=[1 2 3 4 5]; y=[5.5 43.1 100.2 190.7 218.4]; r=polyfit(x,y,3)
- nalezení koeficientů
r= -6.8583 62.6964 -110.3452 61.5800 xx=0.9:0.1:5.1; yp=polyval(r,xx); yi=interp1(x,y,xx,’spline’); plot(x,y,’*’,xx,yp,xx,yi,’--’)
Obr. 3.3
sqrt, log, sin, cos, ...
- help elfun
gamma, bessel, faktoriál, transofrmace souřadnic - help specfun
3.6.3.2 Další funkce a operátory &, and
- logický součin
!, or
- logický součet
~, not
- negace
xor
- exclusive or
any
- true, nenulový jeden
all
- true, nenulové všechny 19
V Matlabu je prováděno u logických operátorů bezprecedentní zpracování. Proto je výraz a|b&c zpracován takto (a|b)&c a nikoliv takto a|(b&c), jak je tomu v některých programovacích jazycích. <, lt >,gt
- menší, větší než
<=,le >=,ge
- menší, větší nebo rovno
==, eg
- rovnost
~=, ne
- nerovnost
A>B nebo gt(A,B)
3.7 Kapitola 7: Práce s grafikou, 2D a 3D grafy 3.7.1 Funkce plot x=linspace(0,2*pi,30); y=sin(x); plot(x,y); title(’Obr. 1.17.1’); z=cos(x); plot(x,y,x,z), title(’Obr. 1.17.2’); Obr. 1.17.1
Obr. 1.17.2
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
-1
0
1
2
3
4
5
6
-1
7
Obr. 3.4
W=[y;z]; % plot(x,W) % title(’Obr. plot(W,x) % title(’Obr.
0
1
2
3
4
5
Obr. 3.5
vytvoření matice sin, cos vykreslení sloupců W v závislosti na x 1.17.3’); vykreslení x v závislosti na W 1.17.4’);
20
6
7
Obr. 1.17.3
Obr. 1.17.4
1
7
0.8 6 0.6 5
0.4
0.2
4
0 3
-0.2 -0.4
2
-0.6 1 -0.8
-1
0
1
2
3
4
5
6
0 -1
7
-0.8
-0.6
-0.4
Obr. 3.6
-0.2
0
0.2
0.4
0.6
0.8
1
Obr. 3.7
3.7.2 Styly čar, body a barvy Symbol b g r c m y k w
Barva modrá zelená červená modrozelená fialová žlutá černá bílá
Symbol . o x + * s d v ^ > < p h
Ukazatel bod kruh kříž plus hvězda čtverec diamand trojúhelník (dolu) trojúhelník (nahoru) trojúhelník (vpravo) trojúhelník (vlevo) pentagram hexagram Tab. 3.13
plot(x,y,’b:p’,x,z,’c-’,x,z,’m+’) title(’Obr. 1.17.5’)
21
Symbol : -. --
Styl čáry plná tečkovaná čerchovaná čárkovaná
Obr. 1.17.5 1
0.8 0.6 0.4 0.2
0
-0.2
-0.4 -0.6
-0.8
-1
0
1
2
3
4
5
6
7
5
6
7
Obr. 3.8
3.7.3 Formátování textu plot(x,y) gtext('\it x_{\alpha}+y^{2/pi}') 1 0.8 0.6 x +y2/pi α
0.4 0.2
0 -0.2 -0.4 -0.6 -0.8 -1
0
1
2
3
4
Obr. 3.9
3.7.4 3-D grafika Tisk a export grafiky
22
4 Výuka Výuku Matlabu jsem rozdělil do tří částí. V první části je teoretické seznámení s celou šířkou látky, kde mohou studenti, kteří problematiku znají, zjistit zda pro ně má smysl navštěvovat cvičení a zda jim nestačí vypracovat zadanou práci. Také v první části zadám práci, která se odevzdá na konci semestru. Zadání postihuje celou šíři dovedností s Matlabem a obsahuje několik úloh. V druhé části se věnuji na cvičení postupně každé důležité části Matlabu, na různých příkladech si procvičujeme práci s jednotlivými částmi a funkcemi. Probereme většinu toho, co potřebují k tomu, aby mohli velmi dobře zvládnout zadanou práci a dovedli se zorientovat pokud mají nový problém, který by chtěli řešit. Neopomeneme také zdůraznit chyby a úskalí práce s počítačovým algebraickým systémem. Třetí část je samostatná práce na zadané práci a její kontrola. Zadaná práce není jen o tom získat potřebné dovednosti, ale taky uplatnit své technické schopnosti a dovednosti. Vyžaduje se po studentech, aby se drželi správných technických postupů a náležitostí. Zvláště je to vidět u různého přístupu žáků k práci. Předpokladem pro zvládnutí práce s Matlabem je základní znalost programování. Dále pak znalost matematiky a to zvláště algebry pro práci s maticemi. Studenti by měli vědět něco o numerických metodách řešení úloh a případně je vhodné zahrnout krátké seznámení se základními numerickými metodami používanými v Matlabu.
4.1 Učitel - zadání a vyhodnocení Důležité je snažit se o to aby zadání bylo co možná nejméně komplikované a přehledně rozčleněno, aby studenti snáze pochopili. Ukázka zadání je v 4.1.1 a následují v 4.1.2 všeobecné pokyny, které mají usnadnit práci učiteli i žákům, kteří jsou dost vytížení různými dalšími pracemi. Hodnocení práce bylo stanoveno na základě toho zda dokázali studenti dodržet všechny formální stránky zadání, funkčnost úloh, případné inovace. Nové nápady či originalita řešení byla hodnocena body navíc.
23
4.1.1 Zadání 1
Vypracujete úlohu, která bude kreslit zadané funkce f1, f2, f3, f4. Výsledný obrázek bude obsahovat plochu rozdělenou na 4 menší části (subplot), které obsahují následující grafy:
1.1
Graf funkcí f1, f2, f3 odlišené barvou, stylem čáry a označením bodů. Graf obsahuje legendu (název funkce např. Sin(x)), popis os (např. napětí (V)), grafu (např. Obr.1) a případně mřížku.
1.2
Graf funkce f4 v logaritmickém měřítku (loglog, semilogx, semilogy). Graf obsahuje legendu (název funkce např. Sin(x)), popis os (např. napětí (V)), grafu (např. Obr.1) a případně mřížku.
1.3
Graf funkce, jehož hodnoty jsou uloženy v souboru data_XX.dat. Graf obsahuje legendu (název funkce např. Sin(x)), popis os (např. napětí (V)), grafu (např. Obr.1) a mřížku. (kde XX označuje vaše číslo úlohy, první sloupec jsou hodnoty osy x (čas) a druhý sloupec osy y (napětí)).
1.4
Graf funkce f1, f2. Popisky grafu vylepšíte pomocí funkce text s příslušnými popiskami
(např.
text(’\leftarrow
Sin(x)’)),
graf
popis
os
(např.
labelx(’napětí(V)’)), grafu (např. title(’Obr.1’)) a případně mřížku. Funkce zvolte podle uvážení s ohledem na toto zadání: f1 - trigonometrická funkce (např. Sin(x)-Cos(2x)) f2 - racionálně lomená funkce nebo polynom (např. x4-x3+3x2-5x-7) f3 - jiná trigonometrická funkce (např. Sin(2x)-Cos(x2)) f4 - funkce dobře zobrazitelná v logaritmických souřadnicích (např. log, exp, tan, ...) 2
Proveďte modifikaci úlohy 1 tak, aby před spuštěním vykreslení se program uživatele zeptal, co chce zobrazit (zobraz f1, zobraz f2, zobraz f3, zobraz f4, zobraz f1,f2, zobraz f3, f4) a pak zobrazí grafy dle jeho volby. Pokud si uživatel nevybere, tak se zobrazí obrázek dle předchozího zadání (úloha 1). Nezapomeňte, že plocha pro kreslení by měla být maximálně využita, žádný subplot, pokud budete kreslit 1 graf. Nezapomeňte na popis os, grafu a mřížku.
3
Dále proveďte modifikaci úlohy 1 pomocí GUI builderu (guide) a jednotlivé volby z klávesnice nahraďte tlačítky.
4
Proveďte tuto úlohu obdobně jako úlohu 1, ale aspoň dva grafy pomocí plot3,contour, surf nebo mesh, další dva grafy nakreslete pomocí bar, fill3, stairs nebo stem. Před spuštěním kreslení se program uživatele otáže, co chce 24
zobrazit (zobraz f1, zobraz f2, zobraz f3, zobraz f4, zobraz f1,f2, zobraz f3, f4) a pak zobrazí grafy dle jeho volby. Pokud si uživatel nevybere, tak se zobrazí obrázek se všemi grafy. Pokud nechcete použít vstup z klávesnice, použijte GUI. Nezapomeňte, že plocha pro kreslení by měla být maximálně využita žádný subplot, pokud budete kreslit 1 graf. Nezapomeňte na popis os, grafu a mřížku. 5
Vypracujte úlohu, která provede Gaussovu eliminaci matice po jednotlivých krocích, které vypíše. Pro ukázku zvolte matici 4. řádu, algoritmus musí fungovat pro jakoukoliv matici libovolného řádu, kontrola singularity matice není nutná, pokud použijete náhodnou matici (rand). Mělo by to fungovat jak pro čtvercovou matici n,n tak pro matici s pravou stranou. Celý program by měl být jeden soubor ke spuštění a fce, která bude provádět vlastní Gaussovu eliminaci.
4.1.2 Všeobecné pokyny Jednotlivé úlohy pojmenujte podobně student_1.m, student_2.m, student_3.m, student_4.m, student_5.m (např. novakj3_1.m). Funkce pojmenujte libovolně. Všechny úlohy plně funkční předvedete na posledních dvou cvičeních. Pro odevzdaní si připravte všechny úlohy také v zip souboru s vaším emailovým jménem (student.zip). Termín odevzdání dne 15.6. a 22.6. 20xx.
Jméno studenta … Novák Jan …
Číslo úlohy … 12 …
Tab. 4.1
4.2 Žák - pochopení zadání a vypracování úloh Pro ty studenty, kteří se zúčastňovali pravidelně cvičení, by neměl být problém v řešení úloh. Při odevzdání úloh jsem u některých řešení zaznamenal, že studenti kteří i když nebyli ani na jednom cvičení vypracovali zadání výborně. Část studentů vůbec nepochopila některé části zadání a ani se mnou své problémy nekonzultovali. Část odevzdávala šest úloh místo pěti, některým něco chybělo nebo to nefungovalo. Jeden student dokonce odevzdal zadaní z minulého roku a ani se nesnažil se informovat o novém zadání. Nejzajímavější bylo, že nikdo se neozval na dotaz, zda něčemu ze zadání nerozumí a ani později žádný emailový dotaz nepřišel.
25
4.2.1 Ukázky odevzdaných prací jednotlivých úloh
Obr. 10 - Ukázka z úloh
Na obrázku 10 je ukázka toho jak to nemá vypadat. Popis os by měl obsahovat více údajů nebo aspoň popis osa x,y, ale lépe veličinu a jednotku (např. čas (s)). Legenda f1, f2, f3 je také nedostačující. Na první pohled má být z legendy zřejmé co je to za graf.
26
Obr. 11 - Ukázka z úloh
U toho grafu kromě nedostatečného popisu os, je zřejmé že student nepochopil zadání a ani neví co má graf vlastně zobrazovat. Graf je časový průběh přechodného jevu a zde se nám zobrazují jakési dvě série, když soubor vstupních hodnot obsahuje jen jednu sérii pro osu y a druhá je určena pro osu x.
27
Obr. 12 - Ukázka z úloh
Tento graf obsahuje kromě již zmiňovaných chyb v popisu os a legendy také dále popisku přímo v grafu ze které není zřejmé co vyjadřuje a k čemu patří.
28
5 Závěr V závěru se chci věnovat nejenom zhodnocení práce, ale také tu poukázat na zkušenosti, které jsem získal při výuce studentů. Když jsem začal učit první předmět, který se věnoval Matlabu, převzal jsem materiály od předchozího vyučujícího a snažil se je inovovat. Postupně jsem získal zkušenosti a začal jsem pronikat do možností celého Matlabu a rozhodl jsem se předávat více zkušeností studentům, kteří měli o Matlab zájem a používali své znalosti v dalším studiu. Rozšířil jsem počet hodin, který je Matlabu věnován, trochu jsem ubral na nástavbě Simulink v prvním předmětu a přesunul tuto další část do dalšího předmětu. Změnil jsem systém zadávaní prací pro hodnocení studentů. Rozšířil jsem použití internetu ve výuce. Zadání a vyhodnocení prací se obejde bez přímé účasti studenta. Ale samozřejmě se mi to vrátilo v tom, že ne všichni studenti pochopili zadání správně a s některými bylo dost práce, aby to bylo vůbec schopné hodnocení. Tento text není učebnice, ale spíše jakási příručka a pomůcka pro studenta, který si nemusí zapisovat spoustu údajů, které se dají najít jinde. Tento text by nemusel vzniknout, pokud by všichni studenti uměli dobře anglicky a zároveň by byla finančně dostupná kvalitní literatura jako jsou knihy [4],[6],[7],[9],[10]. Proto ale je tu tento text, který slouží jako pomůcka k výkladu a jeho hlavní výhodou je, že je v něm zahrnuto to nejdůležitější co budou potřebovat a co se na nich bude vyžadovat v dalších letech studia, případně jim to ukáže cestu k dalšímu samostudiu. Do budoucna bych chtěl přeměnit tento vyučovací text v plně fulltextový text přístupný na internetu.
29
6 Literatura [1]
Drahovzal J., Kilián O., Kohoutek R.: Didaktika odborných předmětů, ISBN 80-85931-35-4, Paido, Brno, 1997
[2]
Švec V., Filová H., Šimoník O.: Praktikum didaktických dovedností, ISBN 80210-1365-6, Masarykova univerzita, Brno, 2000
[3]
Maňák J.: Nárys didaktiky, ISBN 80-210-1661-2, Masarykova univerzita, Brno, 1999
Skripta a knihy o Matlabu. [4]
Dabney James B., Harman Thomas L.: Mastering SIMULINK 4, Prentice-Hall , 2001, ISBN 0-13-017085-2.
[5]
Dušek F.: Matlab a Simulink úvod do používání, Univerzita Pardubice, Bratislava, 2000, ISBN 80-7194-273-1.
[6]
Hanselman D., Littlefield B.: Mastering MATLAB 5, Prentice-Hall , 1998, ISBN 0-13-243767-8.
[7]
Hanselman D., Littlefield B.: Mastering MATLAB 6, Prentice-Hall , 2001, ISBN 0-13-019468-9.
[8]
Kozák Š., Kajan S.: Matlab – Simulink I učebnice zaměřená na hlavní modul Matlab, STU v Bratislavě, Bratislava, 1999, ISBN 80-227-1213-2.
[9]
Kozák Š.: Matlab – Simulink II učebnice zaměřená na Control System Toolbox, STU v Bratislavě, Bratislava, 1999, ISBN 80-227-1235-3.
[10] Palm W. J. III: Introduction To Matlab 6 For Engineers, McGraw-Hill, 2001, ISBN 0-07-234983-2.
Články a materiály dostupné na internetu o Matlabu. [11] Control Tutorials for Matlab [online] [cit. 11. března 2002] Dostupné na internetu:
. [12] Dr. Hadi Saadat Homepage [online] [cit. 11.dubna 2002] Dostupné na internetu:
.
30
[13] GUI Programs with MATLAB for Electric Machines, Control Systems and Electric Circuits courses [online] [cit. 11.dubna 2002] Dostupné na internetu: < http://people.msoe.edu/~saadat/matlabgui.htm>. [14] Humusoft – Web Pages [online] [cit. 11. března 2002] Dostupné na internetu: . [15] Introduction to MATLAB and SIMULINK [online] [cit. 11.dubna 2002] Dostupné na internetu: . [16] Konference MATLAB 2001-1999 [online] [cit. 14. dubna 2002] Dostupné na internetu: . [17] Mathtools – The technical computing portal [online] [cit. 16. dubna 2002] Dostupné na internetu: . [18] Mathworks – MATLAB Web Pages [online] [cit. 11. března 2002] Dostupné na internetu: . [19] MATLAB Tutorials [online] [cit. 11. března 2002] Dostupné na internetu: [20] Matlab Web Server [online] [cit. 11. března 2002] Dostupné na internetu: . [21] GNU Octave [online] [cit.13. června 2002] Dostupné na internetu: .
31