Lingebraické kapitolky - Počítání s maticemi Jaroslav Horáček KAM MFF UK 20 Rozehřívačka: Definice sčítání dvou matic a násobení matice skalárem, transpozice Řešení: (A + B ij A ij + B ij (αa ij α(a ij A T ij A ji Toto je velmi důležité Společně s vlastnostmi operací pro reálná čísla (nebo jiná čísla můžeme dokázat spoustu maticových vlastností Většina důkazů nám pak přijde snadná, jedná se o vhodnou posloupnost jednotlivých aplikací vlastností Často struktura důkazu vypadá tak, že pomocí definic maticových operací se dostaneme až k reálným číslům, a poté co s nimi operujeme dostaneme se zpět pomocí definic maticových operací nahoru na úroveň matic Výjimky však potvrzují pravidlo Příklad : 2 ( 2 5 ( 0 0 7 Příklad 2: Ukažte, že matice (A + A T je symetrická Řešení: Například takto (A + A T T ij (A + A T ji A ji + A T ji A T ij + A ij A ij + A T ij (A + A T ij První rovnost plyne z definice transpozice, druhá z definice sčítání matic, třetí plyne z aplikace transpozice na každou matici zvlášť, čtvrtá z komutativity sčítání matic a pátá z definice sčítání matic Plus má obecně pěkné vlastnosti komutativita, 2 distributivita, asociativita, 0, opačný prvek Příklad : Definujte maticové násobení (AB ij A ik B kj k
Ukázat blokové schéma pro násobení matic jako pomůcku Proč násobíme takhle divně a ne po složkách? Toto násobení má motivaci ve skládání lineárních zobrazeních (k tomu se dostaneme až budeme brát lineární zobrazení Násobení po složkách však také existuje tzv Hadamardův produkt Využívá se například ve ztrátové kompresi obrázků JPEG Historické okénko Arthur Caley (82-895 britský matematik, mluvil 4 jazyky, maloval vystudoval Cambridge a dal se na práva přišel s tímto maticovým násobením publikoval 967 článků přítel Sylvester, spolu konzultovali a tvořili, i když byli velmi odlišní Caley se oženil a působil na dobře placeném místě Sylvester se neoženil a pracoval za malý plat O Caleym se říká, že byl jako chodící encyklopedie, přečetl co mohl a vše si pamatoval Sylvester údajně naproti tomu neměl rád cizí publikace, a nepamatoval si kolikrát ani své vlastní výsledky Příklad,5 (na rozmyšlení: Určete kolik operací + a je potřeba k vynásobení dvou matic o rozměrech n n Řešení: Představme si naše obdélníkové schéma na násobení matic, výsledná matice má rozměr n n To znamená, že potřebujeme spočítat n 2 prvků výsledné matice Každý prvek podle definice násobení dostaneme vynásobením n příslušných prvků z příslušného řádku a sloupce a (n -krát použijeme operaci + na sečtení n těchto produktů Celkem tedy použijeme n násobení a n n 2 sčítání Často se operace + a berou jako trvající stejnou dobu (což ne vždy musí být pravda a označují se jako elementární operace Zavádí se notace O(f(n tzv Asymptotická složitost, která říká, že algoritmus provede zhruba f(n operací na vstupu o rozměru n Nezajímají nás nějaké drobné, zajímá nás jen prvek s nejvyšší mocninou, a to bez koeficientů To je vlastně občas rozumné protože, když za n dosadíme nějaké hodně velké číslo, převáží jen ty prvky s největší mocninou A tím dokážeme algoritmy klasifikovat do tříd podle O(f(n Algoritmus násobení matic se vstupem o rozměrech n vykoná celkem 2n n 2 operací Což je O(n Příklad,7 (na rozmyšlení: Do jaké skupiny O(f(n patří Gaussova eliminace? Řešení: Záleží na tom jak daný algoritmus popíšeme, podle toho nám můžou vycházet jiné koeficienty u prvků Vždy nám ale vyjde O(n 2
Příklad 4: Dokažte (AB T B T A T Řešení: (AB T ij (AB ji A jk B ki B ki A jk BikA T T kj (B T A T ij k k k Příklad 5: Dokažte A(B + C AB + AC Příklad 6: Maticové násobení není komutativní, tedy obecně AB BA Řešení: Neplatí například pro ( 0 2 2 Neplatí dokonce ani pro symetrické matice! ( 0 0 ( 2, B 0, B ( 0 0 0 Příklad 7: Dokažte, že AA T je symetrická pro všechny A R m n Řešení: (AA T T ij (AA T ji A jk A T ki A T kia jk A ik A T kj (AA T ij k k Pojem Odmocnina z matice Matice B se nazývá odmocnina z matice A jestliže platí BB A Budeme se nyní bavit o reálné odmocnině Příklad 8: Najděte odmocninu z matice ( 2 2 2 2 Řešení: Například matice ( ± Z toho je vidět, že odmocnina z matice nemusí být jednoznačná
Příklad 9: Má každá matice reálnou odmocninu? ( 0 Řešení: Nemá, například matice ( Nebo se dá ukázat, že matice též nemá ( 0 a b reálnou odmocninu, stačí předpokládat, že odmocninu má, a z rovnic získaných c d z prvků výsledné matice podle definice maticového násobení dojdeme ke sporu (CHECK Odmocninu z diagonální matice můžeme rovnou určit pokud má nezáporné prvky na hlavní diagonále, jako diagonální matici, která má na diagonále odmocniny z původní Avšak odmocnina z diagonální matice ještě nemusí být jen nutně diagonální např ( 0 0 ( 2 Pojem Mocnina matice A k A A A }{{} k Příklad 0: Určete kolik je ( 0 2 Řešení: Půjdeme na to nejprve obecně ( ( ( a b a a + b c d 0 c c + d Tedy vidíme, že v každém kroku se levá strana matice nemění, vpravo nahoře se přičte, a vlevo dole bude 0 Výsledkem proto je ( 2 0 2 Příklad 0,5 (na rozmyšlení: Mějme matici A a vektor b odpovídajících rozměrů Jak spočítat A k b, abychom celkově provedli, co nejméně operací +,? Řešení: Máme více možností, zatím to zde nechci podrobně rozepisovat Očividně to lze lépe než násobit A maticí A, k krát a nakonec vynásobit výslednou matici vektorem b 4
Násobit mocniny A, A 2, A 4,, A 2p<k - z nich se dá již libovolné k poskládat Místo k násobení jich uděláme (ODHAD? nejvýše log 2 k log 2 k, což sedí například pro k 5 počítat s asociativitou A k (A b - násobení vektorem je levnější než násobení celou maticí Kombinace předchozích dvou - může ale nemusí vyjít lépe, záleží na konkrétních rozměrech matice Diagonalizace matice, pokud to jde rozumně udělat Pokud lze jednoduše najít diagonální matici D, tž CDC, tak platí A k CD k C A diagonální matice se mocní jednoduše umocněním prvků na diagonále Pojem Blokové násobení matic Úplně stejně jako s normálními čísly, akorát používáme matice vhodných rozměrů, abychom mohli provést dané operace ( ( ( A A 2 B B 2 A B + A 2 B 2 A B 2 + A 2 B 22 A 2 A 22 B 2 B 22 Příklad : Spočtěte kolik je A 00 pro 0 0 0 0 0 0 Řešení: Matice A má následující tvar ( I C 0 C Stačí si všimout, že platí C 2 C, a tedy C k C ( ( A 2 I C + C 2 A k I C + C 2 + C + + C k 0 C 0 C Tedy výsledkem je matice 0 0 0 0 00 0 0 5 ( I k C 0 C
Příklad 2: Najděte takový vektor x R n, aby platilo 2 2 2 2 2 2 4 4 x 2 4 n Řešení: Je hodně důležité dívat se na soustavu lineárních rovnic také jako na maticové násobení Zde vlastně chceme, aby pokud vynásobíme matici vektorem x jsme dostali požadovaný vektor Co to ale znamená? Pokud máme náš vektor x (x, x 2,, x n, tak maticové násobení znamená, že (a to si holt každý musí rozmyslet, kdo to nevidí má smůlu! první sloupec matice násobíme x, druhý sloupec x 2 až n-tý sloupec x n Znamená to, že každý i-tý sloupec vynásobíme nějakým číslem x i a chceme dostat vektor na pravé straně Tedy se na řešení soustavy lineárních rovnic můžeme též dívat jako na všechny možné n- tice čísel, které, když jimi vynásobíme popořadě sloupce matice, nám dají vektor na pravé straně Zde je vidět, že poslední sloupec matice je shodný s vektorem na pravé straně, takže jedno z možných řešení bude x (0, 0,, 0, T Pokud provedeme Gaussovu eliminaci, zjistíme, že soustava má právě jedno řešení, a to naše x 2 4 n 6