Numerické metody. Vratislava Mošová



Podobné dokumenty
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Co je obsahem numerických metod?

Připomenutí co je to soustava lineárních rovnic

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Aplikovaná numerická matematika - ANM

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Interpolace, ortogonální polynomy, Gaussova kvadratura

Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

0.1 Úvod do lineární algebry

stránkách přednášejícího.

1 0 0 u 22 u 23 l 31. l u11

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

0.1 Úvod do lineární algebry

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

8 Matice a determinanty

Soustavy lineárních rovnic-numerické řešení. October 2, 2008

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

1 Linearní prostory nad komplexními čísly

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

(Cramerovo pravidlo, determinanty, inverzní matice)

Numerická matematika 1

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

Operace s maticemi. 19. února 2018

Numerické metody lineární algebry

Soustavy lineárních rovnic-numerické řešení

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

Matematika B101MA1, B101MA2

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

vyjádřete ve tvaru lineární kombinace čtverců (lineární kombinace druhých mocnin). Rozhodněte o definitnosti kvadratické formy κ(x).

Typy příkladů na písemnou část zkoušky 2NU a vzorová řešení (doc. Martišek 2017)

1 Determinanty a inverzní matice

DRN: Soustavy linárních rovnic numericky, norma

Numerické metody a programování. Lekce 4

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

Úlohy nejmenších čtverců

Numerické metody lineární algebry

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

19 Hilbertovy prostory

Soustavy linea rnı ch rovnic

Numerické řešení nelineárních rovnic

Základy maticového počtu Matice, determinant, definitnost

Arnoldiho a Lanczosova metoda

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Operace s maticemi

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Matematika I A ukázkový test 1 pro 2011/2012. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a

Učební texty k státní bakalářské zkoušce Matematika Vlastní čísla a vlastní hodnoty. študenti MFF 15. augusta 2008

EUKLIDOVSKÉ PROSTORY

1 Vektorové prostory.

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Numerické řešení soustav lineárních rovnic

Matematika I A ukázkový test 1 pro 2014/2015

Princip řešení soustavy rovnic

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Numerická matematika Banka řešených příkladů

Vlastní čísla a vlastní vektory

Čebyševovy aproximace

Soustavy lineárních rovnic

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

15 Maticový a vektorový počet II

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

5. Lokální, vázané a globální extrémy

Lineární algebra Operace s vektory a maticemi

FREDHOLMOVA ALTERNATIVA

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Numerické řešení soustav lineárních rovnic

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1

2. Schurova věta. Petr Tichý. 3. října 2012

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

1 Řešení soustav lineárních rovnic

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

VĚTY Z LINEÁRNÍ ALGEBRY

Aplikovaná numerická matematika

Numerické metody a programování

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

4. Trojúhelníkový rozklad p. 1/20

Cvičení z Numerických metod I - 12.týden

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Program SMP pro kombinované studium

DEFINICE Z LINEÁRNÍ ALGEBRY

Numerická matematika Písemky

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Soustavy lineárních rovnic

Dnešní látka: Literatura: Kapitoly 3 a 4 ze skript Karel Rektorys: Matematika 43, ČVUT, Praha, Text přednášky na webové stránce přednášejícího.

Michal Fusek. 10. přednáška z AMA1. Ústav matematiky FEKT VUT, Michal Fusek 1 / 62

Definice : Definice :

Soustavy lineárních rovnic

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

Lineární algebra. Matice, operace s maticemi

Podobnostní transformace

Symetrické a kvadratické formy

Transkript:

Numerické metody Vratislava Mošová 1

Předmluva S rozvojem počítačů vzrostl význam numerických metod. Řada výpočetních postupů, které sem řadíme, vznikla sice už dávno předtím, ale teprve nástup výpočetní techniky vytvořil předpoklady pro vznik a rozvoj nových metod, které ke své realizaci potřebují velký objem výpočtů. Vedle klasických metod jako jsou Gaussova a Jakobiova metoda pro soustavy lineárních rovnic, Newtonova metoda pro nelineární rovnice, Lagrangeova interpolace nebo obdélníková metoda výpočtu integrálu, zde teď stojí multigridní metody pro řešení soustav lineárních rovnic, aproximace křivek Bézierovými polynomy nebo metoda konečných prvků pro řešení diferenciálních rovnic. Algoritmů k numerickému řešení nejrůznějších matematických problémů je mnoho. Ve skriptech, která se vám dostávají do rukou, se setkáte s těmi nejzákladnějšími. K pochopení textu je nutná znalost základních pojmů z lineární algebry a matematické analýzy. Samotný text je rozdělen do šesti kapitol. V úvodní kapitole se budeme zabývat problematikou vzniku a šíření chyb, ke kterým dochází při zpracování numerické úlohy na počítači. Také zde připomeneme některá fakta o maticích a uvedeme některé pojmy a tvrzení z funkcionální analýzy, které budou užitečné v následujícím výkladu. Další tři kapitoly budou věnovány numerickým metodám řešení úloh algebry, jako je řešení soustav lineárních rovnic, určování vlastních čísel matice a výpočet kořenů nelineárních rovnic. Poslední dvě kapitoly budou zasvěceny numerickým metodám řešení úloh matematické analýzy, zejména problematice aproximace funkcí a otázkám numerické kvadratury. Na konci skript je seznam doporučené literatury. K připomenutí si potřebných pojmů a vět z matematické analýzy může posloužit [4]. Tituly [1], [3], [7], [5], [6], [8] jsou základní literaturou, která se týká studované problematiky. Ucelený přehled současných numerických metod poskytují knihy [9] a [11]. Text [2] obsahuje příklady k procvičení probíraných metod a ve skrip- 3

tech [10] najde čtenář další rozšíření studované problematiky včetně odkazů na numerický software. Cílem skript zdaleka není podat vyčerpávající obraz o metodách numerického řešení úloh. Jde pouze o první seznámení s těmito metodami. Osvojení si efektivních postupů by však mělo jít ruku v ruce se snahou proniknout do podstaty studované problematiky. Jedině ten, kdo si dokáže uvědomit úskalí, se kterými se může v průběhu výpočtu setkat, dokáže také efektivně využívat softwarové produkty, které jsou v současné době k dispozici. 4

Obsah Předmluva 3 1 Úvodní pojmy 7 Numerické metody a matematické modelování............ 7 O nepřesnostech při řešení problému................. 9 Některá fakta z lineární algebry a funkcionální analýzy....... 14 2 Řešení soustav lineárních rovnic 27 Přímé metody.............................. 28 Gaussova eliminační metoda................... 28 Metoda LU-rozkladu....................... 33 Iterační metody............................. 41 Jacobiova iterační metoda.................... 42 Gaussova-Seidelova iterační metoda............... 46 Podmíněnost soustav lineárních rovnic............. 55 3 Vlastní čísla a vlastní vektory matice 59 Částečný problém vlastních čísel.................... 61 Mocninná metoda......................... 61 Metoda Rayleighova podílu................... 63 Úplný problém vlastních čísel..................... 65 Přímý výpočet vlastních čísel.................. 65 Určení vlastních čísel metodou LU-rozkladu.......... 67 Určení vlastních čísel metodou ortogonálních transformací.. 69 4 Řešení nelineárních rovnic 73 Řešení nelineární rovnice f(x) = 0................... 73 Metoda bisekce.......................... 75 5

Metoda prosté iterace....................... 76 Metoda regula falsi........................ 80 Newtonova metoda........................ 82 Metoda sečen........................... 85 Řešení rovnic P n (x) = 0........................ 86 Bernoulliova metoda....................... 89 Graefova metoda......................... 90 Laguerrova metoda........................ 93 5 Aproximace funkcí 95 Interpolace............................... 96 Lagrangeův interpolační polynom................ 97 Newtonův interpolační polynom................. 101 Extrapolace............................ 106 Splajny.............................. 108 Aproximace trigonometrickými polynomy............ 115 Hermitova interpolace...................... 119 Bézierovy křivky............................ 120 Metoda nejmenších čtverců...................... 124 6 Numerická kvadratura a derivace 129 Newtonovy-Cotesovy kvadraturní vzorce............... 130 Složené kvadraturní vzorce.................... 133 Gaussovy kvadraturní vzorce..................... 139 Numerická derivace........................... 142 Literatura 144 Rejstřík 145 6

Kapitola 1 Úvodní pojmy Numerické metody a matematické modelování V životě potřebuje člověk řešit velké množství praktických problémů. Aby se s nimi vypořádal, vytvořil si řadu nástrojů, které mu to umožní. Matematika je jedním z nich. Tak například úlohu týkající se bezpečné konstrukce mostu lze modelovat pomocí diferenciálních rovnic. Jinou úlohu může představovat problém, jak optimálně řídit stavbu nějakého areálu, což se dá s určitými zjednodušeními zachytit prostřednictvím soustavy lineárních rovnic. Řešit takové úlohy přímo však není možné. To je jeden z důvodů, proč je zapotřebí rozvíjet numerickou matematiku. Dalším důvodem je fakt, že algebra a matematická analýza sice umožňují rozhodnout o existenci a jednoznačnosti řešení nějakého problému (viz základní věta algebry), ale pouze v některých případech dávají konkrétní návod, jak tyto problémy řešit. (Např. v důkazu věty o existenci a jednoznačnosti řešení Cauchyova počátečního problému se konstruuje posloupnost postupných aproximací řešení.) Někdy zase je způsob řešení uveden, ale z hlediska realizace výpočtu nemusí být zrovna optimální. (Např. když budeme na počítači řešit soustavy lineárních rovnic Cramerovým pravidlem, bude výpočet hodnot determinantů vyšších řádů působit problémy.) Cílem numerických metod je proto vytvořit efektivní algoritmy pro řešení nejrůznějších matematických problémů. Formulace úloh a způsob jejich řešení je závislý na skutečnosti, že pracujeme s počítačem. Práce na počítači vyžaduje, abychom zadali na vstup konečný počet číselných údajů a postup, 7

prostřednictvím kterého po konečném počtu kroků dojdeme k výsledku. Ten je dán opět konečným počtem výstupních číselných údajů. Jinými slovy, naším cílem je pomocí vhodného algoritmu vyřešit numerickou úlohu. Definice 1.1 Numerická úloha je jednoznačný funkční popis vztahu mezi konečným počtem vstupních a konečným počtem výstupních dat. Jednotlivé matematické úlohy však ještě nemusejí být úlohami numerickými. Příklad Řešit soustavu lineárních rovnic, najít kořeny polynomu, určit vlastní čísla matice jsou numerické úlohy. Avšak integrování a derivování funkce nebo řešení soustavy diferenciálních rovnic nejsou numerické úlohy, protože je nelze zadat konečným počtem vstupních dat. Definice 1.2 Algoritmus je jednoznačně zadaná konečná posloupnost operací, která m-tici přípustných vstupních dat přiřadí n-tici dat výstupních. Neřeší jen jedinou speciální úlohu, ale poskytuje řešení pro celou skupinu úloh téhož typu. Příklad Napište algoritmus pro výpočet odmocniny a, a > 0. Řešení: Když označíme x = a, pak x 2 = a, neboli 2x 2 x 2 = a. A tedy pro x 0 máme 2x = x + a a x = 1(x + a ). Odtud už obdržíme iterační formuli, x 2 x tzv. Heronův vzorec, x n = 1 2 (x n 1 + a x n 1 ), n = 1, 2,... Algoritmus (Heronův vzorec) Vstup: a, x 0, n pro k = 1, 2,..., n x k = 1(x 2 k 1 + a x k 1 ) Výstup: x n - přibližná hodnota odmocniny a 8

O nepřesnostech při řešení problému Z posledního příkladu se vidí, že hodnota odmocniny, kterou získáme pomocí Heronova vzorce, nedává přesný výsledek. Tato vlastnost je charakteristická pro řadu numerických výpočtů. Některé numerické metody sice umožňují dojít po konečném počtu kroků k přesnému řešení (např. Gaussova eliminace), ale velká část numerických řešení má pouze aproximativní charakter (např. obdélníkové pravidlo, metoda bisekce). Z toho vyplývá nutnost zabývat se takovými otázkami, jako je odhad chyby, podmíněnost úlohy či stabilita algoritmu. Navíc v souvislosti s matematickým modelováním dochází při vytváření matematického modelu i při jeho řešení k celé řadě dalších nepřesností. Zdrojem chyb mohou být 1. chyby vzniklé při vytváření modelu, protože naměřená data díky přístroji nemusejí být přesná, matematický model je zjednodušením už zjednodušeného fyzikálního modelu a neodpovídá přesně realitě. 2. chyby vzniklé při zpracování úlohy na počítači, protože čísla se zobrazují v počítači v semilogaritmickém tvaru a celá mantisa se nemusí vždy do počítače vejít. Navíc množina počítačových čísel není vzhledem k algebraickým operacím uzavřená, což může způsobit další kumulování chyb, úloha je špatně podmíněná (viz dále strana 12), algoritmus je nestabilní (viz dále strana 13). Druhému typu chyb se nyní budeme věnovat podrobněji. Nejprve si všimněme, jak je to s chybami, které vznikají při zobrazení čísla v počítači. Číslo x zapsané v semilogaritmickém tvaru x = sgn x ( x 1 q + x 2 q 2 +... ) qb, x 1 0, 9

se v q-adickém t-místném počítači M(q, t) uchovává jako x = sgn x ( x 1 q + x 2 q 2 + + x t q t ) qb, kde q > 1 je základ, b je exponent a x i {1, 2,..., q 1}, i = 1,... t, jsou číslice mantisy. Pokud se číslo nemůže celé v počítači zobrazit, dochází k jeho řezání nebo zaokrouhlení, a tím i ke vzniku chyby zobrazení. Přitom pro absolutní chybu x platí x = x x = q b i=1 x i q i t i=1 Pro relativní chybu x x na vstupu je x x x x = qb x i i=1 q i q b i=1 t x i q i i=1 neboť x i i=1 1 q i i=1 = 1. q i q { x i q q b q t při řezání, i 1 2 qb q t při zaokrouhlování. x i q i { q 1 t při řezání, 1 2 q1 t při zaokrouhlování, Díky zaokrouhlovacím chybám vznikají také chyby ve výsledcích aritmetických operací. Příklad. V M(10, 3) sečtěte 1,24 a 0,0221. Řešení: Sčítání probíhá ve sčítacím registru, který má navíc jedno rezervní místo. Nejprve se provede porovnání exponentů s případnou denormalizací. Pak se sečtou mantisy a výsledek se vyjádří v normálním tvaru. 0, 124 10 1 + 0, 221 10 1 = (0, 124 0 + 0, 002 21) 10 1. = 0, 126 10 1. Je také třeba si uvědomit, že pro aritmetické operace prováděné počítačem obecně neplatí ani asociativní ani komutativní zákon. Příklad. V M(10, 3) pomocí částečných součtů odhadněte součet řady n=0 0, 9n. 10

Řešení: Protože se jedná o součet geometrické řady s kvocientem q = 0, 9, je přesná hodnota součtu s = 1 = 10. Částečné součty spočteme dvěma 1 0,9 způsoby. Označme s k = ((1 + 0, 9) + 0, 9 2 ) + + 0, 9 k ) sčítání odpředu, r k = ((0, 9 k + 0, 9 k 1 ) + + 1) sčítání odzadu. Výsledky, které získáme pro různá k, zapišme do tabulky k s k r k s s k s r k 50 9.98 9.97 0.02 0.03 100 9.98 10.0 0.02 0 150 9.98 10.0 0.02 0 V prvním případě, kdy sčítáme od největších členů, se nejdřív rychle blížíme k součtu geometrické řady, ale od jistého k počínaje je příspěvek dalších členů řady ve srovnání se stávajícím součtem příliš malý a nezapočítává se. Oproti tomu přičítání odzadu umožňuje do celkového součtu zahrnout příspěvek všech sčítanců. Definice 1.3 Řekneme, že v normalizovaném tvaru aproximace čísla je s číslic platných, když vztah platí jedině pro j s. x = sgn x ( t i=1 i=1 x i 10 i ) 10b x i x = sgn x ( 10 ) i 10b x x 0, 5 10 b j Příklad Určete počet platných číslic dekadického rozvoje Eulerova čísla, když x = 2, 718. 11

Řešení: x = e = 2, 718218 = 10 0, 2718218..., x x 10 3 0, 218 0, 5 10 1 4, V dané aproximaci Eulerova čísla jsou 4 číslice platné. Přirozené důvody nás vedou k požadavku, aby úloha, kterou se zabýváme, byla jednoznačně řešitelná a její řešení aby spojitě záviselo na vstupních datech. Jinými slovy, aby úloha byla korektní a dobře podmíněná. Definice 1.4 Nechť X a Y jsou Banachovy prostory 1, X je množina vstupních dat a Y množina výstupních dat. Řekneme, že úloha U je korektní, když x X! y Y : y = Ux, x n x, y n = U(x n ) U(x n ) U(x) = y. Poznámka Můžeme říci, že numerická úloha je korektní, když pro každý vstup existuje právě jedno její řešení, které spojitě závisí na vstupních datech. Definice 1.5 Úloha je dobře podmíněná, když je korektní a číslo podmíněnosti relativní chyba na výstupu c p = relativní chyba na vstupu má hodnotu blízkou 1. Poznámka Pokud c p 1, znamená to, že malá změna na vstupu vyvolá pouze malou změnu na výstupu. Příklad Určete číslo podmíněnosti pro úlohu nalézt hodnotu polynomu v bodě x = 33. Volte x x = 100 3. 1 Banachův prostor viz definice 1.16. p(x) = x 2 + x 1150 12

Řešení: Protože p(33) = 28, p( 100 3 ) = 50 je úloha špatně podmíněná. 9, c p = 28 50 9 28 50 33 9 33 = 22,4 28 1/3 33. = 79, Úspěch numerického řešení problému také závisí na volbě algoritmu. Pokud malá nepřesnost ve vstupních datech začne generovat velké chyby během výpočtu, nepovede zvolený postup ke správnému výsledku. Zda určitý algoritmus je vhodný pro daný problém či ne, souvisí s otázkou stability algoritmu. Algoritmus je stabilní, když je málo citlivý na poruchy v datech a na vliv zaokrouhlovacích chyb během výpočtu. Stabilitu algoritmů lze studovat pomocí numerických experimentů. Příklad Je dána rovnice x 2 2bx+c = 0. Její kořeny lze určit prostřednictvím algoritmu A1: x 1 = b + b 2 c, x 2 = b b 2 c nebo algoritmu A2: x 1 = b + b 2 c, x 2 = (b b 2 c)(b+ b 2 c) b+ b 2 c c = b+. (viz [3]) b 2 c Ukážeme, že A1 je citlivější na vliv zaokrouhlovacích chyb během výpočtu, a tedy je méně stabilní než A2. K prověření přesnosti řešení využijeme vztahu, který platí mezi koeficienty a kořeny kvadratické rovnice: c = x 1 x 2. Řešení: Pro rovnici x 2 10 5 x + 1 = 0 je v M(10, 8) : x 1 = 100000, 00. Když spočteme druhý kořen pomocí algoritmu A1, dostaneme x 2 = 0 a x 1 x 2 = 0 c. Když využijeme algoritmus A2, je x 2 = 0, 0000100000000 a x 1 x 2 = 1 = c. Vidíme, že tomto případě je algoritmus A2 stabilnější než algoritmus A1. Na závěr si shrňme, jak budeme postupovat při řešení praktického problému. Ke sledovanému problému musíme přiřadit odpovídající matematický model. To znamená zadat jednoznačný a srozumitelný funkční vztah mezi zadanými a hledanými matematickými objekty (čísly, maticemi, funkcemi, křivkami). 13

Převedeme matematickou úlohu, pokud není numerická, na numerickou (viz definice 1.1). Najdeme vhodný algoritmus řešení a analyzujeme ho. Provedeme rozbor přesnosti získaných výsledků. Některá fakta z lineární algebry a funkcionální analýzy V dalších kapitolách se nám vedle poznatků získaných v základních kurzech algebry a matematické analýzy budou hodit ještě některé další skutečnosti, které si zde ve stručnosti uvedeme. V řadě algoritmů pro řešení úloh lineární algebry lze těžit z toho, že matice, se kterou pracujeme, má určitou speciální strukturu. Zajímavé pro nás budou zejména následující typy matic: Definice 1.6 Čtvercová matice A = (a ij ) n i,j=1, a ij R, je ostře diagonálně dominantní, když pro všechna i = 1,..., n je a ii > n a ik. (1.1) k=1, k i Symetrická, když pro všechna i, j = 1,..., n platí a ij = a ji. Ortogonální, když pro všechna i, j = 1,..., n platí 2 Pozitivně definitní, když n i=1 n a ik a kj = δ ij. (1.2) k=1 n a ij x i x j > 0 pro libovolný vektor x = (x 1,..., x n ). (1.3) j=1 14

Čtvercová matice je (p, q)-pásová, když existují čísla p, q < n tak, že pro prvky matice A platí Číslo p + q + 1 je pak šířka pásu. a ij = 0 pokud j > i + p nebo i > j + q. (1.4) Příklad Matice A = 2 1 0 1 5 2 0 2 3 je ostře diagonálně dominatní, symetrická, pozitivně definitní, pásová. Významnou roli při rozhodování o konvergenci iteračních metod pro řešení soustav lineárních rovnic hrají vlastní čísla. Definice 1.7 Nechť A je čtvercová matice řádu n, I jednotková matice řádu n. Řekneme, že λ je vlastním číslem matice A, když homogenní soustava má netriviální řešení v = (v 1, v 2,..., v n ) T. (A λi) v = 0, (1.5) Poznámka Soustava (1.5) má nenulové řešení, právě když det(a λi) = 0. Uvedený determinant představuje tzv. charakteristický polynom p(λ) = ( 1) n λ n + b 1 λ n 1 + + b n 1 λ + b n. (1.6) Pokud A je matice řádu n, je p(λ) polynom n-tého stupně a má tedy právě n kořenů λ 1, λ 2,..., λ n, které nemusejí být navzájem různé. Pak se ale může stát, že počet lineárně nezávislých vlastních vektorů je menší než je řád matice (viz [3] strana 107). 2 δ ij = { 0 pro i j 1 jinak 15

Příklad Stanovte vlastní čísla a vlastní vektory matice A = 1 1 0 0 2 0 0 0 3 Řešení: 1 λ 1 0 A λi = 0 2 λ 0 = (2 λ)(λ 3)(λ 1) = 0. 0 0 3 λ Odtud dostaneme, že λ 1 = 1, λ 2 = 2 a λ 3 = 3 jsou vlastní čísla matice A. Dále spočteme vlastní vektory. Pro λ 1 = 1 budeme řešit soustavu Aλ 1 = 0 tzn. 0 1 0 0 ( ) 0 1 0 0 0 1 0 0, 0 0 2 0 0 0 2 0 Vidíme, že obecným řešením soustavy je vektor v 1 = (t, 0, 0) T, t R. Pro λ 2 = 2 je v 2 = (r, r, 0) T, r R. 1 1 0 0 0 0 0 0 0 0 1 0 ( 1 1 0 0 0 0 1 0 ),. Pro λ 3 = 3 je v 3 = (0, 0, s) T, s R. 2 1 0 0 0 1 0 0 0 0 0 0 ( 2 1 0 0 0 1 0 0 Poznámka Dále připomeňme, že symetrická matice má pouze reálná vlastní čísla. Pokud tato vlastní čísla jsou ještě navíc navzájem různá, jsou k nim příslušné vlastní vektory ortogonální. Symetrická pozitivně definitní matice má všechna vlastní čísla reálná a kladná. Když v je vlastní vektor matice A příslušný k vlastnímu číslu λ, pak platí λ = vt A v v T v. 16 ),

Definice 1.8 Pokud x není vlastním vektorem matice A, pak podíl nazýváme Rayleighovým podílem. x T A x x T x (1.7) Problematika numerického výpočtu vlastních čísel matice je spojena s pojmem podobné matice. Definice 1.9 Řekneme, že matice A je podobná matici B, když existuje regulární matice T tak, že T 1 AT = B. Píšeme pak A B. Při konstrukci numerických metod pro výpočet vlastních čísel matice se využívá následující věta. Věta 1.1 Když A a B jsou podobné matice, pak mají stejná vlastní čísla. Důkaz. det(b λi) = det (T 1 (A λi)t ) = det(a λi). Poznámka Opak platit nemusí. Totiž matice, které mají stejná vlastní čísla, ještě nemusejí být podobné. Např. matice 1 0 0 1 1 0 A = 0 2 0 0 0 2 a B = 0 2 0 0 0 2 sice mají stejná vlastní čísla, ale nejsou podobné, protože jsou tvořeny navzájem různými Jordanovými bloky Následující systém definic a vět představuje obecný aparát, který využijeme při odvozování numerických metod řešení daných problémů. 17

Definice 1.10 Množinu X nazveme lineárním prostorem, když pro každé dva prvky x, y X a libovolné konstanty α, β R platí αx + βy X. Příklad Lineární prostory tvoří R n množina n rozměrných sloupcových vektorů, které mají reálné složky M n množina čtvercových matic řádu n, P n množina polynomů n-tého stupně, C n (a, b) množina funkcí n-krát spojitě diferencovatelných na (a, b), L p (a, b) množina funkcí, pro které je (Lebesgueův) integrál b a f(x) p dx konečný. Definice 1.11 Nechť X je lineární prostor. Zobrazení. : X R, které pro všechna x, y X, α R splňuje x 0, ( x = 0 x = 0), αx = α x, x + y x + y, se nazývá norma. Lineární prostor s normou budeme nazývat normovaným lineárním prostorem. Příklad Pro x R n představuje x = max i=1,...,n { x i } nebo x E = n normu vektoru. V prostoru M n můžeme normu matice definovat jedním z následujících způsobů: Řádková norma A = max i=1,...,n i=1 x 2 i n a ij. (1.8) j=1 Sloupcová norma A S = max j=1,...,n n a ij. (1.9) i=1 18

Eukleidovská norma n n A E = ( i=1 j=1 a 2 ij ). (1.10) Pro f C 0 (a, b) lze vzít f(x) = Pro f L p (a, b), p = 1, 2,... je f(x) p = ( max f(x). (1.11) x <a,b> b a f(x) p dx) 1 p. (1.12) Poznámka Říkáme, že dvě normy. 1 a. 2 v lineárním prostoru X jsou ekvivalentní, právě když existují kladné konstanty c 1, c 2 R tak, že pro všechna x X platí c 1 x 1 x 2 c 2 x 1. Protože v konečnědimenzionálních prostorech jsou všechny normy ekvivalentní, jsou ekvivalentní také normy (1.8), (1.9), (1.10). Poznámka Když A, B M n a x R n, pak pro odpovídající si normy platí AB A B. (1.13) A x A x. (1.14) Definice 1.12 Nechť X je lineární prostor. Zobrazení z X do R, které pro všechna x, y X, α, β R splňuje (x, x) 0, ((x, x) = 0 x = 0), (x, y) = (y, x), (αx + βy, z) = (αx, z) + (βy, z), se nazývá skalární součin. Lineární prostor se skalárním součinem je tzv. Hilbertův prostor. 19

Příklad (Spojitý případ) Když funkce f, g L 2 (a, b), je možné definovat skalární součin 3 (f, g) = b a f(x)g(x) dx. (1.15) (Diskrétní případ) Když funkce f a g jsou definovány v uzlových bodech x 0, x 1,..., x n a, b, je skalární součin (f, g) = n f(x j )g(x j ) dx. (1.16) j=0 Poznámka V Hilbertově prostoru X lze definovat normu vztahem x = (x, x), x X. Příklad Nechť i = 1 je imaginární jednotka. V L 2 ( π, π) stanovte normu funkce f(x) = e ix. Řešení: e ix 2 = π π eix e ix dx = 2π, e ix = 2π. Definice 1.13 Nechť X je Hilbertův prostor. Řekneme, že prvky x i, x j X jsou ortogonální, když { = 0 pro i j, (x i, x j ) 0 pro i = j. Speciálně když platí (x i, x j ) = δ ij, jsou prvky x i, x j X ortonormální. Poznámka Ve spojitém případě je ortogonalita závislá na volbě váhové funkce. V diskrétním případě ještě navíc na volbě tabulkových bodů. Příklad Jako příklad ortogonálních soustav mohou sloužit následující systémy algebraických a trigonometrických polynomů: a) Funkce {x j }, j = 0, 1,..., jsou ortogonální na intervalu (, ). b) Funkce {1, cos x, sin x, cos 2x, sin 2x,... } jsou ortogonální na π, π. 3 Funkce g(x), je komplexně sdružená k funkci g(x). 20

c) Funkce {e ijx }, i 2 = 1, j = 0, ±1, ±2...., jsou ortogonální na intervalu π, π. d) Legenderovy polynomy P 0 (x) = 1, P 1 (x) = x, (n + 1)P n+1 (x) = (2n + 1)xP n (x) np n 1 (x), které můžeme také definovat vztahem jsou ortogonální na intervalu 1, 1. P n (x) = 1 d n (x 2 1) n, 2 n n! dx n Ukažme si nyní, že funkce ϕ j = e ijx (j = 0, ±1,... ) jsou opravdu na intervalu π, π ortogonální. Spojitý případ: π { 0 pro j k, (ϕ j (x), ϕ k (x)) = e ijx e ikx dx = 2π pro j = k. π Diskrétní případ: Když x s = 2πs, s = 0, 1,... n, jsou uzlové body z intervalu n+1 π, π, pak n 2πs i(j k) (ϕ j (x), ϕ k (x)) = e n+1 2π i(j k) je n-tým částečným součtem geometrické řady, která má kvocient q = e n+1. Pokud j k je celé, je q = 1 a (ϕ n+1 j(x), ϕ k (x)) = n + 1. V opačném případě je (ϕ j (x), ϕ k (x)) = 0. s=0 Definice 1.14 Nechť X je normovaný prostor. Řekneme, že posloupnost prvků x n X konverguje k x X, když x n x 0, x n. Definice 1.15 Nechť X je normovaný prostor. Posloupnost {x n } je cauchyovská v X, když x m x n 0, n, m. Definice 1.16 Normovaný prostor, ve kterém je každá cauchyovská posloupnost konvergentní, je úplný normovaný neboli Banachův prostor. 21

Příklad Prostor C (0) (a, b) s normou. je úplný. Konvergence posloupnosti spojitých funkcí v normě. je totiž ekvivalentní se stejnoměrnou konvergencí těchto funkcí. Limita posloupnosti spojitých funkcí je tedy opět spojitá funkce. Prostor L p (a, b) s normou. p je úplný. Definice 1.17 Nechť X, Y jsou lineární prostory. Zobrazení A : X Y je lineární operátor, když pro všechna x, y X, α, β R platí f(αx + βy) = αf(x) + βf(y). Definice 1.18 Nechť X, Y jsou normované prostory. Řekneme, že lineární operátor A : X Y je omezený, když existuje konstanta c > 0 taková, že Ax c x. Nejmenší z konstant, která splňuje uvedenou nerovnost, je tzv. norma operátoru A. Platí A = sup Ax. x =1 Definice 1.19 Lineární operátor A : X Y je spojitý, když pro všechna x n X, x n x je Ax n Ax. Věta 1.2 V normovaném prostoru je lineární operátor spojitý, když je omezený. Důkaz. Pokud je A omezený operátor, je Ax n Ax = A(x n x) A x n x 0 pro x n x 0. Definice 1.20 Nechť U je podprostor normovaného prostoru X. Operátor A : U X nazveme kontrakcí, když existuje kontanta q 0, 1) tak, že Ax Ay q x y (1.17) 22

pro všechna x, y U. Definice 1.21 Nechť X je Banachův prostor. Řekneme, že x X je pevným bodem operátoru A : X X, když Ax = x. Věta 1.3 (Banach) Nechť U je úplný podprostor normovaného prostoru X a operátor A : U U je kontrakce, pak A má právě jeden pevný bod. Důkaz. Předpokládejme, že A je kontrakce (viz definice 1.20), x 0 pevně dáno a pro n = 1, 2,... je x n+1 = Ax n. Pak U je x n+1 x n = Ax n Ax n 1 q x n x n 1 = q Ax n 1 Ax n 2 Pro m > n dostaneme q 2 x n 1 x n 2 q n x 1 x 0. x n x m x n x n+1 + x n+1 x n+2 + + x m 1 x m (q n + q n+1 + + q m 1 ) x 1 x 0. (1.18) Protože A je kontrakce, máme pro n x n x m qn 1 q x 1 x 0 0. To znamená, že posloupnost {x n } je cauchyovská v úplném prostoru U, a tedy i konvergentní. Ze spojitosti operátoru A máme x = lim n x n+1 = lim n Ax n = Ax. Je tedy x = lim n x n+1 pevným bodem operátoru A. Tento bod je právě jeden. Kdyby existovaly dva takové pevné body x a y, pak 0 x y = Ax Ay q x y. To je možné, jen když q 1. To je ale spor s tím, že konstanta q < 1. 23

Poznámka Banachova věta nejenže udává podmínku pro existenci jediného pevného bodu operátoru A, ale její důkaz poskytuje i návod, jak pevný bod najít. Věta 1.4 Když A je kontrakce úplného normovaného prostoru U do sebe, pak aproximace x (k+1) = Ax (k) konvergují pro libovolné x 0 k pevnému bodu x operátoru A. Jestliže q je kontrakční konstanta, pak pro všechna n N dostaneme apriorní odhad x n x qn 1 q x 1 x 0 (1.19) a aposteriorní odhad x n x q 1 q x n x n 1. (1.20) Důkaz. Existence pevného bodu plyne z Banachovy věty 1.3. Apriorní odhad obdržíme ze vztahu (1.18), když m. Aposteriorní odhad plyne z apriorního, když začneme od x 0 = x n 1. Poznámka Apriorní odhad slouží jako horní mez při určování počtu kroků potřebných k dosažení požadované přesnosti. Když je ε požadovaná přesnost, pak z (1.19) q n 1 q x 1 x 0 < ε, n q n < 1 q x 1 x 0 ε, ln ε (1 q), kde ε = ln q x 1 x 0 ε. Vidíme, že čím je menší q, tím je k dosažení vyšší přesnosti zapotřebí méně kroků. Na druhé straně aposteriorní odhad poskytuje lepší odhad přesnosti než odhad apriorní. 24

Věta 1.5 Když X je Banachův prostor, I : X X je identita a H : X X je omezený operátor takový, že H < 1, pak rovnice (I H)x = z má pro každé z X právě jedno řešení x X. Posloupnost aproximací x n+1 = Hx n + z pak konverguje pro libovolné x 0 X k řešení x a platí apriorní odhad a aposteriorní odhad x n x x n x H n 1 H x 1 x 0 H 1 H x n x n 1. Důkaz. Pro libovolné z X pevné definujme operátor A : X X vztahem Ax = Hx + z. Pro všechna x, y X je Ax Ay = Hx Hy H x y. Protože q = H < 1, je A kontrakce. Když zvolíme x 0 postupné aproximace máme = z, pak pro x n n H i z i=0 n H i z i=0 1 1 H z. Protože pro n konverguje x n x = (I H) 1 z, dostaneme pro všechna z X (I H) 1 z z 1 H. 25

Definice 1.22 Nechť X je normovaný prostor, U X a x X. Prvek v U nazveme nejlepší aproximací x vzhledem k U, když x v = inf x u. (1.21) u U Poznámka Prvek v U je nejlepší aproximací x X, právě když pro všechna u U je (x v, u) = 0. (1.22) Poznámka Ke každému prvku normovaného prostoru existuje nejlepší aproximace vzhledem k nějakému jeho konečnědimenzionálnímu podprostoru. Věta 1.6 Nechť U je konečnědimenzionální podprostor Hilbertova prostoru X a u 1,..., u n jeho báze. Prvek n v = α i u i (1.23) i=1 je nejlepší aproximací prvku x vzhledem k U, právě když koeficienty α 1,..., α n vyhovují soustavě n α i (u i, u j ) = (x, u j ), j = 1...., n. (1.24) i=1 Důkaz. Vztah (1.24) obdržíme dosazením (1.23) do (1.22) Věta 1.7 Nechť U je podprostor Hilbertova prostoru X a u 1,..., u n jeho báze. Nejlepší aproximaci v prvku u pak lze psát n v = (x, u i )u i. (1.25) Důkaz. Tvrzení plyne z věty 1.6. i=1 26

Kapitola 2 Řešení soustav lineárních rovnic Řešení soustav lineárních rovnic je velice frekventovaný problém. Na úlohu najít řešení soustavy lineárních rovnic vedou nejrůznější optimalizační úlohy nebo k ní dospějeme při numerickém řešení parciálních diferenciálních rovnic. To podtrhuje význam tohoto odstavce. Přestože soustavy lineárních rovnic mohou mít obecnější tvar, omezíme se pouze na soustavy lineárních rovnic s regulární čtvercovou maticí A řádu n A x = b, (2.1) kde x je n-členný sloupcový vektor řešení a b je n-dimenzionální sloupcový vektor absolutních členů. Připomeňme si, že matice A je regulární, právě když det A 0. V takovém případě soustava A x = b má jediné řešení. Metody, pomocí kterých toto řešení budeme hledat, rozdělíme do dvou skupin: Metody přímé (Gaussova eliminační metoda, LU rozklad). Tyto metody poskytují přesné řešení v konečném počtu kroků, pokud během výpočtu nezaokrouhlujeme. Metody nepřímé tzv. iterační (Gaussova-Seidelova metoda, Jacobiova metoda). Těmito metodami získáme pouze aproximativní řešení. Obecně nelze říci, který z uvedených typů pro který okruh řešených úloh je nejvýhodnější použít. Pro první orientaci lze zhruba uvést, že soustavy s plnou maticí se spíš řeší pomocí přímých metod a soustavy s řídkou maticí, v nichž převládají nulové prvky, zase pomocí iteračních metod. 27

Přímé metody a) Gaussova eliminační metoda (GEM) Nejprve si metodu odvodíme. Rozepišme soustavu (2.1) na a 0 11x 1 + a 0 12x 2 + + a 0 1nx n = a 0 1,n+1, (2.2) a 0 21x 1 + a 0 22x 2 + + a 0 2nx n = a 0 2,n+1,........................... a 0 n1x 1 + a 0 n2x 2 + + a 0 nnx n = a 0 n,n+1. Nyní budeme postupně eliminovat prvky pod hlavní diagonálou matice soustavy. Nejprve 1. rovnici využijeme k eliminaci 1. neznámé ze zbývajících n 1 rovnic: 1. řádek vynásobíme čıslem m 0 21 = a0 21 a přičteme k 2. řádku, a 0 11 1. řádek vynásobený číslem m 0 31 = a0 31 přičteme ke 3. řádku a tak dále, až a 0 11 získáme soustavu a 0 11x 1 + a 0 12x 2 +... + a 0 1nx n = a 0 1,n+1, a 1 22x 2 +... + a 1 2nx n = a 1 2,n+1,................................. a 1 n2x 2 +... + a 1 nnx n = a 1 n,n+1. Obecně v k-tém kroku (k = 1, 2,..., n 1) vynulujeme prvky v k-tém sloupci tím, že k-tý řádek vynásobený multiplikátorem m k 1 ik = ak 1 ik a k 1 kk přičteme k i- tému řádku (i = k + 1,... n). Matici A tak pomocí ekvivalentních úprav převedeme na horní trojúhelníkovou matici. Obdržíme soustavu a 0 11x 1 + a 0 12x 2 +... +a 0 1nx n = a 0 1,n+1, a 1 22x 2 +... +a 1 2nx n = a 1 2,n+1, a 2 33x 3 +... +a 2 3nx n = a 2 3,n+1,.................. a n 1 nn x n = an,n+1, n 1 28

z níž zpětnou eliminací získáme hodnoty neznámých x n, x n 1,..., x 1. Algoritmus (GEM) Vstup: n, A = (a 0 ij), b = (a 0 i,n+1) pro k = 1, 2,..., n 1 pro i = k + 1, k + 2,..., n m k 1 ik = ak 1 ik (pokud a k 1 a k 1 kk 0) kk pro j = k + 1, k + 2,..., n + 1 a k ij = a k 1 ij + m k 1 ik ak 1 kj pro i = n, n 1,..., 1 x i = 1 (a i 1 i,n+1 n j=i+1 ai 1 ij x j ) a i 1 ii Výstup: x = (x 1, x 2,..., x n ) Poznámka Protože platí n n(n + 1) k =, 2 k=1 n k 2 = k=1 n(n + 1)(2n + 1), 6 dojdeme k závěru, že v přímém chodu GEM, kdy matici převádíme na trojúhelníkový tvar, potřebujeme k výpočtu multiplikátorů m k 1 ik n 1 (n k) = (n 1)n k=1 dělení a k výpočtu prvků a k ij potřebujeme n 1 n 1 (n k)(n k + 1) = k=1 k=1 (n 1)n 2 = n(n 1) 2 n(n + 1) k(2n + 1) + k 2 = n3 n 3 násobení a stejně tolik sčítání. Při zpětném chodu GEM, tj. eliminaci proměnných, je třeba n 2 + n 2 29

násobení a n 2 n 2 sčítání. Celkem v našem případě tedy potřebujeme n3 + 3 n2 n násobení a 3 dělení a n3 + n2 5n sčítání. Z hlediska doby potřebné k realizaci algoritmu 3 2 6 jsou operace násobení a dělení v podstatě totožné. Protože časová náročnost násobení je několikanásobně vyšší než ta, kterou vyžaduje operace sčítání, budeme o efektivnosti výpočtu rozhodovat v závislosti na počtu násobení. Definice 2.1 Řekneme, že pro x a je funkce f stejného řádu jako funkce g, když existuje konečná limita Píšeme pak f(x) = O(g(x)), x a. f(x) lim x a g(x). Poznámka K realizaci algoritmu GEM je potřeba n3 + 3 O(n2 ) násobení. To znamená, že když v soustavě počet rovnic zdvojnásobíme, vzroste doba výpočtu osmkrát. Příklad Gaussovou eliminační metodou řešte soustavu x 1 + 2x 2 2x 3 = 1, x 1 + x 2 + x 3 = 3, 2x 1 + 2x 2 + x 3 = 5. Řešení: Rozšířenou matici soustavy uvedeme na trojúhelníkový tvar. V našem případě řádky postupně násobíme multiplikátory m 0 21 = 1, m 0 31 = 2; m 1 32 = 2. Dostaneme 1 2 2 1 1 1 1 3 2 2 1 5 Zpětnou eliminací spočteme řešení: 1 2 2 1 0 1 3 2 0 2 5 3 x 3 = 1, x 2 = 2 + 3x 3 = 1, x 3 = 1 2x 2 + 2x 3 = 1. 1 2 2 1 0 1 3 2 0 0 1 1. 30

Poznámka Při řešení pomocí GEM jsme vyloučili případ, kdy v k-tém kroku je hlavní prvek a k 1 kk = 0. Pokud taková situace nastane a některé a k 1 kk se v počítači zobrazí jako nula, můžeme zkusit použít Gaussovu eliminační metodu s výběrem hlavního prvku. Máme tři možnosti: i) GEM se sloupcovým výběrem za hlavní prvek v k-tém kroku bereme největší prvek v k-tém sloupci. Vybíráme mezi řádky, z nichž jsme dosud nevzali vedoucí prvek. Hlavní prvek je v řádku p a platí pro něj a pk = max i a k 1 ik. ii) GEM s řádkovým výběrem za hlavní prvek v k-tém kroku bereme největší prvek v k-tém řádku. Vybíráme mezi sloupci, z nichž jsme dosud nevzali vedoucí prvek. Hlavní prvek je ve sloupci q a platí pro něj a kq = max j a k 1 kj. iii) GEM s úplným výběrem za hlavní prvek v k-tém kroku bereme největší prvek v tom řádku a sloupci, ve kterém jsme dosud nevybrali vedoucí prvek. Hlavní prvek se nachází v p-tém řádku a q-tém sloupci a platí pro něj a pq = max ij a k 1 ij. Příklad Gaussovou eliminační metodou řešte soustavu x 1 + 2x 2 2x 3 = 1, x 1 + 2x 2 + x 3 = 4, 2x 1 + 2x 2 + x 3 = 5. Řešení: 1 2 2 1 1 2 1 4 2 2 1 5 1 2 2 1 0 0 3 3 0 2 5 3 GEM nelze přímo aplikovat, protože ve druhém kroku je a 1 22 = 0. Pokusme se řešit soustavu pomocí GEM se sloupcovým výběrem. V 1. sloupci původní matice má největší absolutní hodnotu prvek a 0 31. Proto přesuneme 31.

3. řádek na začátek a dále už pokračujeme standardní Gaussovou eliminační metodou: 1 2 2 1 2 2 1 5 1 2 1 4 1 2 2 1, 2 2 1 5 1 2 1 4 2 2 1 5 1 2 2 1 1 2 1 4 2 2 1 5 0 1 5 2 3 2 1 3 0 1 2 2 x 3 = 1, x 2 = 1, x 1 = 1. 2 2 1 5 0 1 5 2 3 2 6 6 0 0 2 2, Jak bylo řečeno v předchozím odstavci, ne každé číslo se v počítači zobrazí přesně. Následující dva příklady jsou ukázkou toho, jak GEM s výběrem hlavního prvku může přispět ke snížení kumulování zaokrouhlovacích chyb v průběhu výpočtu. Příklad Gaussovou eliminační metodou v M(10, 2) řešte soustavu x 1 + 200x 2 = 100, x 1 + x 2 = 1. Řešení: Pokud během výpočtu nezaokrouhlujeme, obdržíme ( ) ( ) 1 200 100 1 200 100, 1 1 1 0 199 99 x 2 = 99 = 0, 4974..., 199 x 1 = 100 200 99 199 = 100 199 = 0, 5025... Když během výpočtu zaokrouhlujeme, pak v M(10, 2) bude ( ) ( ) 1 200 100 1 200 100, 1 1 1 0 200 99 x 2 = 99. = 0, 50, 200 x 1 = 100 200 0, 50 = 0. 32

Vidíme, že zaokrouhlovací chyby úplně znehodnotily výpočet. Příklad Soustavu z předchozího příkladu řešte v M(10, 2) Gaussovou eliminační metodou s řádkovým výběrem. Řešení: Protože největší prvek v 1. řádku se nachází ve 2. sloupci, zaměníme v původní matici první a druhý sloupec a pokračujeme eliminační metodou ( ) ( ) ( ) 1 200 100 200 1 100 200 1 100. 1 1 1 1 1 1 0 0, 995 0, 455 Při zaokrouhlení v M(10, 2) x 1 = x 2 = 0, 455 0, 995 100 0, 46 200. = 0, 46,. = 0, 50. Při použití Gaussovy eliminační metody s řádkovým výběrem jsme tak docílili lepších výsledků než při řešení prostřednictvím Gaussovy eliminační metody bez výběru. b) Metoda LU-rozkladu Gaussova eliminační metoda není nic jiného než převedení původní matice soustavy prostřednictvím lineární transformace na horní trojúhelníkovou matici, ze které pak zpětnou eliminací stanovíme řešení. Když A je původní matice soustavy, U je příslušná trojúhelníková matice a T = T n 1 T n 2... T 2 T 1, kde pro k = 1, 2,..., n 1 je T k = 1 0... 0 0 0... 0 0 1... 0 0 0... 0........................ 0 0 m k 1 k+1,k 1 0 0... 0 0 0 m k 1 k+2,k 0 1 0... 0........................ 0 0 m k 1 n,k 0 0 0... 1 33,

pak proces převedení matice A na trojúhelníkovou matici lze zapsat jako T A = U. Matice T je regulární, a proto k ní existuje matice inverzní L = T 1. Platí tedy A = T 1 U = LU. Tím jsme vyjádřili matici A jako součin dolní trojúhelníkové matice l 11 0 0... 0 l 21 l 22 0... 0 L = l 31 l 32 l 33... 0............... l n1 l n2 l n3... l nn a horní trojúhelníkové matice u 11 u 12 u 22... u 1n 0 u 22 u 23... u 2n U = 0 0 u 33... u 3n................ 0 0 0... u nn Proto zde také hovoříme o tzv. LU-rozkladu. Uvedený rozklad je ekvivalentní s Gaussovou eliminační metodou, a proto je možné ho realizovat, právě když lze realizovat GEM. ( 0 5 Příklad LU-rozklad nelze aplikovat přímo, když A = 3 0 matici pivot a 0 11 = 0, a proto nelze stanovit multiplikátor m 0 21. ). V této Příklad Pro matici A = A = ( 1 0 2 1 ) ( 2 5 0 9 ( 2 5 4 1 ) ) LU-rozklad existuje. Lehce ověříme, že nebo také A = 34 ( 2 0 4 1 ) ( 1 5 2 0 9 ).

Poznámka Z posledního příkladu je vidět, že rozklad A = LU není určen jednoznačně. Ze soustavy A = LU, která má n 2 rovnic, je totiž třeba spočítat n(n+1) neznámých l 11, l 21,..., l nn, u 11, u 12,..., u nn. To znamená, že řešení obsahuje n volných nezámých. Jednoznačnost rozkladu si zajistíme třeba tak, že zadáme prvky na hlavní diagonále matice L. Bývá zvykem volit l ii = 1, i = 1, 2,... n. Definice 2.2 Nechť A je regulární matice řádu n. Řekneme, že dolní trojúhelníková matice L s jedničkami na hlavní diagonále a horní troúhelníková matice U tvoří LU-rozklad matice A, když platí A = LU. Příklad Najděte vztah mezi prvky LU-rozkladu pro matici třetího řádu. Řešení: a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 = 1 0 0 l 21 1 0 l 31 l 32 1 u 11 u 12 u 13 0 u 22 u 23 0 0 u 33. u 11 = a 11, l 21 u 11 = a 21 = l 21 = a 21 u 11, l 31 u 11 = a 31 = l 31 = a 31 u 11, u 12 = a 12, l 21 u 12 + u 22 = a 22 = u 22 = a 22 l 21 u 12, l 31 u 12 + l 32 u 22 = a 32 = l 32 = a 32 l 31 u 12 u 22, u 13 = a 13, l 21 u 13 + u 23 = a 23 = u 23 = a 32 l 21 u 13, l 31 u 13 + l 32 u 23 + u 33 = a 33 = u 33 = a 33 l 31 u 13 l 32 u 23. Algoritmus (LU-rozklad) Vstup: n, A = (a ij ) pro j = 1, 2,..., n pro i = 1, 2,..., j u ij = a ij i 1 r=1 l iru rj pro i = j + 1, j + 2,..., n l ij = 1 u jj (a ij j 1 s=1 l isu sj ) (pokud u jj 0) Výstup: L = (l ij ), U = (u ij ) 35

K realizaci uvedeného algoritmu je třeba n3 3 + O(n2 ) násobení. Věta 2.1 Nechť A = LU je LU-rozklad matice A. Vektor x je řešením soustavy (2.1), právě když je řešením soustavy L y = b (2.3) U x = y. (2.4) Důkaz. Nechť A = LU. Pak A x = b L(U x) = b L y = b, U x = y. Poznámka Ze soustav (2.3), (2.4) můžeme přímo eliminovat vektory řešení y a x, protože L a U jsou trojúhelníkové matice. Příklad Pomocí LU-rozkladu řešte soustavu x 1 + 2x 2 2x 3 = 1, x 1 + x 2 + x 3 = 3, 2x 1 + 2x 2 + x 3 = 5. Řešení: A = LU, kde 1 2 2 A = 1 1 1 2 2 1, L = 1 0 0 1 1 0 2 2 1, U = 1 2 2 0 1 3 0 0 1. Eliminace ze soustavy L y = b : 1 0 0 1 1 1 0 3 2 2 1 5, y 1 = 1, y 2 = 2, y 3 = 1. Zpětná eliminace z U x = y : 1 2 2 1 0 1 3 2, 0 0 1 1 36

x 3 = 1, x 2 = 1, x 1 = 1. Poznámka Metodu LU-rozkladu je výhodné použít v případě, že máme řešit víc soustav se stejnou maticí soustavy A. Rozklad se pak počítá jen jednou. Při řešení celé řady úloh, mezi které patří například řešení parciálních diferenciálních rovnic metodou konečných prvků, se setkáváme s maticemi, které mají speciální tvar. Na závěr si proto uveďme dva příklady algoritmů LUrozkladu pro takové matice. i) Pokud je matice A symetrická pozitivně definitní (viz definice 1.6), dá se ukázat, že existuje horní trojúhelníková matice U s kladnými prvky na hlavní diagonále tak, že A = U T U. Toho využijeme v následujícím algoritmu. Algoritmus (Choleského pro matici A, která je uložená ve sloupcích.) Vstup: n, A = (a ij ) pro j = 1, 2,..., n u jj = a jj j 1 r=1 u2 jr pro i = j + 1, j + 2,..., n u ij = 1 u jj (a ij j 1 s=1 u isu js ) Výstup: U = (u ij ) V Choleského algoritmu je zapotřebí n3 6 + O(n2 ) násobení. Příklad Choleského algoritmus použijte k řešení soustavy Řešení: Označme A = x 1 + x 2 + x 3 = 2, x 1 + 5x 2 + 5x 3 = 6, x 1 + 5x 2 + 14x 3 = 6. 1 1 1 1 5 5 1 5 14, b = (2, 6, 6) T. 37

Platí A = U T U, když U T = 1 0 0 1 2 0 1 2 3, U = 1 1 1 0 2 2 0 0 3 Řešení soustavy U T y = b : 1 0 0 2 1 2 0 6, y = (2, 2, 0) T. 1 2 3 6 Ze soustavy U x = y máme 1 1 1 2 0 2 2 2, x = (1, 1, 0) T. 0 0 3 0. ii) Dalším typem speciálních matic, které se v praktických problémech často vyskytují, jsou pásové matice. (Pásová matice viz definice 1.6.) V takovém případě stačí pracovat pouze s nenulovými prvky matice. Sníží se pak počet operací potřebných k realizaci výpočtu. Přednosti tohoto postupu vyniknou, když p << n. Algoritmus (LU-rozklad pro (p, p)-pásovou matici) Vstup: n, p, A = (a ij ) pro i = 1, 2,..., n γ = min(n, i + p) pro j = i, i + 1,..., γ α = max(1, j p) u ij = a ij i 1 r=α l iru jr pro j = i + 1, i + 2,..., γ α = max(1, j p) l ji = 1 u ii (a ji i 1 r=α l jru ri ) Výstup: L = (l ij ), U = (u ij ) Počet násobení a dělení potřebných k realizaci algoritmu je np(p + 1). 38

Příklad Pomocí LU-rozkladu pro třídiagonální matici řešte soustavu Řešení: Označme A = x 1 + x 2 = 0, 2x 1 + x 2 + 2x 3 = 5, 3x 2 x 3 + 3x 4 = 5, 4x 3 + x 4 = 5. Platí, že A = LU, když L = Řešení soustavy L y = b : 1 1 0 0 2 1 2 0 0 3 1 3 0 0 4 1 1 0 0 0 2 1 0 0 0 1 1 0 0 0 4/3 1 1 0 0 0 0 2 1 0 0 5 0 1 1 0 5 0 0 4/3 1 5 Ze soustavy U x = y obdržíme 1 1 0 0 0 0 3 2 0 5 0 0 3 3 0 0 0 0 5 5, b = (0, 5, 5, 5) T. a U =, y = (0, 5, 0, 5)T., x = (1, 1, 1, 1)T. 1 1 0 0 0 3 2 0 0 0 3 3 0 0 0 5. Gaussovu eliminační metodu a LU-rozklad lze s výhodou použít i k jiným účelům než jen k řešení soustav lineárních rovnic. Například můžeme vypočítat hodnotu determinantu nebo určit tvar inverzní matice. i) Stanovení hodnoty determinantu: Pomocí GEM převedeme matici A na horní trojúhelníkovou matici. Pak det A = a 0 11a 1 22... a n 1 nn. 39

Pokud jsme provedli LU-rozklad matice A, je det A = detl detu = 1 u 11 u 22... u nn. Počet násobení při Gaussově eliminaci je řádově n3. To je při výpočtu determinantů vyšších řádů o hodně méně než n! násobení, která bychom museli 3 realizovat při výpočtu determinantu rozvojem. Příklad Spočítejte determinant matice A = pomocí Gaussovy metody a metody LU-rozkladu. Řešení: Gaussova metoda: A = LU-rozklad: A = LU = 1 1 1 2 1 2 3 1 1 1 0 0 2 1 0 3 2 1 1 1 1 2 1 2 3 1 1 1 1 1 0 1 0 0 0 2 1 1 1 0 1 0 0 0 2, det A = 2., det A = 2. ii) Obě metody je možné také využít při stanovení inverzní matice: Modifikací GEM je Gaussova-Jordanova metoda. Matici tvořenou původní maticí A a jednotkovou maticí I upravujeme pomocí ekvivalentních úprav tak dlouho, až (A I) přejde na tvar (I A 1 ). Pokud chceme určit tvar inverzní matice pomocí LU-rozkladu, využijeme skutečnosti, že když A = LU, pak A 1 = U 1 L 1. K realizaci Gaussovy-Jordanovy metody potřebujeme řádově n3 2 +O(n2 ) operací, což je více než při GEM. Proto se Gaussova-Jordanova metoda využívá při praktických výpočtech jen zřídka. Příklad Prostřednictvím Gaussovy-Jordanovy metody a pomocí LU-rozkladu 1 1 1 stanovte inverzní matici k matici A = 2 1 2. 3 1 1 40

Řešení: Gaussova-Jordanova metoda: 1 1 1 1 0 0 (A I) = 2 1 2 0 1 0 3 1 1 0 0 1 LU-rozklad: A = 1 1 1 2 1 2 3 1 1 A 1 = U 1 L 1 = = 1 0 0 2 1 0 1 2 1 1 0 0 2 1 0 3 2 1 1 0 0 1/2 0 1/2 0 1 0 2 1 0 0 0 1 1/2 1 1/2 1 1 1/2 0 1 0 0 0 1/2 1 1 1 0 1 0 0 0 2 =, 1/2 0 1/2 2 1 0 1/2 0 1/2 = (I A 1 ).. Iterační metody Předností iteračních metod je, že nekladou takové nároky na paměť počítače jako metody přímé a že jejich použití je univerzální. Můžeme pomocí nich nejen získat řešení soustavy lineárních rovnic, ale také je můžeme využít ke zpřesnění řešení, které jsme získali již dříve. Základní myšlenka konstrukce iterační metody je následující: Z každé rovnice soustavy A x = b vyjádříme právě jednu neznámou v závislosti na zbývajících neznámých. Soustava A x = b tak přejde na tvar Odtud získáme iterační formuli x = H x + g. x (k+1) = H x (k) + g. Vlastní iterační proces probíhá tak, že 41

1) zvolíme počáteční iteraci x (0), 2) prostřednictvím iterační formule x (k+1) = H x (k) + g určíme další vektory řešení x (k+1), k = 0, 1, 2,..., 3) proces ukončíme buď po předem stanoveném počtu iterací, nebo když bude splněna zastavovací podmínka x (k+1) x (k) < δ. (Říkáme pak, že řešení x je určeno s přesností δ.) 4) Nakonec odhadneme chybu (k + 1)-ní iterace. Skutečnost, že x (k+1) x < ε, vyjadřuje, že iterace x (k+1) aproximuje přesné řešení x s chybou ε. Pokud se iterační matice H, popř. vektor g, v průběhu výpočtu mění, hovoříme o nestacionárním iteračním procesu, v opačném případě o iteračním procesu stacionárním. V dalším textu se omezíme na studium stacionárních iteračních procesů. a) Jacobiova iterační metoda Při odvozování iterační metody budeme postupovat tak, že z i-té rovnice soustavy a 11 x 1 + a 12 x 2 + + a 1n x n = b 1, a 21 x 1 + a 22 x 2 + + a 2n x n = b 2, (2.5)... a n1 x 1 + a n2 x 2 + + a nn x n = b n 42

vyjádříme i-tou neznámou. Iterační rovnice v (k + 1)-ním kroku, kde k = 0, 1, 2,..., mají tvar Pokud označíme x (k+1) 1 = 1 a 11 (b 1 a 12 x (k) 2 a 13 x (k) 3 a 1n x (k) n ), x (k+1) 2 = 1 (b 2 a 21 x (k) 1 a 23 x (k) 3 a 2n x (k) n ), a 22... x (k+1) n = 1 (b n a n1 x (k) 1 a n2 x (k) 2 a n,n 1 x (k) a n 1). nn H J = 0 a 12 a 11... a 1n a 11 a 22 0... a 2n a 21. a n1 a nn a 22..... a n2 a nn... 0 dostáváme Jacobiovu iterační formuli ve tvaru a g J = b 1 a 11. b n a nn, x (k+1) = H J x (k) + g J. (2.6) Nadále v tomto odstavci budeme používat označení D = diag(a 11, a 22,..., a nn ), 0 0... 0 0 0 a 12... a 1,n 1 a 1n a 21 0... 0 0 M = a 31 a 32... 0 0..............., N = 0 0... a 2,n 1 a 2n............... 0 0... 0 a n 1,n. a n1 a n2... a n,n 1 0 0 0... 0 0 Když matici soustavy A = (a ij ) n i,j=1 vyjádříme ve tvaru A = M + D + N, pak můžeme psát (M + D + N) x = b, D x = (M + N) x + b, x = D 1 (M + N) x + D 1 b. To znamená, že pro matici H J a vektor g J ve vztahu (2.6) platí H J = D 1 (M + N), g J = D 1 b. (2.7) 43

Definice 2.3 Nechť A je čtvercová matice řádu n a A = M + D + N. Jacobiova metoda pro řešení soustavy A x = b je dána iteračními rovnicemi x (k+1) = D 1 (M + N) x (k) + D 1 b, k = 0, 1, 2,.... (2.8) Algoritmus (Jacobiova metoda) Vstup: n, A = (a ij ) n i,j=1, b = (b i ) n i=1, x (0) = (x (0) i ) n i=1, m pro k = 0, 1,..., m pro i = 1, 2,..., n x (k+1) i = 1 a ii (b i i 1 j=1 a ijx (k) j Výstup: x (m) = (x (m) 1, x (m) 2,..., x (m) n ) n j=i+1 a ijx (k) j ) Příklad Jacobiovou metodou řešte soustavu Řešení: Iterační formule 2x 1 + x 2 = 2, x 1 + 4x 2 + x 3 = 0, x 2 + 2x 3 = 2. x (k+1) 1 = 1 (2 x(k) 2 ), 2 x (k+1) 2 = 1 4 ( x(k) 1 x (k) 3 ), x (k+1) 3 = 1 ( 2 x(k) 2 ). 2 Iterační matice H J = 0 1 2 0 1 4 0 1 4 0 1 2 0 g J = (1, 0, 1) T. 44,

Když zvolíme x (0) = (1, 1, 1), pak x (1) = (0, 500, 0, 500, 1, 50), x (2) = (1, 25, 0, 250, 0, 750), x (3) = (0, 875, 0, 125, 1, 13), x (4) = (1, 07, 0, 0638, 0, 940), x (5) = (0, 970, 0, 0325, 1, 03), x (6) = (1, 02, 0, 0150, 0, 985), x (7) = (0, 995, 0, 00875, 1, 01), x (8) = (1, 01, 0, 00375, 0, 995), x (9) = (1, 00, 0, 00375, 1, 00), x (10) = (1, 00, 0, 1, 00), x (11) = (1, 0, 1). Po deseti iteracích jsme dospěli k přesnému řešení x = (1, 0, 1). Příklad Jacobiovou metodou řešte soustavu Řešení: Iterační formule Iterační matice H J = Když zvolíme x (0) = (0, 0), pak x 1 + 3x 2 = 4, 3x 1 + x 2 = 2. x (k+1) 1 = 4 3x (k) 2, x (k+1) 2 = 2 + 3x (k) 1. ( 0 3 3 0 x (1) = (4, 2), x (2) = (10, 10), x (3) = ( 26, 28), x (4) = (80, 80), ), g J = (4, 2) T. x (5) = ( 236, 242). 45

Vidíme, že v tomto případě Jacobiova metoda nekonverguje. K otázce konvergence se vrátíme v průběhu následujícího výkladu (viz strana 48). b) Gaussova-Seidelova metoda Gaussova-Seidelova metoda se od Jacobiovy liší tím, že všechny vypočtené hodnoty okamžitě používáme v dalším iteračním kroku. To znamená, že v (k + 1)-ním kroku (k = 0, 1, 2,... ) obdržíme iterační formule x (k+1) 1 = 1 a 11 (b 1 a 12 x (k) 2 a 13 x (k) 3 a 1n x (k) n ), x (k+1) 2 = 1 (b 2 a 21 x (k+1) 1 a 23 x (k) 3 a 2n x (k) n ), a 22............... x (k+1) n = 1 (b n a n1 x (k+1) 1 a n2 x (k+1) 2 a n,n 1 x (k+1) n 1 ). a nn Použijme nyní stejného značení jako na str. 43. Když uvážíme, že řešíme soustavu (M + D + N) x = b, pak Dostáváme novou iterační metodu (M + D) x = N x + b. x = (M + D) 1 N x + (M + D) 1 b. (2.9) x (k+1) = H GS x (k) + g GS, kde H GS = (M + D) 1 N, g GS = (M + D) 1 b. (2.10) Definice 2.4 (Gauss 1822) Když A je čtvercová matice řádu n a platí A = M + D + N, pak Gaussova-Seidelova metoda řešení soutavy lineárních rovnic A x = b je určena iteračními rovnicemi x (k+1) = (M + D) 1 N x (k) + (M + D) 1 b, k = 0, 1, 2,.... (2.11) 46

Algoritmus (Gaussova-Seidelova metoda) Vstup: n, A = (a ij ) n i,j=1, b = (b i ) n i=1, x (0) = (x (0) i ) n i=1, m pro k = 0, 1,..., m pro i = 1, 2,..., n x (k+1) i = 1 a ii (b i i 1 j=1 a ijx (k+1) j n j=i+1 a ijx (k) j ) Výstup: x (m) = (x (m) 1, x (m) 2,..., x (m) n ) Předností tohoto algoritmu je, že klade menší nároky na paměť počítače než Jacobiova metoda. Příklad Gaussovou-Seidelovou metodou řešte soustavu 2x 1 + x 2 = 2, x 1 + 4x 2 + x 3 = 0, x 2 + 2x 3 = 2. Řešení: Iterační formule x (k+1) 1 = 1 (2 x(k) 2 ), 2 x (k+1) 2 = 1 4 ( x(k+1) 1 x (k) 3 ) = 1 x(k) 2 ( 1 + 4 2 x(k) 3 ), x (k+1) 3 = 1 ( 2 x(k+1) 2 ) = 1 2 2 ( 7 4 1 8 x(k) 2 + 1 4 x(k) 3 ). Iterační matice a vektor pravých stran pak jsou tvaru H GS = 0 1 0 2 0 1 1 8 4 0 1 1 16 8, g GS = (1, 1 4, 7 8 )T. 47

Když zvolíme x (0) = (1, 1, 1), pak x (1) = (0, 500, 0, 375, 0, 815), x (2) = (1, 19, 0, 0938, 0, 955), x (3) = (1, 05, 0, 0238, 0, 990), x (4) = (1, 01, 0, 00500, 1, 00), x (5) = (1, 01, 0, 00250, 1, 00), x (6) = (1, 00, 0, 00, 1, 00), x (7) = (1, 0, 1). V tomto případě jsme k přesnému řešení x = (1, 0, 1) dorazili už po šesti iteracích, tedy rychleji než při použití Jacobiovy iterační metody. Oběma výše uvedenými metodami jsme získali posloupnost iterací { x (k) }. Viděli jsme však také, že tato posloupnost nemusí vždy konvergovat. Jak je to tedy s konvergencí iteračního procesu? Platí následující dvě tvrzení: Věta 2.2 (Nutná a postačující podmínka konvergence) Nechť λ i (H) jsou vlastní čísla matice H. Iterace x (k+1) = H x (k) + g konvergují pro libovolné g a libovolnou počáteční hodnotu x (0), právě když spektrální poloměr iterační matice ρ(h) = max i {λ i (H)} < 1. Důkaz. Iterační matice H je podobná jisté Jordanově matici J. To znamená, že obě matice mají stejná vlastní čísla (viz věta 1.1). Dále existuje regulární matice T tak, že H = T JT 1 a H k = T J k T 1. Když O je nulová matice a podle předpokladů věty 1 > ρ(h) = λ 1 (H) > λ 2 (H) > > λ n (H), pak lim J k = O, a tedy lim H k = O. k k Obráceně, když lim H k = O, je také lim J k = O, a tedy λ i (H) < 1 pro k k všechna i. 48

Věta 2.3 (Postačující podmínka konvergence) Posloupnost iterací x (k+1) = H x (k) + g konverguje pro libovolné x (0) a libovolné g, když norma iterační matice splňuje nerovnost H q < 1. Důkaz. Protože x = H x + g a x (k+1) = H x (k) + g, máme pro chybu řešení x x (k+1) H x x (k) H 2 x x (k 1) H k+1 x x (0). Protože H k+1 H k+1 a H q < 1, je lim k H k+1 = 0. To znamená, že lim k x x (k+1) = 0 a metoda konverguje. Příklad Vhodnou iterační metodou řešte soustavu x 1 + 2x 2 2x 3 = 1, x 1 + x 2 + x 3 = 3, 2x 1 + 2x 2 + x 3 = 5. Řešení: O tom, zda zvolíme Jacobiovu nebo Gaussovu-Seidelovu metodu, se rozhodneme podle toho, která metoda bude konvergovat. K tomu využijeme větu 2.2. Matice soustavy A = 1 2 2 1 1 1 2 2 1. Iterační matice Jacobiovy metody 0 2 2 H J = 1 0 1 2 2 0. Protože H J λi = λ 2 2 1 λ 1 2 2 λ = λ 3 = 0 λ 1,2,3 = 0 < 1, 49