Příklady k druhému testu - Matlab 20. března 2013 Instrukce: Projděte si všechny příklady. Každý příklad se snažte pochopit. Pak vymyslete a naprogramujte příklad podobný. Tím se ujistíte, že příkladu rozumíte. Další příklady najdete na stránkách Ivana Nagye. Učivo: Generování náhodných čísel s rovnoměrným rozdělením od A do B. Generování náhodných čísel s normovaným normálním rozdělením. Kreslení grafů pomocí plot, hist, bar. Kreslení více funkcí do jednoho grafu. Titulky ke grafům a popisy os. Práce s řádky a sloupci matic. Mazání řádků a sloupců matic a položek vektorů. Generování náhodných čísel s rovnoměrným rozdělením od A do B Vygenerujte deset tisíc čísel s rovnoměrným rozdělením mezi 5 a 10. Vykreslete histogram těchto čísel s 30 sloupci. Otevřu si editor! X= rand (1,10000); % 1 radek, 10000 sloupcu, cisla 0...1 X=X *5; %0...5 X=X +5; %5...10 hist (X,30); %30 sloupcu 1
Generování náhodných čísel s normovaným normálním rozdělením Vygenerujte deset tisíc čísel s normovaným normálním rozdělením. Vykreslete histogram těchto čísel s 30 sloupci. Otevřu si editor! X = randn ( 1, 10000); % vsimnete si pismena " n" jako normal hist (X,30); %30 sloupcu Titulky ke grafům a popisky os Vygenerujte graf funkce y = 1 x. 2 Hodnoty x volte v rozsahu 1 až 5 s krokem 0,01. Graf pojmenujte Graf pokusný. Na osu x dejte popisek Čas a na osu y Pozornost. 2
X =1:0.01:5; Y =1./ X.^2; % Vsimnete si tecek!!!!!!! plot (X,Y); title ( Graf pokusny ); % Titulek xlabel ( Cas ); % Popisky os ylabel ( Pozornost ); Sloupcový graf - bar Vygenerujte sloupcový graf funkce y = 1 x 2. Hodnoty x volte: 1, 2, 3, 4, 5. 3
X =[1,2,3,4,5]; Y =1./ X.^2; % Vsimnete si tecek!!!!!!! Y=Y ; % Transpozice - % sloupce se zobrazuji pro radky matice * bar ( X, Y); % Vykresleni sloupcoveho grafu % X urcuje pozici sloupcu % Muze byt sloupcove i radkove * Pozor! Matici je nutno transponovat! Každý SLOUPEC v matici má svou barvu. Vygenerujte sloupcový graf pro dvě funkce: První je dána rovnicí: y = x 2. Hodnoty x volte: -3, -2, -1, 0, 1, 2, 3. Druhá je vygenerována náhodně. Hodnoty mají rovnoměrné rozdělení mezi 8 a 10. %Sedm hodnot prvni funkce X= 3:3; Y=X. ^ 2 ; %Tecka!!! %Sedm hodnot druhe funkce Z=rand ( 1, 7 ) ; % 0...... 1 Z=Z 2; % 0...... 2 Z=Z+8; % 8...... 1 0 Spojena =[Y; Z ] ; %Pozor! Spojena=Spojena ; %Pozor! bar ( Spojena ) ; %V y k r e s l e n i sloupcoveho grafu 4
* Všechny veličiny, které chci zobrazit, dám do jedné matice POD sebe. Pokud dám místo středníku čárku, dostanu místo grafu 7 2 graf 14 1: ** Pokud neudělám transpozici, dostanu místo grafu 7 2 graf 2 7: *** Pokud neuvedu X, automaticky se bere 1, 2, 3,... Nakreslete do jednoho obrázku tři sloupcové grafy: 5
První graf je dán funkcí y = 1 x 2. Hodnoty x volte: 1, 2, 3, 4, 5, 6, 7. Druhý graf zobrazí sedm náhodně generovaných hodnot s normovaným normálním rozdělením. Třetí graf zobrazí sedm náhodně generovaných hodnot s rovnoměrným rozdělením mezi 3 a 5. X =1:7; Y =1./ X.^2; Z= randn (1,7); T= rand (1,7); T=T *2; T=T +3; Spojena =[Y;Z;T]; Spojena = Spojena ; bar ( Spojena ); Více grafů v jednom obrázku Vygenerujte deset tisíc čísel s normovaným normálním rozdělením. Vykreslete histogram těchto čísel s 30 sloupci. Do téhož obrázku vykreslete červeně funkci: y = 2700 2π e x2 2. Hodnoty x volte od -4 do 4 s krokem 0,01. 6
% Nahodna cisla NC = randn ( 1, 10000); % vsimnete si pismena " n" jako normal % Funkce X = -4:0.01:4; Y =2700/ sqrt (2* pi )* exp ( -0.5* X.^2); % Vsimnete si: % sqrt - odmocnina % exp - prirozena exponenciela % Tecka u druhe mocniny!!! hold on; % Grafy budou v jednom obrazku hist (NC,30); %30 sloupcu plot (X,Y, r ); hold off ; % Dalsi graf bude do noveho obrazku Nakreslete do jednoho obrázku dva grafy: Sloupcovy graf pro y = x 2. Hodnoty x volte: 1, 2, 3, 4, 5, 6, 7. Graf téže funkce y = x 2. Volte červenou barvu. Hodnoty x volte v rozsahu 0 až 8 s krokem 0,01. % Prvni funkce X =1:7; Y=X.^2; Y=Y ; % Druha funkce x =0:0.01:8; y=x.^2; 7
% Vykresleni hold on; bar (Y); plot (x,y, r ); hold off ; Práce s maticemi Vezměme matici A = 3 2 3 3 1 2 3 0 1 Nejprve ji umocněte na třetí, pak její položky umocněte na druhou.. Pak změňte pořadí sloupců tak, aby bylo: třetí sloupec, první sloupec, druhý sloupec. Na konec přidejte ještě jednou první sloupec. Smažte druhý řádek. Matici transponujte a vykreslete do sloupcového grafu. A =[3,2,3;3,1,2;3,0,1]; A = A ^3; % Nejprve ji umocnete na treti A = A. ^2; % pak jeji polozky umocnete na druhou. A=A (:,[3,1,2]); % treti sloupec, prvni sloupec, druhy sloupec A=[A,A (:,1)]; %Na konec pridejte jeste jednou prvni sloupec A (2,:)=[]; % Smazte druhy radek A=A ; % Matici transponujte bar ( A); % a vykreslete do sloupcoveho grafu. 8
2 2 3 Vezměme matici A = 2 1 2. 3 0 1 Vytvořte matici B, ktará bude mít stejné sloupce jako A, ale v pořadí: 3, 1, 2, 3, 2, 1 sloupec. Tedy celkem šest sloupců. Umocněte všechny položky B na druhou. Tím získáte matici C. Vynásobte transponovanou matici C s maticí C v tomto pořadí. Tím získáte matici D. Smažte druhý, pátý a šestý řádek matice D. Matici D transponujte a vykreslete do sloupcového grafu. A =[2,2,3;2,1,2;3,0,1]; B=A (:,[3,1,2,3,2,1]); %v poradi : 3, 1, 2, 3, 2, 1 sloupec C = B. ^2; % Umocnete vsechny polozky na druhou D =C * C; % Vynasobte transponovanou matici C s maticí C D ([2,5,6],:)=[]; % Smazte druhy, paty a sesty radek matice D D=D ; % Matici D transponujte bar ( D); % a vykreslete do sloupcoveho grafu. 9
Vygenerujte 20 000 náhodných čísel s rovnoměrným rozdělením od 7 do 10. Umocněte tato čísla na třetí. Smažte čísla menší než 500. Vykreslete histogram zbylých čísel. X= rand (1,20000); %0...1 X=X *3; %0...3 X=X +7; %7...10 Y=X.^3; % umocnete tato cisla na treti for N =20000: -1:1 % Pozor!!! * if Y(N ) <500 Y(N )=[]; end ; end ; hist (Y); * Pozor! Vektor musíme probíhat od konce, protože se průběžně zkracuje! Pokud bychom probíhali od 1 do 20 000, tak poslední položky by už dávno neexistovaly a program by ohlásil chybu. Také pozor na krok -1! 10
11