Práce s vektory a maticemi Matice = základní objekt v Matlabu Zápis matic/vektorů a) výčtem A=[1 2;3 4] ... matice b1=[1 2 3 4 5] ... vektor R22=[4 8 9;22 3 0] ... matice matici zapisujeme po řádcích,prvky řádku jsou odděleny mezerami nebo čárkou
b) intervalem Příklady: osat=0:2*pi/20:2*pi Tvar intervalu: startovací prvek:krok:konečný prvek startovací prvek:konečný prvek ! Pozor: U definic dlouhých intervalů používat středník (;) na konci definice intervalu Příklady: a1=0:5 a1=0:2 a2=6:11 a2=3:5
Základní operace s maticemi a maticové funkce Aritmetické operátory + (binární) - (binární) + (unární) - (unární) * maticové násobení .* násobení polí (stejnolehlých prvků) ^ maticové mocnění .^ mocnění polí / pravé maticové dělení \ levé maticové dělení ./ pravé dělení polí .\ levé dělení polí
Maticové operace Příklad: A1=[ 1 2 3;4 5 6;11 12 130] Maticové funkce C=A+B součet matic (stejnolehlé prvky) D=A-B rozdíl matic (stejnolehlé prvky) E=A*B klasické násobení matic F=A.*B násobení stejnolehlých prvků G=A/B dělení matic zprava = A*B-1=A*inv(B) H=A./B podíl stejnolehlých prvků A a B I=A\B dělení matic zleva =inv(A)*B J= A.\B podíl stejnolehlých prvků Příklad: A1=[ 1 2 3;4 5 6;11 12 130] Maticové funkce B=inv(A1) inverze čtercové matice C=A1´ transpozice
det(A1) determinat čtvercové matice E=sum(A1) -matice: vektor,prvky součtem sloupců -vektor: číslo=součet prvků vektoru F=sign(A1) vrací matici stejného řádu s prvky: 1 je-li prvek > 0 -1 je-li prvek < 0 0 je-li prvek = 0 G=max(A1) -matice: vektor s nejv. prvky sloupců -vektor: číslo=největší prvek vektoru H=size(A1) vektor 2 čísel s počtem řádků a sloupců D=eig(A1) vektor vlastních čísel matice I=diag(A1) vektor prvků na hlavní diagonále J=isempty(A1) 0 – matice je neprázdná 1 – matice je prázdná
K=triu(A1) vrací horní trojúhelník.matici (upper) K=tril(A1) vrací dolní trojúhelník.matici (lower) ones(3,2) matici samých „1“ udaných rozměrů eye(3) jednotkovou matici („1“na diagonále) rot90(A1) rotace matice o 90o mean(A1) matice: vektor prvků, které jsou aritm.průměry prvků sloupců vektor: číslo=aritm.průměr prvků Funkce lze vrstvit tam, kde to má smysl , např.: maximum=max(max(A1)) ... největší prvek matice A suma=sum(sum(A1)) ... výpočet součtu prvků mat.
Zvláštní typy matic ones matice ze samých 1 Př.: ones(2,4) eye jednotková čtvercová matice Př.: eye(3) magic součet každého řádku,každého sloupce a hlavní diag. je stejný rand generování náh.čísel s rovnoměrným rozložením Př.: M1=rand(2) pro M1 rozměrů 2x2 V1=rand(1,4) pro V1 rozměrů 1x4 randn generování pseudonáh.čísel s normálním rozl. Př.: Y=randn(1,3)
Indexování matic Index = číslo udávající polohu prvku v matici či vektoru Příklady : v=[16 5 9 4 2 11 7 14] % definice vektoru výčtem k=v(5) % k = obsah 5 prvku vektoru v v1=v([1 5]) % definuje nový vektor výběrem z původního v2=v([3:7]) % definuje nový vektor výběrem z původního v3=v([5:7,1:3]) % definuje nový vektor výběrem z původního v(end) % poslední prvek v(5:end) % pátý až poslední prvek v(5:end-1) % pátý až předposlední prvek v4=v(1:2:end) % všechny liché prvky v(:) % všechny prvky ve formě sloupcového vektoru
v(end:-1:1) % převrácení pořadí vektoru v([2 3 4])=[10 15 20] % přepsání prvků vektoru v([2 3])=30 % přepsání prvků vektoru stejným číslem A=magic(4) % definice matice funkcí magic A([3 4 1 2] , :) % přehození řádků A(: , 4:-1:1) % přehození sloupců A( 4 , : ) =[] % výmaz 4 řádku A % výpis matice A(: , :) % výpis matice (jako A) A(:) % sloupcový vektor ze sloupců matice A>13 % které prvky jsou >13
Příklad: řešení soustavy lineárních algebraických rovnic metody přímé (nalezení přesného řešení), rychlejší ( např Gaussova eliminační metoda). Musíme znát koeficienty matice soustavy a vektor pravých stran a soustava musí být regulární (nenulový determinant) Jsou rychlejší a častěji používané. nepřímé – iterační – výsledkem je pouze aproximace řešení a je jí dosaženo po konečném počtu iterací Řešte přímou metodou následující soustavu rovnic: 2,4795x1+1,6235x2+4,6231x3 = 0,0647 Ax = b 1,4752x1+0,9589x2+1,3253x3 = 1,0475 2,6951x1+2,8965x2+1,4794x3 = -0,6789 Použijte k výpočtu vzorec: x = A-1*b = A\b = inv(A)*b