ZZS - 1.cvičení: Úvod do MATLABu, 22.září 2014 ----------------------------------------------------------- A. Příklady na cvičení ........................................................... PŘÍKLAD 1: Vektory Vytvořte vektor výpisem jednotlivých prvků: vektor1 = 0 2 4 6 8 10 12 Vytvořte vektor zápisem hodnot OD, KROK, DO: vektor2 = 0 1 2 3 4 5 6 7 8 9 10 vektor3 = 0 2 4 6 8 10 vektor4 = -pi/2 -pi/4 0 pi/4 pi/2 Vytvořte vektor zápisem hodnot OD, DO, POČET: vektor5 = 0 2 4 6 8 10 vektor6 = 10 17.7828 31.6228 56.2341 100 -- Řešení: >> vektor1 = [0, 2, 4, 6 8 10 12] >> vektor2 = 0:10 >> vektor3 = 0:2:10 >> vektor4 = -pi/2:pi/4:pi/2 >> vektor5 = linspace(0,10,6) >> vektor6 = logspace(1,2,5) ........................................................... PŘÍKLAD 2: Vytvořte vektory (různými způsoby): vektor7 = 0 4 10 12 15 16 8 vektor8 = 0 3 6 9 12 15 vektor9 = -4 -2 0 2 4 6 8 vektor10 = 10 100 1000 10000 100000 vektor11 = 0 0 0 0 0 vektor12 = 1 1 1 -- Řešení: >> vektor7 = [0 4 10 12 15 16 8] >> vektor8 = 0:10 >> vektor9 = 0:3:15 >> vektor10 = logspace(1,5,5) >> vektor11 = zeros(1,5) >> vektor12 = ones(1,3) ........................................................... PŘÍKLAD 3: Operace s vektory Vytvořte: vektor13 = 1 2 3 vektor14 = 2 3 4 Násobení vektoru konstantou vektor15 = vektor14 * 2 Násobení vektoru vektorem vektor16 = vektor13 * vektor14 vektor17 = vektor13 .* vektor14 vektor18 = vektor13 * vektor14' -- Řešení: >> vektor13=1:3 >> vektor14=2:4 >> vektor15=vektor14*2 >> vektor16 = vektor13 * vektor14 % nelze >> vektor17 = vektor13 .* vektor14 % nasobeni prvku s prvkem >> vektor18 = vektor13 * vektor14' % soucin radku a sloupce ........................................................... PŘÍKLAD 4: Matice Vytvořte matice matice1 = [ 1 2 3 ] matice2 = [ 1 2 3 4 5 6 7 8 9 ] Výběr prvku vypište prvek na pozici (3,1) v matice2 vypište všechny prvky v druhém řádku matice2 vypište všechny prvky v třetím sloupci matice2 -- Řešení: >> matice1 = [ 1 2 3 ] >> matice2 = [ 1 2 3; 4 5 6; 7 8 9 ] >> matice2(3,1) >> matice2(2,:) >> matice2(:,3) ........................................................... PŘÍKLAD 5: Vytvořte matice z vektorů: A = vektor13'*vektor12 B = [vektor1;vektor3;vektor1] C = [vektor1';vektor2';vektor1']' D = [vektor13 vektor14] -- Řešení: A % vysledkem je matice 3x4 B % nelze spojovat ruzne dlouhe radky do matice C % vysledkem je radkovy vektor o 25ti prvcich D % vysledkem je radkovy vektor o 6ti prvcich ........................................................... PŘÍKLAD 6: Operace s maticemi Vytvořte matice8 = [2 3 4 4 3 2 4 4 1 1 2 1] V matice8 nalezněte prvek na pozici [3,3] Z matice8 vypište druhý řádek Z matice8 vypište třetí sloupec Vytvořte matice9 = matice8(1,1)+ matice8(2,2)-matice8(3,3) -- Řešení: ........................................................... PŘÍKLAD 7: Příklad na řešení soustavy rovnic Je dána soustava rovnic |3 -3 4| |U1| |30| |1 6 5| . |U2| = | 7| |1 -2 3| |U3| |17| Nalezněte neznámé U1, U2, U3. -- Řešení: Y = [3 -3 4; 1 6 5; 1 -2 3] I = [30 7 17]' U = Y\I nebo U = inv(Y)*I ........................................................... PŘÍKLAD 8: Příklad na Ohmův zákon a výkon Rezistory mají hodnoty: R1=10 Ohm, R2=20 Ohm, R3=40 Ohm, R4=80 Ohm, R5=100 Ohm. Napětí na jednotlivých rezistorech jsou: U1=20 V, U2=22 V, U3=24 V, U4=26 V, U5=30 V. Vypočtěte proudy a výkony jednotlivých rezistorů. Spočtěte celkový činný výkon spotřebovaný těmito rezistory. -- Řešení: r = [10 20 40 80 100] u = [20 22 24 26 30] i = u./r p = u.*i pcelk = sum(p) nebo pcelk = u*i' ........................................................... PŘÍKLAD 9: Komplexní čísla Pro komplexní číslo x = 2- i vyjádřete a určete: reálnou složku komplexního čísla imaginární složku komplexního čísla komplexně sdružené číslo absolutní hodnotu komplexního čísla fázový úhel komplexního čísla Vyjádřete z1=4+j5 v exponenciálním tvaru. Vyjádřete z2=5exp(0,5j) ve složkovém tvaru. -- Řešení: real(x) imag(x) conj(x) abs(x) angle(x) z1 = 4 + j*5, A1 = abs(z1), fi1 = angle(z1), z2 = 5*exp(j*0.5) ........................................................... PŘÍKLAD 10: Příklad na elementární operace a vykreslení Je dána posloupnost x = 1, 2, 3, ..., 10. Vypočítejte hodnoty y a z je-li: y = 10x/(x + 5), z = 100x/((x + 5)(x + 5)). Zobrazte průběh z = f(x). -- Řešení: x = 1:1:10; y = 10*x./(x + 5); z = 100*x./(x + 5).^2; nebo z = 100*x./((x + 5).*(x+5)); plot(x,z) [x' y' z'] ........................................................... PŘÍKLAD 11: Příklad na jednoduché zobrazení časových průběhů Zobrazte průběhy x(t), y(t) a z(t), je-li: x(t)=exp(-t), y(t)=t z(t)=x(t)y(t). Průběhy zobrazte na intervalu 0s<=t<=2s s krokem 0,1 sekundy. Vypište tabulku na intervalu 0s<=t<=2s s krokem 0,5 sekundy. -- Řešení: clear t = (0 : 0.1 : 2); x = exp(-t); y = t; z = x.*y; plot(t,x,t,y,t,z); grid, title('prubehy'), xlabel('t'), ylabel(x, y, z) tabulka = [t' x' y' z']; tabulka(1:5:21,:) ........................................................... PŘÍKLAD 12: Generujte zvukový signál s následujícími parametry: délka signálu je 1 sekunda vzorkovací frekvence 44,1 kHz frekvence signálu 1000 Hz -- Řešení: doba = 1; % casove trvani [s] fs = 44100; % vz. frekvence [Hz] Ts = 1/fs; % interval mezi vzorky t = [0:Ts:doba-Ts]; % casova osa f1 = 1000; % frekvence [Hz] A1 = 0.25; % amplituda signal = A1*sin(2*pi*f1*t); >> sound(signal,fs); >> soundsc(signal,fs); >> help wavwrite >> wavwrite(signal,fs,'test.wav'); ----------------------------------------------------------- B. Domácí úkoly: DÚ1-1: Zobrazení fázoru 5+j*X v komplexní rovině. V příkazovém okně se fázor vypíše ve složkovém i exponenciálním tvaru. Fáze se vypočítá v radiánech i ve stupních. (max 1 bod) DÚ1-2: Zobrazení X period harmonického signálu o amplitudě X, frekvenci 50 Hz a fázovém posunu pi/X s popisem os. (max 1 bod) DÚ1-3: Zobrazení 2 exponenciálních průběhů ilustrujících nabíjení kapacitoru a dvou průběhů zobrazující vybíjení kapacitoru při různých časových konstantách (včetně popisu os a uvedení rovnic v příkazovém okně). (max 1 bod) DÚ1-4: V příkazovém okně ukažte způsob řešení čtyř rovnic o čtyřech neznámých s využitím maticového počtu v MATLABu. (max 1 bod) DÚ1-5: Generujte akustický signál o délce X sekund a frekvenci 440 Hz. (max 1 bod) X ... pořadové číslo studenta ve skupině