SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC Pojm: Algebraická rovnice... rovnice obsahující pouze celé nezáporné mocnin neznámé, tj. a n n + a n 1 n 1 +... + a 2 2 + a 1 + a 0 = 0, kde n je přirozené číslo. Lineární algebraická rovnice... rovnice obsahující pouze první mocninu neznámé, resp. neznámých, tj. a + b = 0, resp. např. a 1 1 + a 2 2 + a = b. Soustava lineárních algebraických rovnic a 11 1 + a 12 2 +... + a 1n n = b 1 a 21 1 + a 22 2 +... + a 2n n = b 2. a n1 1 + a n2 2 +... + a nn n = b n Příklad: Řešte soustavu rovnic pro neznámé, a z: + 2 + z = 10 2 + + 5z = 25 + + z = 5 Řešení: Snažíme se postupně eliminovat jednotlivé neznámé. Docílíme to tím způsobem, že budeme sčítat vhodně přenásobené rovnice. 1. krok Opíšeme 1. rovnici + 2 + z = 10 K 2. rovnici přičteme určitý násobek 1. rovnice tak, ab se eliminovala neznámá (vhodný koeficient je 2 ). 2 + + 5z = 25 2 ( + 2 + z ) = 2 10 + 5z 2 z = 25 20 12 + 15 2 75 20 z = + 1 z = 55 1
Podobně eliminujeme neznámou z. rovnice, tj. k. rovnici přičteme 1 násobek první rovnice. + + z = 5 1 ( + 2 + z ) = 1 10 2 + z z = 5 10 2 + 7z = 25 Obdrželi jsme soustavu + 2 + z = 10 + 1 z = 55 2 + 7z = 25 2. krok Nní opíšeme první dvě rovnice a ze třetí budeme eliminovat neznámou, tj. ke. rovnici přičteme 2 násobek 2. rovnice. 2 2 + 7z = 25 ( + 1 z) = 2 7z 2 55 1 2 55 z = 25 7z 1 z = 25 55 2 1 100 55 z = 15 z = 5 Obdrželi jsme soustavu (tzv. trojúhelníkový tvar) + 2 + z = 10. krok z. rovnice vpočteme z = + 1 z = 55 15 z = 5 2
. krok Dosadíme z do 2. rovnice a vpočteme + 1 = 55 55 9 = = 2 5. krok Dosadíme, z do 1. rovnice a vpočteme + 2 2 + = 10 = 10 7 = 1 Uvedený postup lze samozřejmě aplikovat na obecnou soustavu n rovnic pro n neznámých a nazývá se Gaussova eliminační metoda (GEM)... soustavu nejprve převedeme na trojúhelníkový tvar a potom zpětným chodem vjadřujeme řešení. Pro větší přehlednost můžeme použít maticový zápis: 2 1 2 5 A z }{{} = 10 25 5 b, tj. A = b A... matice koeficientů u neznámých v jednotlivých rovnicích... vektor neznámých, a z b... vektor pravé stran Poznámka: (Násobení matice vektor) Výsledek násobení matice tpu m n (m řádek a n sloupců) a vektoru tpu n 1 (sloupcový vektor o n prvcích) je vektor tpu m 1 (sloupcový vektor o m prvcích), kde i-tá složka výsledného vektoru je skalárním součinem i-tého řádku matice a daného vektoru. Mluvíme o numerické matematice, tzn. řešíme dané problém numerick (nikoli analtick). Pro řešení problémů odvozujeme postup (algoritm), které budou naprogramován do počítače. Naší snahou je, ab odvozené metod bl nejen rchlé, potřeboval co nejméně paměti, ale ab bl i použitelné pro t úloh, které jsou řešitelné. Příklad: Řešte soustavu rovnic + 2 + z = 1 2 + + 5z = 25 7 + + 9z = 50, tj. 1 2 2 5 7 9 z = 1 25 50
Řešení: Pro zápis budeme z důvodu přehlednosti používat tvar matice rozšířené: 1 2 1 2 5 25 7 9 50 / ( 2 1 ) ) / ( 7 + 1 ) + 1 2 1 0 0 1 0 6 12 / ( 6 0 ) ) +!!! dělíme 0 = Algoritmus Gaussov eliminační metod není pro tento příklad realizovatelný. Snadno se přesvědčíme, že má daná soustava řešení = 1, = 2 a z =, ale Gaussova eliminační metoda selhala. Otázk: 1. Pro jaké matice A má soustava A = b právě jedno řešení? Matice A musí být regulární, tj. všechna vlastní čísla musí být různá od nul. Poznámka: Vlastní číslo matice A je číslo λ splňující rovnici Av = λv, kde v je vlastní vektor odpovídající vlastnímu číslu λ. Číslo λ ted určitým způsobem charakterizuje matici A. 2. Pro jaké matice A je algoritmus Gaussov eliminační metod realizovatelný? Věta: Je-li matice A ostře diagonálně dominantní, pak je algoritmus Gaussov eliminační metod realizovatelný. Poznámka: Matice A = [a ij ] i,j=1,...,n je ostře diagonálně dominantní, platí-li n a ii > a ij, tj. absolutní hodnota diagonálního prvku je větší než součet j=1,j i absolutních hodnot ostatních prvků v řádku. Věta: Je-li matice A smetrická a pozitivně definitní, pak je algoritmus Gaussov eliminační metod realizovatelný. Poznámka: Matice A je smetrická, platí-li pro její prvk a ij = a ji i, j = 1, 2,..., n. Poznámka: Matice A je pozitivně definitní, má-li všechna vlastní čísla kladná.
Poznámka: Pro soustavu s maticí, která splňuje předpoklad některé z uvedených vět, je možné dopředu říci, že půjde řešit pomocí Gaussov eliminační metod. Obráceně to ovšem neplatí, tj. není-li např. matice soustav ostře diagonálně dominantní, ještě to obecně neznamená, že nepůjde pomocí Gaussov eliminační metod řešit. 7 1 2 Např. je-li A = 1 1, tj. diagonální prvk jsou vžd větší než součet zblých prvků 2 9 v řádku, pak půjde soustava s touto maticí řešit pomocí Gaussov eliminační metod. Abchom zaručili, že soustava půjde vřešit pro libovolnou regulární matici, musíme algoritmus Gaussov eliminační metod upravit. Zavedeme tzv. výběr hlavního prvku (pivotaci). Poznámka: pivot (hlavní prvek)... první nenulový prvek v daném řádku matice. Příklad: Pomocí GEM se sloupcovou pivotací vřešte soustavu rovnic z předcházejícího příkladu, kde selhala klasická GEM, tj. řešíme soustavu A = b, kde 1 2 1 A = 2 5 a b = 25. 7 9 50 Řešení: 1. sloupec 1 2 1 vměň 2 5 25 7 9 50 není třeba měnit 2. sloupec 7 9 50 0 12 17 75 7 7 7 6 12 0 7 7 7 / ( 7 9 50 2 5 25 1 2 1 6 7 12 7 ) = 1 2 ) + / ( 2 7 ) ) / ( 1 + 7 ) + 7 9 50 0 12 17 75 7 7 7 1 0 0 2 2 = = 1 2 5
Poznámk: Při sloupcové pivotaci jsme postupně v každém sloupci (resp. jeho části pod diagonálou včetně) vbírali číslo, které blo maimální v absolutní hodnotě a v případě, že toto číslo neleželo na diagonále, vměnili jsme příslušné 2 rovnice. Dále jsme pokračovali jako v GEM bez pivotace, tj. nulovali jsme koeficient pod diagonálou. Sloupcová pivotace není jediná možnost. Podobně můžeme vbírat i maimální prvek v absolutní hodnotě z příslušného řádku (resp. jeho části) a poté vměnit příslušné sloupce. Pozor! Je ovšem třeba zaměnit i příslušné složk řešení. V tomto případě hovoříme o řádkové pivotaci. Další možností je vbírat maimální prvek v absolutní hodnotě z celé matice A (resp. příslušné podmatice). V tomto případě hovoříme o úplné pivotaci. Opět je třeba mít na paměti, že je třeba zaměnit složk ve vektoru řešení. Nevýhodou úplné pivotace je pomalejší výpočet neboť hlavní prvek vhledáváme z celé dosud neupravené části. Gaussova eliminační metoda není jedinou metodou pro řešení soustav lineárních algebraických rovnic. Další metodou je např. metoda LU-rozkladu. Opět uvažujeme regulární matici A řádu n. Matici A lze rozložit na součin A = L U, kde L je dolní trojúhelníková matice řádu n a U je horní trojúhelníková matice řádu n. Poznámka: jedničk. Ab bl rozklad jednoznačný, předpokládáme na diagonále matice L Příklad LU-rozkladu matice A 1 2 2 11 22 5 }{{} A = 1 0 0 2 1 0 1 L 1 2 0 5 0 0 6 U Řešení soustav A = b metodou LU-rozkladu: 1) Realizace LU-rozkladu A = L U 2) Řešení soustav (zpětný chod) L = b ) Řešení soustav (zpětný chod) U = A = L }{{} U = b Příklad: Řešte soustavu A = b metodou LU-rozkladu, kde 1 2 1 A = 2 11 a b = 5. 22 5 1 6
Řešení: 1. Z předchozího tetu známe LU-rozklad matice A. 2. Řešíme soustavu L = b 1 0 0 1 2 1 0 5 1 1 = 1 19 1.. Řešíme soustavu U = 1 2 1 0 5 19 0 0 6 1 = 2 1. Poznámka: Metoda LU-rozkladu je vhodná v případech, kd řešíme více soustav se stejnou maticí A, ale různými pravými stranami b. (Důvod je ten, že jsme investovali práci do samotného LU-rozkladu. Vřešení dvou soustav s trojúhelníkovou maticí je pouze věc dosazování.) Poznámka: I v algoritmu LU-rozkladu lze vužít pivotaci podobně jako v GEM. Dosud jsme hovořili o tzv. přímých metodách (GEM, metoda LU-rozkladu), tzn. o metodách, které naleznou přesné řešení po konečném počtu kroků. Další skupinou metod pro řešení soustav rovnic jsou tzv. iterační metod, které teoretick najdou přesné řešení až po nekonečně mnoha krocích. Pamatujme si, že v numerické prai používáme pro řešení soustav s plnou maticí přímé metod, zatímco pro speciální (řídké) matice používáme iterační metod. Toto rozdělení je dáno výpočetní složitostí těchto metod, tj. počtem matematických operací sčítání, odčítání, násobení a dělení nutných k získání výsledku. Poznámka: V případě plné matice je výpočetní cena v každé iteraci řádu n 2, srovnámeli toto s celkovou výpočetní cenou přímých metod, tj. řádově 2 n, vidíme, že má-li být výpočetní složitost iterační metod stejná jako u přímé metod, musela b iterační metoda najít řešení (s předem zadanou přesností) řádově po n iteracích. Na druhou stranu v případě speciální (řídké) matice je výhodné použít iterační metodu. V následujícím příkladu si ukážeme princip iteračních metod pro řešení soustav lineárních algebraických rovnic. 7
Příklad: Pomocí iterační metod řešte soustavu 11 + 2 + z = 15 + 10 + 2z = 16 2 + z = 1 Princip iteračních metod je založen na iterační formuli, tj. předpisu, kde se neznámé (resp. jedna z nich) vsktují na obou stranách. Nejjednoduším způsobem jak získat iterační formuli je z i-té rovnice vjádřit i-tou složku řešení, tzn. v našem případě z první rovnice vjádříme, z druhé rovnice vjádříme a ze třetí rovnice vjádříme z. Dostaneme = 1 (15 2 z) 11 = 1 (16 2z) 10 z = 1 (1 2 ) Tto iterační formule můžeme zapsat jednodušším způsobem pomocí matice a vektorů 0 2 11 1 15 11 11 = 1 0 1 10 5 + 5 1 z 0 z 1 }{{} H }{{} g tj. = H + g Abchom mohli podle této formule počítat, je třeba zvolit počáteční vektor (0), který dosadíme na pravou stranu formule. Získáme novou iteraci (1), tu opět dosadíme na pravou stranu formule a získáme (2), atd. Tento postup je pro zadané (0) popsán rekurentní formulí (k+1) = H (k) + g. Za vektor (0) můžeme volit libovolný vektor, nejjednodušší možností je ted volit nulový vektor. Konkrétně v našem případě získáme následující iterace (pro jednoduchost zapisujeme na desetinná místa) (0) = [0.0000, 0.0000, 0.0000] T (1) = [1.66, 1.6000, 0.1250] T (2) = [1.01, 1.6, 0.159] T () = [1.01, 1.2, 0.70] T () = [1.051, 1.57, 0.6279] T (5) = [1.059, 1.66, 0.65] T
(6) = [1.055, 1.6, 0.652] T (7) = [1.0562, 1.6, 0.6506] T () = [1.0565, 1.6, 0.6505] T (9) = [1.0565, 1.6, 0.6507] T (10) = [1.056, 1.62, 0.6507] T (11) = [1.056, 1.62, 0.6507] T Máme-li iterační předpis a první iteraci, můžeme začít počítat. Samozřejmě je třeba se zamslet nad podmínkou pro zastavení výpočtu. Pro ukončení výpočtu budeme používat podmínku pro rozdíl dvou po sobě jdoucích iterací, kde tento rozdíl (resp. jeho norma) musí být menší než předem zadaná tolerance. V našem příkladu je z posloupnosti jednotlivých iterací zřejmé, že se 10-tá a 11-tá iterace shodují na desetinná místa ve všech složkách, proto jsme výpočet ukončili a řekneme, že řešení soustav (11). Poznámka: Metoda, kterou jsme odvodili v předchozím příkladu, se nazývá Jacobiova metoda. Na základě této metod můzeme odvodit další metod, např. tzv. Gaussovu-Seidelovu metodu nebo relaační metodu SOR. Všechn tto iterační metod používají iterační formuli (k+1) = H (k) + g, samozřejmě s jinou iterační maticí H a vektorem g. Je zřejmé, že o kvalitě metod budou rozhodovat vlastnosti právě matice H. 9