Práce s vektory a maticemi
• Matice = základní objekt v Matlabu
Zápis matic/vektorů
a) výčtemA=[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
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é operaceC=A+B součet matic (stejnolehlé prvky)D=A-B rozdíl matic (stejnolehlé prvky)E=A*B klasické násobení maticF=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 BI=A\B dělení matic zleva =inv(A)*BJ= 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é maticeC=A1´ transpozice
det(A1) determinat čtvercové maticeE=sum(A1) -matice: vektor,prvky součtem sloupců
-vektor: číslo=součet prvků vektoruF=sign(A1) vrací matici stejného řádu s prvky:
1 je-li prvek > 0-1 je-li prvek < 00 je-li prvek = 0
G=max(A1) -matice: vektor s nejv. prvky sloupců-vektor: číslo=největší prvek
vektoruH=size(A1) vektor 2 čísel s počtem řádků a sloupcůD=eig(A1) vektor vlastních čísel maticeI=diag(A1) vektor prvků na hlavní diagonáleJ=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 1Př.: ones(2,4)
• eye jednotková čtvercová maticePř.: 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ů 2x2V1=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 vektoruPříklady :v=[16 5 9 4 2 11 7 14] % definice vektoru výčtemk=v(5) % k = obsah 5 prvku vektoru vv1=v([1 5]) % definuje nový vektor výběrem z původníhov2=v([3:7]) % definuje nový vektor výběrem z původníhov3=v([5:7,1:3]) % definuje nový vektor výběrem z původníhov(end) % poslední prvekv(5:end) % pátý až poslední prvekv(5:end-1) % pátý až předposlední prvekv4=v(1:2:end) % všechny liché prvkyv(:) % 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 strana 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