% 4. cvičení z předmětu PPEL - MATLAB A=[1,2;3,4] % matice A má 2 řádky a 2 sloupce A = 1 2 3 4 B=[5,6;7,8] % matice B má 2 řádky a 2 sloupce B = 5 6 7 8 A' % transpozice matice A (kdyby A obsahovala komplexní čísla, % vznikla by adjungovaná matice, tj. transponovaná s komplexními čísly) ans = 1 3 2 4 A.' % prostá transpozice matice A, u matic s reálnými čísly A.' a A' stejné ans = 1 3 2 4 inv(A) % inverzní matice k matici A ans = -2 1 1.5 -0.5 diag(A) % hlavní diagonála matice A ans = 1 4 det(A) % determinant matice A, jen pro čtvercové matice % výpočet det(A) = 1*4 - 2*3 = -2 ans = -2 %--------------------------------------------------------------------- % operace + - .* ./ .\ .^ jsou operace, které probíhají po prvcích % pro operace + - .* ./ .\ musí mít matice stejný rozměr, tj.stejný počet řádků a sloupců % výsledek má také stejnou velikost, tj. stejný počet řádků i sloupců %--------------------------------------------------------------------- A+B % sčítání matic A,B prvek po prvku % sečtou se stejnolehlé prvky v maticích ans = 6 8 10 12 B+A % sčítání matic je komutativní, výsledné matice jsou stejné ans = 6 8 10 12 A-B % odčítání matic A,B prvek po prvku ans = -4 -4 -4 -4 B-A % odčítání matic není komutativní ans = 4 4 4 4 C=A.*B % násobení matic A,B prvek po prvku % násobí se stejnolehlé prvky v maticích C = 5 12 21 32 D=B.*A % násobení matic B,A prvek po prvku % toto násobení matic .* je komutativní, D = % výsledné matice C a D jsou stejné 5 12 21 32 E=A.^2 % umocnění jednotlivých prvků matice A na druhou E = 1 4 9 16 F=A.*A % odpovídá A.^2, výsledné matice E a F jsou stejné F = 1 4 9 16 G=A.^3 % umocnění jednotlivých prvků matice A na třetí G = 1 8 27 64 H=A.*A.*A % odpovídá A.^3, výsledné matice G a H jsou stejné H = 1 8 27 64 CH=G.^(1/3) % třetí odmocnina prvků matice G CH = 1 2 3 4 K=A./B % dělení zprava matic prvek po prvku, % dělení prvků matice A prvky matice B K = 0.2 0.33333 0.42857 0.5 format rat % format zobrazuje výsledek ve tvaru zlomku K=A./B % ještě jednou dělení prvků matice A prvky matice B - výsledek zlomky K = 1/5 1/3 3/7 1/2 L=A.\B % dělení zleva matic prvek po prvku, % dělení prvků matice B prvky matice A L = 5 3 7/3 2 M=B./A % dělení zprava matic prvek po prvku, % dělení prvků matice B prvky matice A, výsledek stejný jako matice L M = 5 3 7/3 2 N=B.\A % dělení zleva matic prvek po prvku, % dělení prvků matice A prvky matice B, výsledek stejný jako matice K N = 1/5 1/3 3/7 1/2 format % návrat k původnímu formátu výsledků (4 desetinná místa) %-------------------------------------------- % operace * / \ ^ jsou maticové operace %----------------------------------------------------------------------------------------------- % pro maticové násobení musí být počet sloupců v 1. matici stejný jako počet řádků v 2. matici! % výsledek má počet řádků jako 1. matice a počet sloupců jako 2. matice %----------------------------------------------------------------------------------------------- % pro maticové operace nemusí mít tedy matice stejný rozměr %----------------------------------------------------------- A % matice A zadána již dříve, zde pro připomenutí A = 1 2 3 4 B % matice B zadána již dříve, zde pro připomenutí B = 5 6 7 8 C=A*B % maticové násobení matic A,B % lze násobit, matice A má 2 sloupce, matice B má 2 řádky C = 19 22 43 50 % Výsledná matice C má 2 řádky a 2 sloupce % prvek 1.ř., 1.sl. = 1*5 + 2*7 = 19 % prvek 1.ř., 2.sl. = 1*6 + 2*8 = 22 % prvek 2.ř., 1.sl. = 3*5 + 4*7 = 43 % prvek 2.ř., 2.sl. = 3*6 + 4*8 = 50 D=B*A % maticové násobení matic B,A, maticové násobení * není komutativní % lze násobit, matice B má 2 sloupce, matice A má 2 řádky D = % výsledné matice C a D se liší 23 34 31 46 % Výsledná matice D má také 2 řádky a 2 sloupce % prvek 1.ř., 1.sl. = 5*1 + 6*3 = 23 % prvek 1.ř., 2.sl. = 5*2 + 6*4 = 34 % prvek 2.ř., 1.sl. = 7*1 + 8*3 = 31 % prvek 2.ř., 2.sl. = 7*2 + 8*4 = 46 E=A^2 % umocnění matice A na druhou, lze umocňovat jen čtvercovou matici % odpovídá maticovému násobení A*A (viz dále matice F) E = 7 10 15 22 F=A*A % maticové násobení A*A odpovídá A^2, výsledné matice E a F jsou stejné % lze násobit, matice A má 2 sloupce a tato matice má i 2 řádky (čtvercová) F = 7 10 15 22 % Výsledná matice F má také 2 řádky a 2 sloupce % prvek 1.ř., 1.sl. = 1*1 + 2*3 = 7 % prvek 1.ř., 2.sl. = 1*2 + 2*4 = 10 % prvek 2.ř., 1.sl. = 3*1 + 4*3 = 15 % prvek 2.ř., 2.sl. = 3*2 + 4*4 = 22 G=A^3 % umocnění matice A na třetí, je to jako A^2*A G = 37 54 81 118 H=A*A*A % maticové násobení A*A*A odpovídá A^3, výsledné matice G a H jsou stejné H = 37 54 81 118 K=A/B % dělení matice A maticí B zprava K = 3.0000 -2.0000 2.0000 -1.0000 L=A*inv(B) % A*inv(B) odpovídá maticovému dělení A/B, výsledné matice K a L jsou stejné L = 3.0000 -2.0000 2.0000 -1.0000 M=B\A % dělení matice B maticí A zleva, pozor matice M a K nejsou stejné M = 5.0000 4.0000 -4.0000 -3.0000 N=inv(B)*A % inv(B)*A odpovídá maticovému dělení B\A, výsledné matice M a N jsou stejné N = 5.0000 4.0000 -4.0000 -3.0000 O=A\B % dělení matice A maticí B zleva O = -3.0000 -4.0000 4.0000 5.0000 P=inv(A)*B % inv(A)*B odpovídá maticovému dělení A\B, výsledné matice O a P jsou stejné P = -3.0000 -4.0000 4.0000 5.0000 Q=B/A % dělení matice B maticí A zprava Q = -1 2 -2 3 B*inv(A) % B*inv(A) odpovídá maticovému dělení B/A, výsledné matice jsou stejné ans = -1.0000 2.0000 -2.0000 3.0000 a=[1,2] % řádkový vektor a a = 1 2 b=[5;10] % sloupcový vektor b b = 5 10 R=a*A % maticové násobení vektoru a s maticí A % lze násobit, vektor a má 2 sloupce, matice A má 2 řádky R = 7 10 % Výsledek R má 1 řádek a 2 sloupce % prvek 1.ř., 1.sl. = 1*1 + 2*3 = 7 % prvek 1.ř., 2.sl. = 1*2 + 2*4 = 10 S=A*b % maticové násobení matice A a vektoru b % lze násobit, matice A má 2 sloupce, vektor b má 2 řádky S = 25 55 % Výsledek S má 2 řádky a 1 sloupec % prvek 1.ř., 1.sl. = 1*5 + 2*10 = 25 % prvek 2.ř., 1.sl. = 3*5 + 4*10 = 55 c=a*b % maticové násobení vektorů a,b % lze násobit, vektor a má 2 sloupce, vektor b má 2 řádky c = 25 % Výsledek c má 1 řádek a 1 sloupec % prvek 1.ř., 1.sl. = 1*5 + 2*10 = 25 d=b*a % maticové násobení vektorů a,b není komutativní, výsledky c a d se liší % lze násobit, vektor b má 1 sloupec, vektor a má 1 řádek d = 5 10 10 20 % Výsledná matice d má 2 řádky a 2 sloupce % prvek 1.ř., 1.sl. = 5*1 = 5 % prvek 1.ř., 2.sl. = 5*2 = 10 % prvek 2.ř., 1.sl. = 10*1 = 10 % prvek 2.ř., 2.sl. = 10*2 = 20 e=a.*b' % pro násobení vektorů a,b prvek po prvku je nutno jeden z vektorů transponovat % vektory musí mít stejný rozměr, tj.stejný počet řádků a sloupců e = % oba vektory jsou řádkové (transponován b), výsledek je 1*5 = 5, 2*10 = 20 5 20 f=a'.*b % pro násobení vektorů a,b prvek po prvku je nutno jeden z vektorů transponovat % vektory musí mít stejný rozměr, tj.stejný počet řádků a sloupců f = % oba vektory jsou sloupcové (transponován a), výsledek 1*5 = 5, 2*10 = 20 5 20 T=[1,2,3;-4,5,-6;9,8,7] % matice T T = 1 2 3 -4 5 -6 9 8 7 T*T' % maticovým násobením matice T a transponované matice T % vznikne matice symetrická podle hlavní diagonály ans = 14 -12 46 -12 77 -38 46 -38 194 T*inv(T) % maticovým násobením matice T a k ní inverzní matice % vznikne matice jednotková ans = 1.0000 -0.0000 -0.0000 -0.0000 1.0000 0.0000 0.0000 -0.0000 1.0000 diag(T) % hlavní diagonála matice T ans = 1 5 7 det(T) % determinant matice T ans = -200 %------------------------ % řešení soustavy rovnic: %------------------------ % 10*x1 + 8*x2 + 7*x3 + 9*x4 = -2 % 3*x1 + 2*x2 + x3 = 3 % 4*x1 + 5*x2 - x4 = 1 % 8*x1 + 6*x2 + 4*x3 + 2*x4 = 6 % -------------------------------- % hledáme neznámé x1, x2, x3, x4 - sloupcový vektor x se 4 prvky A=[10,8,7,9;3,2,1,0;4,5,0,-1;8,6,4,2] % matice koeficientů soustavy A = 10 8 7 9 3 2 1 0 4 5 0 -1 8 6 4 2 b=[-2;3;1;6] % vektor pravých stran (sloupcový) b = -2 3 1 6 x=A\b % řešení soustavy rovnic % maticové dělení zleva x = 1.0000 -1.0000 2.0000 -2.0000 x=inv(A)*b % další možnost řešení soustavy rovnic % lze násobit, inv. matice A má 4 sloupce, vektor b má 4 řádky x = 1.0000 -1.0000 2.0000 -2.0000 c=[-2,3,1,6] % vektor pravých stran zadán jako řádkový c = -2 3 1 6 x=A\c.' % při řešení soustavy rovnic je potřeba vektor transponovat x = 1.0000 -1.0000 2.0000 -2.0000 x=inv(A)*c' % další možnost řešení soustavy rovnic s c' x = 1.0000 -1.0000 2.0000 -2.0000 x=inv(A)*c.' % nebo s c.' (vektor pravých stran neobsahuje komplex. č.), může být i c' x = 1.0000 -1.0000 2.0000 -2.0000 %------------------------ % řešení soustavy rovnic: %------------------------ % 10*x1 + 8*x2 + 7*x3 + 9*x4 = -2+9i % 3*x1 + 2*x2 + x3 = 3-4i % 4*x1 + 5*x2 - x4 = 1-10i % 8*x1 + 6*x2 + 4*x3 + 2*x4 = 6-8i % -------------------------------- % hledáme neznámé x1, x2, x3, x4 - sloupcový vektor x se 4 prvky A=[10,8,7,9;3,2,1,0;4,5,0,-1;8,6,4,2] % matice koeficientů soustavy % na pozicích, kde není neznámá v rovnici, je 0 A = 10 8 7 9 3 2 1 0 4 5 0 -1 8 6 4 2 b=[-2+9i;3-4i;1-10i;6-8i] % vektor pravých stran (sloupcový) s komplex. čísly b = -2.0000 + 9.0000i 3.0000 - 4.0000i 1.0000 -10.0000i 6.0000 - 8.0000i x=inv(A)*b % řešení soustavy rovnic x = 1.0000 + 1.0000i -1.0000 - 2.0000i 2.0000 - 3.0000i -2.0000 + 4.0000i x=A\b % další možnost řešení soustavy rovnic x = 1.0000 + 1.0000i -1.0000 - 2.0000i 2.0000 - 3.0000i -2.0000 + 4.0000i c=[-2+9i,3-4i,1-10i,6-8i] % vektor pravých stran zadán jako řádkový c = -2.0000 + 9.0000i 3.0000 - 4.0000i 1.0000 -10.0000i 6.0000 - 8.0000i x=inv(A)*c.' % při řešení soustavy rovnic je potřeba vektor transponovat, c.' % vektor c obsahuje komplex. čísla, nutno použít c.' pro transpozici! x = 1.0000 + 1.0000i -1.0000 - 2.0000i 2.0000 - 3.0000i -2.0000 + 4.0000i