* násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní matici lze vytvořit pouze ke čtvercové matici (která je tzv. regulární), např: A=[1,2;3,4] A = 1 2 3 4 2* 1 2 2*2 1 1 inv(a) -2.00 1.00 1.50-0.50 A * inv(a) 1 0 0 1
* násobení maticové F = inv(f) 3 2 1 0.12500-0.21154-0.16346 4-5 6 0.25000 0.11538 0.13462-9 8-7 0.12500 0.40385 0.22115 F * inv(f) 1.0000e+00 2.7756e-17 8.3267e-17 1.1102e-16 1.0000e+00-1.3878e-16-2.4980e-16 2.7756e-17 1.0000e+00 tj. jednotková matice: 1 0 0 0 1 0 0 0 1 Násobením matice a k ní inverzní matice vznikne matice jednotková.
* násobení maticové F = F.' 3 2 1 3 4-9 4-5 6 2-5 8-9 8-7 1 6-7 F * F.' 14 8-18 8 77-118 -18-118 194 F.'* F 106-86 90-86 93-84 90-84 86 Násobením matice a k ní transponované matice vznikne matice symetrická podle hlavní diagonály. F * F.' F.'* F Maticové násobení není komutativní!!!
/ maticové dělení (zprava) a \ maticové dělení zleva 2 / 3 - dvě děleno třemi zprava 0.66667 3 \ 2 - dvě děleno třemi zleva 0.66667 2 1 1 3 1 2* 3 2*3 3 *2 U matic A -1 (tj. vlastně něco jako matici. inv(a) inverzní matice 1 A ) značí právě inverzní
/ maticové dělení (zprava) a \ maticové dělení zleva 2 / 3 - dvě děleno třemi zprava 0.66667 3 \ 2 - dvě děleno třemi zleva 0.66667 2 1 1 3 1 2* 3 2*3 *2 U matic A -1 (tj. vlastně něco jako matici. inv(a) inverzní matice 3 1 A Pro čísla jde o stejnou operaci násobení, půjde-li však o dělení matic, jde o dvě různé operace (viz výše násobení matic) ) značí právě inverzní
/ maticové dělení (zprava) a \ maticové dělení zleva A děleno B zprava: A / B odpovídá A * inv(b); A děleno B zleva: B \ A odpovídá inv(b) * A; B děleno A zprava: B / A odpovídá B * inv(a); B děleno A zleva: A \ B odpovídá inv(a) * B; Rovnost A / B = A * inv(b) nelze použít, není zcela matematicky korektní, je uvedena jen pro představu
/ maticové dělení (zprava) a \ maticové dělení zleva Příklad - jsou dány matice U, T: T = U = 1 2 5 5 3 4 7 8 T / U 3.0000-2.0000 2.0000-1.0000 T \ U -3-4 4 5 T * inv(u) 3.0000-2.0000 2.0000-1.0000 inv(t) * U -3.0000-4.0000 4.0000 5.0000
/ maticové dělení (zprava) a \ maticové dělení zleva Pokračování příkladu: T = U = 1 2 5 5 3 4 7 8 U / T -1.0000 2.0000-2.0000 3.0000 U \ T 5.0000 4.0000-4.0000-3.0000 U * inv(t) -1.0000 2.0000-2.0000 3.0000 inv(u) * T 5.0000 4.0000-4.0000-3.0000
^ mocnina maticová A = 10 5 70 2 7 6 8 9 1 A^2 670 715 800 82 113 188 106 112 615 Stejný výsledek dostaneme i pomocí maticového násobení A * A 670 715 800 82 113 188 106 112 615
^ mocnina maticová Maticově mocnit lze jen čtvercovou matici nelze obdélníkovou probíhá stejná operace jako při maticovém násobení, první matice musí mít stejný počet sloupců jako má druhá matice řádků, tj. matice pro umocnění musí být čtvercová (musí mít stejný počet řádků a sloupců) M = A * A A čtvercová matice (n,n) = (n,n) * (n,n) n počet řádků a sloupců matice A, výsledná matice je stejných rozměrů O = B * B B obdélníková matice (???) = (m,n) * (m,n) m,n počet řádků a sloupců matice B, nelze násobit, m n
^ mocnina maticová Příklady: A = [1 2;3 4] A = 1 2 3 4 A^2 7 10 15 22 A.^2 1 4 9 16 B = [1 2;3 4;5,6] B = 1 2 3 4 5 6 B^2 nelze matice musí být čtvercová!!! B.^2 1 4 9 16 25 36
Odmocnina sqrt(x) druhá odmocnina z x, tj. Např. sqrt(4) 4 2 x Jak jinak na odmocninu (a nejen na druhou)? Platí: to je tedy: x.^(1/n). 1 n x n x 1 Příklad: 4.^ (1/2) 2 4 4 2 2 1 Příklad: 237.^ (1/18) 18 18 237 237 1,355 1.3550
Příklad: třetí odmocnina z prvků matice tj. 3 3 1 64 3 3 8 100 3 27 1000 3 V 1 64 8 100 27 1000 V = [1 8 27; 64,100,1000] V = 1 8 27 64 100 1000 V.^(1/3) - operace prvek po prvku 1.0000 2.0000 3.0000 4.0000 4.6416 10.0000
' transpozice matice a.' překlopení podle hlavní diagonály Příklad: W = [5,6,7;4,3,2] W = 5 6 7 4 3 2 W.' 5 4 6 3 7 2 W' 5 4 6 3 7 2 Transpozice je překlopení matice kolem hlavní diagonály. V našem příkladu se z matice o 2 řádcích a 3 sloupcích stane matice o 3 řádcích a 2 sloupcích - dojde k vzájemné výměně řádků a sloupců. Stejný výsledek dostaneme pomocí příkazu W.'i pomocí příkazu W', protože matice W je naplněna reálnými čísly.
' transpozice matice a.' překlopení podle hlavní diagonály Příklad: W = [5,6,7;4,3,2] W = 5 6 7 4 3 2 W.' 5 4 6 3 7 2 W' 5 4 6 3 7 2 Transpozice je překlopení matice kolem hlavní diagonály. V našem příkladu se z matice o 2 řádcích a 3 sloupcích stane matice o 3 řádcích a 2 sloupcích - dojde k vzájemné výměně řádků a sloupců. Stejný výsledek dostaneme pomocí příkazu W.'i pomocí příkazu W', protože matice W je naplněna reálnými čísly.
' transpozice matice a.' překlopení podle hlavní diagonály Příklad: K = [1+3i,6,-7+5i;4-8i,-3-9i,2i]; Matice K je naplněna komplexními čísly. Abychom získali transponovanou matici, musíme použít příkaz K.' (prostá transpozice matice). Po provedení příkazu K' dostaneme tzv. adjugovanou matici, tzn. matici transponovanou, kterou tvoří ji čísla komplexně sdružená, tj. u imaginárních částí mají opačná znaménka.
' transpozice matice a.' překlopení podle hlavní diagonály Pokračování příkladu: K = [1+3i,6,-7+5i;4-8i,-3-9i,2i]; K = 1 + 3i 6 + 0i -7 + 5i 4-8i -3-9i 0 + 2i K.' 1 + 3i 4-8i 6 + 0i -3-9i -7 + 5i 0 + 2i - prostá transpozice K' 1-3i 4 + 8i 6-0i -3 + 9i -7-5i 0-2i - transponovaná matice s komplexně sdruženými čísly
Relační operátory == porovnání na rovnost (je rovno) ~= porovnání na nerovnost (není rovno) <, >, je menší, je větší <=, >= je menší nebo rovno, je větší nebo rovno ~ negace (not) Logické operátory & a zároveň (and) nebo (or) ~ negace (not) Pozor! = přiřazení == porovnání na rovnost
Příklady: & a zároveň (logický operátor) (and funkce provádějící stejnou operaci) (3<5)&(4<6) 1 (3<5)&(4>=6) 0 (3>5)&(4>6) 0 Lze psát i takto: and((3>5),(4<6)) 0 pravda a zároveň pravda pravda a zároveň nepravda nepravda a zároveň nepravda nepravda a zároveň pravda funkce and s dvěma argumenty
Příklady: nebo (logický operátor) (or funkce provádějící stejnou operaci) (3<5) (4~=6) pravda nebo pravda 1 (3<5) (4==6) pravda nebo nepravda 1 (3>5) (4==6) nepravda nebo nepravda 0 Lze psát i takto: or((3>5),(4~=6)) 1 nepravda nebo pravda funkce or s dvěma argumenty
Příklady: xor funkce exkluzivní nebo (xor((3<5),(4<6)) 0 pravda nebo pravda exkluzivně pozor 0 výsledkem je nepravda xor((3>5),(4<6)) pravda nebo pravda exkluzivně 1 xor((3>5),(4>6)) nepravda nebo nepravda exkluzivně 0 whos Name Size Bytes Class Attributes ans 1x1 1 logical
Příklady: ~ negace (not funkce provádějící stejnou operaci) ~0 negace 0 (nepravdy) je 1 (pravda) 1 ~1 negace 1 (pravdy) je 0 (nepravda) 0 ~5 negace 5 (pravdy) je 0 (nepravda) 0 ~(3<5) negace pravdy je nepravda 0 not(3<5) lze psát i takto, nepravda 0 Tedy pak: (~(3<5))&(4<6) nepravda a zároveň pravda 0
schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků dnes se tento pojem používá především v informatice a přírodních vědách, jde o daleko širší pojem kuchyňské recepty návody (jak sestavit skleník atd. ;-) postupy (výrobní i jiné) slovo pochází ze jména perského matematika 9. století Abu Jafar Muhammada ibn Mūsā al-chwārizmího, který ve svých dílech položil základy algebry (arabské číslice, řešení lineárních a kvadratických rovnic) Detailněji on-line na http://www.algoritmy.net
postup při tvorbě programu, kterým lze prostřednictvím algoritmu řešit určitý problém. etapy Formulace problému (požadavky, výchozí hodnoty, požadované výsledky, přesnost řešení) Analýza úlohy (je úloha řešitelná, má úloha více řešení?) Vytvoření algoritmu Sestavení programu (zdrojový text v konkrétním programovacím jazyce) Odladění programu (syntaktické chyby, logické chyby) Detailněji on-line na http://www.algoritmy.net
přesný návod k vykonání dané činnosti, vyřešení jisté úlohy. sekvence jednoduchých kroků postup, který je: konečný (finitní) po určitém počtu kroků skončí (počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů). obecný (hromadný, univerzální) nemá řešit pouze jediný případ, ale skupinu obdobných problémů. jednoznačný (deterministický, podmíněný) v každém kroku je zcela jasně řečeno, co bude následovat. opakovatelný protože je v každém kroku udáno, co bude následovat, je možné opakovat postup a výsledek bude vždy stejný. elementární skládá se z konečného počtu jednoduchých (elementárních) kroků resultativní má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší správný (korektní) pro všechna přístupná data vede postup ke správnému cíli.
Augusta Ada Kingová, hraběnka z Lovelace (Augusta Ada Byronová) 10. prosince 1815 Londýn 27. listopadu 1852 tamtéž anglická matematička a vynálezkyně strojového programování známá především svým detailním popisem fungování Babbageova mechanického počítače (analytického stroje), jehož vývoj podporovala i finančně mezi jejími poznámkami k analytickému stroji byl i algoritmus, který je považován za první algoritmus zpracovatelný počítačem, je často uváděna jako první programátorka Viz např.: https://cs.wikipedia.org/wiki/ada_lovelace
slovní popis vývojový diagram grafické znázornění Např.: Algoritmus pro výpočet obsahu kruhu slovní popis Formulace problému: vstupní údaj: poloměr r, výstupní údaj: obsah kruhu S Analýza: S = πr 2 Sestavení algoritmu: Slovní popis: Je poloměr r >0? ANO NE S = pi*r*r Vypiš: Vypiš: Poloměr r musí být kladný obsah S Konec
Algoritmus pro výpočet obsahu kruhu Vývojový diagram S Z r > 0 + = * r * r Piš: S - Piš: r musí být kladný Program if (r>0) S=pi*r*r; disp(s); else disp('r musi byt kladne') end K Viz také: Animace 5 http://home.zcu.cz/~pkropik/ppel/slozky/!_zaklady_matlabu