25.9.2012, 14:33:14
Přednáška 2: Matice Matice poskytují velmi účinný způsob jak úsporně zapisovat mnoho lineárních problémů. Navíc je tento způsob velmi vhodný pro jejich zadání do počítačových programů, které dokáží tyto problémy řešit mnohem rychleji než člověk. 2.1. Definice Maticí A typu (r × s ) rozumíme obdélníkovou tabulku a11 a12 a13 ⋯ a1s a21 a22 a23 ⋯ a2 s A= ⋮ ⋮ ⋮ ⋱ ⋮ ar1 ar 2 ar 3 ⋯ ars utvořenou z libovolných r ⋅ s reálných (či v případě potřeby komplexních) čísel uspořádaných do r řádků a s sloupců. Čísla aij , kde i ∈ {1,… , r} a j ∈ {1,… , s} , nazýváme prvky matice. Jelikož prvek aij leží na průsečíku i -tého řádku a j -tého sloupce, nazýváme číslo i (první index) řádkovým indexem a číslo j (druhý index) sloupcovým indexem.
Obrázek 2.1: Sloupcové a řádkové indexy v matici
2.2. Poznámky. (i) Matice označujeme velkými písmeny, jejich prvky odpovídajícími malými písmeny, tedy A = ( aij ) , B = ( bmn ) . (ii) Zpočátku se uvažovaly pouze čtvercové matice (řádu r ), tedy matice se stejným počtem řádků jako sloupců, kde r = s . Zejména pro tyto matice často počítáme s její hlavní diagonálou, vektorem ( a11 , a22 ,… , arr ) , a vedlejší diagonálou ( a1r , a2,r −1 , a3, r − 2 ,… , ar1 ) . Matici, která má všechny prvky neležící na hlavní diagonále nulové, tedy aij = 0 pro i ≠ j , nazýváme diagonální. (iii) Matici, která má pouze jeden řádek, tedy matici typu (1× s ) , nazýváme řádkovým vektorem, a tedy můžeme každý řádek matice A chápat jako s -rozměrný vektor. Podobně matici, která má pouze jeden sloupec, tedy matici typu (r × 1) , nazýváme sloupcovým vektorem, a proto také každý sloupec matice A můžeme chápat jako r -rozměrný vektor.
–1–
25.9.2012, 14:33:14 Historická poznámka. Prvním dokladem použití maticových metod je návod k řešení soustavy rovnic ve staročínském textu označovaném jako Devět kapitol (Jiu zhang suan shu), který pochází pravděpodobně z 1. století našeho letopočtu. Chceme-li například vyřešit soustavu dvou rovnic o dvou neznámých, x + y = 7, x − y = −2, můžeme tuto soustavu kompaktně zapsat pomocí matice (viz čtvrtá přednáška, Definice 4.1) 1 1 7 . 1 −1 −2 V evropské matematické tradici je ale pojem matic mnohem mladší, vyvinul se až velmi pozdě při formalizování teorie determinantů (Cayley, 1858), zato však jeho použití je mnohem širší. Krom soustav lineárních rovnic a teorie determinantů se matice využívají zejména v teorii kvadratických forem, lineárních transformací, operátorové algebře či při v teorii diferenciálních rovnic. Aplikace těchto teorií se nakonec prosadily snad v každém odvětví moderní fyziky, zejména v kvantové teorii, která si vynutila rychlé osvojení maticových metod v roce 1926. Za přijetí maticových metod v inženýrství vděčíme zejména vhodnosti maticové formulace úloh pro řešení pomocí počítačů, což souvisí s rozšířením počítačů po druhé světové válce. 2.3. Příklady Začneme s několika význačnými maticemi: 1. Nulovou maticí rozumíme matici libovolného typu (značíme ji vždy O ), která má všechny prvky nulové, 0 0 0 0 0 0 O = 0 0, O = , atp. 0 0 0 0 0 0 2. Jednotkovou maticí rozumíme libovolnou diagonální čtvercovou matici En , která má všechny prvky na hlavní diagonále rovny jedné, platí tedy 1 pro i = j , eij = 0 pro i ≠ j. Například 1 0 0 1 0 E2 = , E3 = 0 1 0 , atd. 0 1 0 0 1 3. Matici nazveme horní trojúhelníkovou, má-li pod hlavní diagonálou pouze nulové prvky, tedy je-li aij = 0 vždy když je i > j . Analogicky dolní trojúhelníkovou matici poznáme podle nulových prvků nad hlavní diagonálou (tedy pro i < j ). V aplikacích se ale situace komplikuje jsou-li také některé diagonální prvky nulové. Proto zejména kvůli řešení soustav lineárních rovnic zavádíme pojem matice ve schodovitém tvaru. To je matice, ve které každý nenulový řádek začíná více nulami než ten předchozí.1 Například matice
1
Výjimku tvoří jen první řádek, který nemusí začínat vůbec žádnými nulovými prvky, a také nulové řádky – ty mají všechny prvky nulové a jsou umístěny pod všemi nenulovými řádky.
–2–
25.9.2012, 14:33:14
1 1 0 1 1 0 1 0 4 0 6 A = 0 2 3, B = 0 0 3, C = 0 1 3 0 4 0 0 1 0 0 1 0 0 0 1 2 jsou sice všechny horní trojúhelníkové, ale ve schodovitém tvaru jsou pouze matice A, C. Matice C je navíc ve speciálním tvaru, který je obzvláště výhodný pro řešení soustav lineárních rovnic, nazýváme jej Gaussovým–Jordanovým tvarem.2 2.4. Aplikace (i) Čtvercové matice můžeme chápat jako rovnice popisující lineární transformace, tedy známá geometrická zobrazení, například otáčení, zrcadlení nebo stejnolehlost. Speciálně čtvercové matice řádu 2 popisují zobrazení v rovině. Například matice cos ϕ − sin ϕ Rϕ = (2.1) cos ϕ sin ϕ popisuje rotaci v rovině o úhel ϕ v matematicky kladném smyslu (proti směru hodinových ručiček). Konkrétně matice 12 − 23 0 −1 Rπ = Rπ = , , 2 3 1 3 1 0 2 2 popisují rotace v rovině o úhel ϕ = π2 , respektive ϕ = π3 . K analýze vlastností těchto zobrazení se používají také algebraické metody, například se hledají tzv. vlastní čísla a vlastní vektory. Jejich výklad však přesahuje záběr tohoto textu. (ii) Velmi důležitou roli hrají matice kvantové mechanice, popisují totiž amplitudy pravděpodobnosti pro jednotlivé pozorovatelné veličiny elementárních částic. Například Pauliho matice 0 1 0 −i 1 0 σx = (2.2) , σ y = , σ z = . 1 0 i 0 0 −1 popisují veličinu zvanou spin (vnitřní moment hybnosti). Přesněji řečeno, Pauliho matice popisují projekci spin elektronu3 ve směrech uvedených os ( x, y nebo z ) ve třírozměrném prostoru. Spinu se využívá například při implementaci q-bitů v experimentech s kvantovými počítači. (iii) Matice se také využívaly ve starých šifrovacích systémech. Nejjednodušší způsob spočívá v přepsání písmen pomocí číslic (např. pořadí v abecedě), rozdělení zprávy na skupiny po n číslicích ( n -rozměrné vektory) a jejich vynásobení kódovací maticí K (vhodnou čtvercovou maticí řádu n ). Tím se dosáhne toho, že stejné písmeno je pokaždé zakódováno jiným znakem. Příjemce pak zprávu rozluští tak, že přijaté vektory vynásobí inverzní maticí K −1 . Mimochodem, vzhledem k lineárnímu charakteru matic jsou tyto šifry poměrně jednoduše rozluštitelné a byly záhy nahrazeny. (iv) V teorii grafů, bioinformatice nebo chemii se používají matice k popisu vzdálenosti bodů nebo vrcholů grafu. Jde např. o matice vzdálenosti, matice sousednosti nebo matice podobností proteinů. Platí, že pro množinu n bodů potřebujeme k zaznamenání informace čtvercovou matici řádu n , tedy n 2 čísel. Jelikož je matice symetrická (podle hlavní 2
Je významný tím, že všechny „nejlevější“ nenulové prvky na řádcích (nazýváme je pivoty) jsou rovny jedné, a dále jsou všechny ostatní prvky ve sloupci s pivotem (nad i pod ním) nulové. 3 nebo jiné elementární částice s hodnotou spinu s = 12 . Pro tuto hodnotu spinu nabývá částice jen dva spinové stavy obvykle označované „nahoru“ ↑ a „dolů“ ↓ )
–3–
25.9.2012, 14:33:14 diagonály, tedy ars = asr ), stačí nám zaznamenat horní trojúhelníkovou matici, tedy 12 n(n + 1) čísel.
Operace s maticemi Při definici základních operací se využívá toho, že řádky a sloupce matice lze chápat jako vektory. Nic nám tedy nebrání použít „vektorovou“ definici těchto operací: 2.5. Definice
Buďte A = ( aij ) a B = ( bij ) matice stejného typu (r × s ) a buď k ∈ ℝ . Součtem matic A, B rozumíme matici C = A + B , která je rovněž typu (r × s ) a pro jejíž prvky platí cij = aij + bij , pro i ∈ {1,… , r} a j ∈ {1,… , s} .
Podobně k -násobkem matice A rozumíme matici D = kA , rovněž typu (r × s ) , pro jejíž prvky platí d ij = k ⋅ aij , pro i ∈ {1,… , r} a j ∈ {1,… , s} .
2.6. Příklad Pro matice 1 0 A= , −2 1 spočítejme matice A + B, 2 A, 3 A − B . Platí:
3 −1 0 4
B=
2.7. Věta Pro každá r , s ∈ {1,… , n,…} tvoří množina všech matic typu (r × s ) s výše definovanými operacemi sčítání a násobení reálným číslem vektorový prostor. Značíme jej M rs (ℝ) , resp. v případě čtvercových matic M n (ℝ) . Důkaz.
–4–
25.9.2012, 14:33:14
Mnohem komplikovanější situace nastává při pokusu definovat součin matic. V případě vektorů jsme součin nedefinovali,4 takže jej nemůžeme přímo zobecnit. Proto definujeme součin matic se zřetelem na očekávané vlastnosti součinu (zejména asociativitu a distributivitu) a také použitelnost definice součinu v aplikacích. 2.8. Definice
Součinem matice A = ( aij ) typu (m × n) s maticí B = ( b jk ) typu (n × p ) je matice
C = ( cik ) = A ⋅ B typu (m × p ) , pro jejíž prvky platí
n
cik = ai1b1k + ai 2b2 k + ⋯ + ainbnk = ∑ aij b jk .
(2.3)
j =1
Tedy, prvek cik vznikne jako skalární součin i -tého řádku první matice a k -tého sloupce druhé matice.
2.9. Příklad K zápisu násobení je výhodné použít tzv. multiplikační schéma: 2 1 0 3 A= B= , , −3 0 −1 4 0
−1 4
B A C
3
2
1
−3 0 které nás navádí ke správnému výběru řádku a sloupce z matic A, B . Například 0 na druhém řádku a v prvním sloupci výsledné matice C vznikla jako skalární součin druhého řádku matice A a prvního sloupce matice B , tedy (−3) ⋅ 0 + 0 ⋅ (−1) = 0 .
Obrázek 2.2: Multiplikační schéma
2.10. Vlastnosti Mějme dány matice A, B, C . Součin matic splňuje následující pravidla: 1. asociativní zákon ( A ⋅ B) ⋅ C = A ⋅ ( B ⋅ C ) a 2. distributivní zákony ( A + B) ⋅ C = A ⋅ C + B ⋅ C , C ⋅ ( A + B ) = C ⋅ A + C ⋅ B,
3. Jedničkou vzhledem k násobení je příslušná jednotková matice, tedy pro matici A = ( aij ) typu (r × s ) platí 4
Připomeňme, že dva způsoby násobení vektorů jsou známe již ze střední školy, a to skalární a vektorový součin.
–5–
25.9.2012, 14:33:14 A ⋅ Es = A = Er ⋅ A Dále, pro násobení nulovou maticí platí, že A ⋅ O = O = O ⋅ A . 4. Součinem dvou nenulových matic můžeme dostat nulovou matici (bez ohledu na typ součinitelů), např. 1 −2 2 4 6 0 0 0 ⋅ = . −2 4 1 2 3 0 0 0 5. Násobení matic není komutativní, tedy A⋅ B ≠ B ⋅ A . (2.4) Nejenže nemusí být oba součiny zároveň definovány, jako například pro matici A typu (m × n) a matici B typu (n × p ) , kde m ≠ p , ale i když oba součiny definovány jsou, nemusí souhlasit typ matic na jednotlivých stranách rovnice (2.4): jsou-li matice A, B obdélníkové, řekněme A typu (m × n) a B typu (n × m) , kde tedy m ≠ n , pak je na levé straně matice typu (m × m) a na pravé straně matice typu (n × n) . Ale i pro čtvercové matice stejného řádu (pro které jsou obě strany nerovnosti vždy definovány) jejich součin velmi často závisí na pořadí, např. pro matice A, B z předchozího příkladu 2.9 platí = A⋅ B . B⋅ A = ≠ Jediným typem matic, jejichž součin je komutativní, jsou diagonální matice stejného řádu.5 Poslední dvě vlastnosti patří mezi ty méně příjemné, přesto (nebo možná právě proto) mají velký význam v aplikacích.
2.11. Aplikace Součin matic se podstatně využívá při studiu geometrických zobrazení. Například součin A ⋅ u čtvercové matice A řádu n a sloupcového vektoru u , tedy matice typu (1× n) , popisuje vektor A(u ) , tedy obraz vektoru u při zobrazení A . Konkrétně např. Rπ ⋅ e1 = ⋅ = = e2 2
Obrázek 2.3: Výpočet obrazu vektoru vynásobením matice zobrazení a sloupcového vektoru. Dále, součin matic popisuje složená zobrazení. Máme-li matice Rϕ , Rψ , popisující rotace o úhly ϕ ,ψ , pak složenou rotaci o úhel ϕ + ψ popisuje matice Rϕ +ψ = Rϕ ⋅ Rψ , např.
−1 0 0 −1 0 −1 Rπ = = Rπ2 + π2 = ⋅ = Rπ2 ⋅ R2π , 0 −1 1 0 1 0
5
Mimochodem, diagonální matice tvoří podprostor ve vektorovém prostoru M n (ℝ ) .
–6–
25.9.2012, 14:33:14 Nakonec na základě tohoto požadavku se ustálila námi výše zvolená definice maticového násobení. Pro mnoho praktických problémů v aplikované matematice se používá tzv. LU-rozklad. Je to zápis zadané matice A jako součin A = L ⋅ U , kde L je dolní trojúhelníková matice a U je horní trojúhelníková matice. Toho se využívá např. při výpočtu determinantů. Dále budeme často používat dvě tzv. unární maticové operace, tedy operace M rs (ℝ) → M rs (ℝ) , a to transpozici A → AT a maticovou inverzi A → A−1 , kterou ovšem definujeme až v příští přednášce. 2.12. Definice
Buď A = ( aij ) matice typu (r × s ) . Maticí transponovanou k A rozumíme matici AT typu ( s × r ) , a pro jejíž prvky platí
aij T = a ji , pro i ∈ {1,… , r} a j ∈ {1,… , s} . Tedy, transponovaná matice vznikne výměnou řádků za sloupce. 2.13. Věta.
Pro transpozici součinu matice A = ( aij ) typu (m × n) s maticí B = ( b jk ) typu (n × p ) platí
( A⋅ B)
T
= BT ⋅ AT .
Důkaz. Na obou stranách máme matici typu ( p × m) . Rovnost prvků snadno ověříme rozepsáním násobení pomocí rovnice (2.3).
Ekvivalentní řádkové úpravy matice Krom operací s celými maticemi můžeme manipulovat jen s řádky nebo sloupci matice. Při vhodných úpravách se důležité vlastnosti matice nemění, přitom můžeme matice převést na vhodnější tvar, zejména nám jde o převod matice do schodovitého nebo Gaussova–Jordanova tvaru. Z nich jsou mnohé vlastnosti matice mnohem lépe patrné.
2.14. Definice Ekvivalentní řádkovou úpravou rozumíme 1. výměnu pořadí řádků matice, 2. vynásobení libovolného řádku reálným číslem k ≠ 0 , 3. přičtení (k některému řádku) libovolné lineární kombinace zbývajících řádků, speciálně přičtení k -násobku některého řádku k jinému řádku a 4. vynechání řádku, který je lineární kombinací ostatních řádků, speciálně vynechání řádku, který je nulový nebo stejný jako jiný řádek v matici. Matici B ve schodovitém tvaru, která vznikla ekvivalentními řádkovými úpravami matice A , nazýváme ekvivalentní s A a označujeme to A ∼ B . 2.15. Příklad Převeďte matici A na ekvivalentní matici ve schodovitém tvaru.
–7–
25.9.2012, 14:33:14 1 1 A= 2 5 1 ∼ 0 0
1 1 0 1 1 2 0
0 3 2 ∼ 0 1 −1 0 1 0 1 −2 ∼ B 1 1 1
2.16. Poznámky Analogicky můžeme zavést ekvivalentní sloupcové úpravy: v předchozí definici se pouze slovo „řádek“ nahradí slovem „sloupec“. Řádkové a sloupcové úpravy spolu souvisejí prostřednictvím transpozice, která se dá chápat jako pátá ekvivalentní úprava. Libovolnou elementární sloupcovou úpravu lze tedy získat kombinací transpozice, elementární řádkové úpravy a „zpětné“ transpozice. Pozor je třeba dávat jen při řešení soustav lineárních rovnic, jelikož sloupcové úpravy matice soustavy mění řešení soustavy, např. výměna sloupců znamená výměnu neznámých.
Hodnost matice V minulé přednášce jsem zavedli užitečný pojem lineární (ne)závislosti vektorů. Nyní si ukážeme efektivní způsob jak lineární (ne)závislost vektorů určit.
2.17. Definice Hodností matice A rozumíme číslo h( A) = r označující maximální počet lineárně nezávislých řádků matice A . 2.18. Příklad 1. Hodnost jednotkové matice je rovna jejímu řádu n , tedy h( En ) = n. 2. Hodnost nulové matice je rovna nule, tedy h(O ) = 0. Ekvivalentní řádkové úpravy matice nám poskytují efektivní způsob, jak hodnost matice určit. Platí totiž:
2.19. Věta Hodnost matice se aplikací ekvivalentních řádkových úprav nezmění. 2.20. Důsledek (1) Hodnost matice A je rovna počtu nenulových řádků ekvivalentní matice B ∼ A ve schodovitém tvaru. (2) Hodnost matice transponované je rovna hodnosti matice původní, tedy h( AT ) = h( A). (3) Pro matice A typu (m × n) je hodnost h( A) = r menší nebo rovna menšímu z čísel m, n , tedy –8–
25.9.2012, 14:33:14 r ≤ min(m, n). Dodejme, že nenulovým řádkem rozumíme každý řádek, který není nulový, tedy každý řádek, který má alespoň jeden prvek různý od nuly.
2.21. Příklady (i) Určete hodnost matice A z předchozího příkladu. Hodnost matice učíme tak, že matici A převedeme na schodovitý tvar 1 1 1 0 1 1 1 0 1 1 3 2 ∼ 0 2 1 −2 ∼ B A= 2 0 0 1 0 0 1 1 − 5 1 1 0 a spočítáme nenulové řádky ekvivalentní matice B . Tedy, h( A) = 3 . (ii) Zjistěte, zda jsou vektory u = (1, 2,3), v = (1,1, 0), w = (−1, 0, 0) lineárně závislé. Sestavíme z vektorů u , v a w matici, tu převedeme na schodovitý tvar
a určíme její hodnost. Jelikož platí h( A) = , jsou vektory u , v a w lineárně
–9–