NUMERICKÉ METODY I Vít Vondrák, Lukáš Pospíšil
|
|
- Roman Navrátil
- před 6 lety
- Počet zobrazení:
Transkript
1 NUMERICKÉ METODY I Vít Vondrák, Lukáš Pospíšil Text byl vytvořen v rámci realizace projektu Matematika pro inženýry 21. století (reg. č. CZ.1.07/2.2.00/ ), na kterém se společně podílela Vysoká škola báňská Technická univerzita Ostrava a Západočeská univerzita v Plzni
2 Vít Vondrák, Lukáš Pospíšil Numerické metody 1 c Vít Vondrák, Lukáš Pospíšil, 2011 ISBN
3 Předmluva Vážení čtenáři, dostává se Vám do rukou učební text Numerické metody 1. Základ tohoto textu vznikl již před několika lety pro podporu výuky předmětu Numerické metody na Fakultě elektrotechniky a informatiky Vysoké školy báňské-technické Univerzity Ostrava. Předmět byl zejména určen pro obor Výpočetní matematika. Tento předmět si stejně jako i učební text klade za cíl seznámit studenty se základními numerickými metodami, které se běžně používají v inženýrské praxi. A nejen tam. Se základními numerickými metodami se totiž můžete setkat i ve fyzice, chemii, elektrotechnice, informatice, environmentálních vědách a vůbec všude, kde je zapotřebí řešit základní matematické úlohy, jejichž analytické řešení buď není známo, nebo je jen velmi těžko řešitelné. Celkový obsah učebního textu je možné rozdělit do tří základních oblastí. Úvod učebního textu je věnován problematice chyb v inženýrských výpočtech, jejich zdrojům a analýze. Druhou oblastí je oblast numerických metod pro řešení základních úloh lineární algebry. Zde se seznámíte s metodami řešení soustav lineárních rovnic, nebo s problémem hledání vlastních čísel. Do této oblasti byla taktéž zařazena problematika řešení nelineárních rovnic a jejich soustav, byť by mohla být zařazena i do oblasti matematické analýzy. Třetí oblastí je oblast numerických metod používaných pro řešení úloh vyskytujících se v matematické analýze. Mezi tyto úlohy se řadí interpolace a aproximace funkcí, numerická derivace a integrování či řešení počátečních úloh pro obyčejné diferenciální rovnice. Pro pochopení učebního textu je proto potřeba základních znalostí z výše uvedené problematiky. Na Fakultě elektrotechniky a informatiky jsou tyto prerekvizity zajištěny následujícími předměty: Lineární algebra, Matematická analýza 1 a 2. Důležitá je taktéž znalost základů algoritmizace a programování, neboť popis jednotlivých numerických metod je orientován na jejich praktické použití na počítači. iii
4 Odvození a popis metod je však doplněn i konvergenční teorií a odhady chyb. Tyto poznatky jsou totiž nezbytné pro správnou volbu numerické metody při řešení konkrétních úloh. V Ostravě Vít Vondrák a Lukáš Pospíšil iv
5 Obsah Předmluva iii 1 Úvod do numerických metod Matematické řešení inženýrských problémů Korektnost úloh a stabilita výpočetních postupů Typy chyb Aproximace čísla Šíření chyb při aritmetických operacích Obecný vzorec chyb Obrácená úloha Aproximace čísel na počítači Numerické řešení nelineárních rovnic Separace kořenů Metoda půlení intervalu Konvergence Metoda prostých iterací Newtonova metoda První modifikace Newtonovy metody Druhá modifikace Newtonovy metody Newtonova metoda pro soustavy Iterační řešení soustav lineárních rovnic Normy vektorů a matic Lineární metody Jacobiova metoda Gaussova-Seidelova metoda Successive over-relaxation method (SOR) Gradientní metody Metoda největšího spádu Metoda sdružených gradientů Předpodmínění v
6 4 Výpočet vlastních čísel a vektorů matic Výpočet charakteristického polynomu Geršgorinova věta Krylovova metoda Výpočet charakteristického polynomu třídiagonální matice Výpočet dominantního vlastního čísla Mocninná metoda Posun a redukce spektra Metody založené na podobnosti matic Algoritmus QR Givensova metoda Householderova metoda Lanczosova metoda Interpolace Interpolace polynomem Lagrangeův interpolační polynom Newtonův interpolační polynom Ekvidistantní uzly interpolace Trigonometrická interpolace Interpolace lineárními spline funkcemi Interpolace kubickými spline funkcemi Konstrukce spline funkce Aproximace Metoda nejmenších čtverců Ortogonální systémy funkcí Numerická derivace a integrace Numerická derivace Newtonovy-Cotesovy vzorce Gaussovy kvadraturní vzorce Výpočet integrálů pomocí extrapolace Výpočet nevlastních integrálů Řešení počátečních úloh pro obyčejné diferenciální rovnice Jednokrokové metody Eulerova metoda Metody Runge-Kutta Vícekrokové metody Metody založené na numerické integraci Soustavy diferenciálních rovnic a diferenciální rovnice vyšších řádů Soustavy obyčejných diferenciálních rovnic Diferenciální rovnice vyšších řádů vi
7 Literatura 179 Rejstřík 181 vii
8 1 Kapitola 1 Úvod do numerických metod Průvodce studiem Z S V V této kapitole si představíme základní principy při řešení inženýrských úloh. Důraz bude kladen na jejich numerické řešení, které připouští jistou míru nepřesnosti. Následovat proto bude obecná teorie chyb. Budou zavedeny základní pojmy jako jsou stabilita, podmíněnost matematických a numerických úloh, diskutovány budou typy a zdroje chyb. Speciální pozornost bude věnována šíření chyb v numerických výpočtech. Na závěr bude představena reprezentace reálných čísel na počítačích. J 1.1 Matematické řešení inženýrských problémů Původně experimentální řešení je s masivním nástupem počítačů nahrazováno numerickými simulacemi. Na Obrázku 1.1 je zobrazeno standardní schéma řešení inženýrských úloh. Reálný problém Experimenty, měření Experimentální řešení úlohy Analýza modelu Matematický model Analytická (exaktní) metoda Analytické (přesné) řešení úlohy Analýza modelu Přibližná metoda Analýza metody Numerický model Numerická metoda Numerické řešení úlohy Obr. 1.1: Postup při řešení inženýrské úlohy.
9 2 Úvod do numerických metod Na následujícím vzorovém příkladě budeme demonstrovat postup řešení modelové inženýrské úlohy. Za tento modelový příklad jsme vybrali úlohu kmitání tělesa na pružině. Příklad 1.1. Úloha kmitání tělesa na pružině Reálný problém Hmotné těleso je zavěšeno na pružině. Uvolnění tělesa v nerovnovážném stavu způsobí jeho kmitání ve svislém směru. Cílem je zjistit polohu tělesa v libovolně určeném časovém okamžiku. Pro zjišťování této polohy si zvolíme souřadný systém ve svislém směru jak je zobrazeno na obrázku. Počátek souřadného systému x = 0 reprezentuje rovnovážný stav. x 0 Experimentální řešení problému Sestrojení fyzikálního modelu a provedení experimentu. Měření je možné provádět například pomocí kamerového systému a pravítka. Matematický model Pomocí matematického aparátu je možné při zanedbání veličin, které nemají podstatný vliv na kmítání tělesa (odpor vzduchu, hmotnost pružiny atd) popsat úlohu pomocí lineární diferenciální rovnice druhého řádu s neznámou x popisující polohu tělesa v čase t. V této rovnici veličina m popisuje hmotnost tělesa na pružině, b reprezentuje buzení a k představuje tuhost pružiny. Pro jednoznačnost řešení úlohy musíme zvolit počáteční polohu x 0 a počáteční rychlost x 1. mx (t) = bx (t) kx(t) x(t 0 ) = x 0, x (t 0 ) = x 1 m = 1kg, b = 1N, k = 2N.m 1, t 0 = 0s, x 0 = 5m, x 1 = 0m.s 1. Analytické (přesné) řešení úlohy Čtenáři, kteří jsou již seznámeni s řešením lineárních diferenciálních úloh, snadno odvodí, že funkce
10 1.1 Matematické řešení inženýrských problémů 3 x(t) = 5e t 5te t je řešením výše uvedeného matematického modelu. Ti, kteří se s problematikou řešení diferenciálních rovnic ještě neseznámili, mohou tak učinit ve skriptech Obyčejné diferenciální rovnice [3], případně stačí když do diferenciální rovnice funkci x(t) dosadí a ověří tak její správnost. Přibližná metoda a numerický model Pro sestavení numerického modelu, který budeme chtít řešit na kalkulačce, počítači či logaritmickém pravítku budeme muset nejdříve vyřešit problém spojité závislosti polohy na čase. Ani jedno ze zmíněných zařízení nám totiž neumožní počítat s nekonečně mnoha údaji, které popisují polohy tělesa v libovolném časovém intervalu. Z tohoto důvodu se proto omezíme jen na několik vybraných časových okamžiků v nichž budeme hledat řešení dané úlohy. Této technice se říká metoda časové diskretizace. Pro naši modelovou úlohu si tedy zvolme 6 časových okamžiků t 0 = 0s, t 1 = 0.2s, t 2 = 0.4s, t 3 = 0.6s, t 4 = 0.8s, t 5 = 1s. Numerická metoda Snad nejznámnější a nejjednodušší numerická metoda pro řešení diferenciálních rovnic se nazývá Eulerova metoda. S odvozením této metody se blíže seznámíte v kapitole Pokud si přibližné řešení x(t n ) v čase t n označíme x n, pak řešení v následujícím časovém okamžiku t n+1 obdržíme ze vzorce x n+1 = x n + h.f(t n, x n ), kde f : R 2 R je funkce popisující diferenciální rovnici a h je diskretizační krok. Analýza metody V následující tabulce můžeme srovnat přesnost numerického řešení s řešením analytickým. Čas t[s] Numerické řešení x[m] Analytické řešení x[m]
11 4 Úvod do numerických metod 1.2 Korektnost úloh a stabilita výpočetních postupů Při studiu numerického řešení matematických modelů se budeme zabývat pouze takovými úlohami, které jsou jednoznačně řešitelné a jejichž řešení spojitě závisí na vstupních datech. Takové úlohy budeme nazývat korektní a jejich přesnou definici bychom mohli formulovat následovně: Definice 1.2. Buď dána množina vstupních dat B 1 a množina výstupních dat B 2. Úloha y = U(x), x B 1, y B 2 se nazývá korektní na dvojici (B 1, B 2 ) jestliže 1. ke každému x B 1 existuje jediné řešení y B 2 2. řešení spojitě závisí na vstupních datech, tzn. x n x, U(x n ) = y n U(x n ) U(x) = y Při řešení praktických úloh se bohužel velmi často stává, že i korektní úloha vykazuje při zanedbatelné změně vstupních dat obrovské chyby ve výsledcích. Takové úlohy nazýváme špatně podmíněné a jsou velmi problematicky řešitelné pokud jsou jejich vstupní data zatíženy chybami jako jsou chyby měření, měřících zařízení, zaokrouhlovacími chybami apod. Níže uvedená definice nám vymezuje pojmy dobře a špatně podmíněné úlohy. Definice 1.3. Budeme říkat, že korektní úloha je dobře podmíněná jestliže malá změna ve vstupních datech vyvolá malou změnu řešení. Je-li x + x resp. x změna řešení resp. řešení a y + y resp. y změna vstupních dat resp. vstupní data, pak číslo C p = x x y y nazýváme číslem podmíněnosti úlohy y = U(x). = relativní chyba na výstupu relativní chyba na vstupu Příklad 1.4. Následující příklad demonstuje případ špatně podmíněné úlohy. Řešení. Uvažujme soustavu lineárních rovnic x x 2 = x x 2 = 1.97 Snadno nalezneme řešení této původní soustavy x = (x 1, x 2 ) = (1, 1).
12 1.2 Korektnost úloh a stabilita výpočetních postupů 5 Dále uvažujme stejnou soustavu s mírně pozměněnou pravou stranou x x 2 = x x 2 = Řešení této pozměněné soustavy je x = ( x 1, x 2 ) = (3, 1.021). Velikost změny řešení soustavy při změně pravé strany spočítáme snadno x = x x = (2, 2.021). = Pod změnou vstupních dat budeme v tomto případě rozumět velikost změny pravé strany (původní pravé strany b a změněné pravé strany b) b = b b = ( , ) (1.99, 1.97). = Pak číslo podmíněnosti úlohy spočítame dle Definice 1.3 dosazením C p = x x b b = = Poznámka 1.5. Za dobře podmíněné úlohy považujeme úlohy s číslem podmíněnosti 1 < C p < 100. Pokud je C p > 100 považujeme úlohy za hůře podmíněné a C p >> považujeme za špatně podmíněné. Katastrofické důsledky na výslednou přesnost numerického řešení může mít i nevhodně zvolená numerická metoda. Šíření numerických chyb při takto nevhodně zvolené metodě může vést ke zcela chybnému výsledku. Následující příklad ukazuje případ takovéto metody. Příklad 1.6. Pro libovolné n N určete hodnotu integrálu 1 J n = 1 x n e x dx. e 0 Řešení. Při použití základních znalostí z matematické analýzy bychom mohli udělat následující odhady J n 1 n + 1, J n 0. Zřejmě můžeme snadno analyticky spočítat hodnotu integrálu pro volbu n = 1 J 0 = 1 e 1.
13 6 Úvod do numerických metod S využitím pravidla per-partes můžeme získat následující předpis pro výpočet integrálu J n = 1 1 e ([xn e x ] 1 0 n x n 1 e x dx) = 1 nj n 1. 0 Pokud použijeme tento rekurzivní předpis pro výpočet, získáme hodnoty uvedené v následující tabulce. V přesné aritmetice: Na 2 platné cifry: J 0 = 1 1. = J e 0 = 0.63 J 1 = 1. = J e 1 = = J 2 = e 2. = J e 2 = = J 6 = 265e 720. = J e 6 = J 10 = 24 9e. = J e 10 = J 20 = 0 J20 = Při výpočtu na 2 platné cifry tedy zaokrouhlovací chyby způsobily, že již J 6 je záporné (rozpor s odhadem J n 0) a J 20 je výrazně mimo rozsah J n 1/(n + 1). Očividně tato numerická metoda není stabilní (viz následující definice). Definice 1.7. Numerická metoda je numericky stabilní, jestliže malé odchylky v průběhu výpočtu (zaokrouhlení) nevedou k velkým změnám v řešení. Příklad 1.8. Uvažujme stejnou úlohu jako v předchozím příkladě 1.6. Pokusme se nalézt předpis stabilnější metody. Řešení. Upravme předpis pro rekurzivní výpočet integrálu Pro užití této formule odhadneme J n = 1 nj n 1 nj n 1 = 1 J n J n 1 = 1 (1 J n n). J 20. =
14 1.3 Typy chyb 7 Pak užitím nové formule při výpočtu na dvě platné cifry získáme tyto odhady. J 20 = 0, J 10 = 0.084, J 6 = 0.13, J 2 = 0.26, J 1 = 0.37, J 0 = Poznámka 1.9. Numerická stabilita se posuzuje podobně jako podmíněnost úlohy pomocí čisla podmíněnosti algoritmu (stejná definice jako číslo podmíněnosti úlohy - viz Definice 1.3). Určuje se pomocí tzv. experimentálních perturbací, tzn. že mírně pozměňujeme vstupní data a sledujeme výsledky na výstupu. Zatímco špatná podmíněnost úlohy je dána úlohou samou a v podstatě ji nemůžeme ovlivnit, stabilitu výpočetního postupu ovlivňujeme sami volbou metody. 1.3 Typy chyb Při řešení reálných úloh se setkáváme s celou řadou možných chyb, které ovlivňují přesnost výsledného řešení. Podle zdroje chyb bychom mohli chyby rozdělit do několika následujících skupin: a) Chyba matematického modelu Zjednodušováním původní úlohy jakož i zanedbáváním veličin, které nemají velký vliv na matematický model vznikají nepřesnosti v řešení matematického modelu. Tuto chybu lze kvantifikovat rozdílem mezi řešením reálného problému a řešením matematického modelu. Tato chyba vypovídá o přesnosti matematického modelu. Př. Zanedbání odporu vzduch v Příkladě 1.1 vede k nepřesnosti v řešení matematického modelu. b) Chyba numerické metody Použití nepřesné metody pro řešení matematického modelu vede k chybě numerického řešení. Př. Limitu posloupnosti aproximujeme členem s dostatečně velkým indexem, lim n a n a c) Chyba aproximace Aplikací přibližné metody na matematický model vzniká chyba aproximace. Pak rozdíl mezi řešením matematické úlohy a řešením numerické úlohy je chyba aproximace. Př. Nahrazení spojitých vstupních dat diskrétními, viz. diskretizace času v Příkladě 1.1. d) Chyby ve vstupních datech Vznikají chybami měření a reprezentací čísel v počítači.
15 8 Úvod do numerických metod e) Chyby zaokrouhlovací Nepřesnosti způsobené realizací algoritmu v počítači a nepřesné provádění aritmetických operací Aproximace čísla Při realizaci výpočtu nahrazujeme reálnou (přesnou) hodnotu x jeho aproximací (přiblížením) x. Značíme x x. Definice Rozdíl x = x x nazýváme absolutní chybou aproximace x. Hodnotu ε 0 takovou, že x x = x ε( x) nazýváme odhad absolutní chyby. Definice Číslo x x Číslo δ(x) 0 takové, že x x x = x x, x 0 nazýváme relativní chybou aproximace x. x ε( x) = δ( x) nazýváme odhad relativní chyby. x Poznámka Jelikož hodnota x není obvykle známa, pro odhad relativní chyby používáme vzorec x x. Poznámka Z definice plyne, že x = x.(1 ± δ), kde δ = x x. Příklad Určete odhady absolutní a relativní chyby čísla x = 3.141, které nahrazuje číslo π. Řešení. Platí (odhadněme) Pak pro absolutní chybu lze psát < π < < π < x = π x = π < Tedy odhadem absolutní chyby je ε( x) = Pro odhad relativní chyby dosaďme do vzorce z Definice 1.11 δ( x) = ε( x) x = = , tedy lze psát π = (1 ± ).
16 1.3 Typy chyb Šíření chyb při aritmetických operacích Aplikací výpočetního postupu na řešení numerických úloh provádíme celou řadu různých početních operací. Pokud do těchto operací vstupují veličiny, které jsou zatíženy nějakou aproximační chybou, zřejmě dochází k další propagaci těchto chyb do dílčích výsledků. Abychom lépe pochopily jak se tyto chyby v rámci složitějších výpočtů šíří či eliminují, je nutné si ukázat jaký vliv na jejich šíření mají základní aritmetické operace. V dalším textu uvažujme přesnou hodnotu x i a její aprioximaci x i. Dále ε i je odhad její absolutní chyby a δ i odhad relativní chyby. Označme pomocí u přesný výsledek aritmetické operace zatímco u výsledek operace s nepřesnými operandy. Dále označme ε odhad absolutní chyby u a δ odhad relativní chyby u. Pak dle předchozího výkladu platí x i = x i + x i, u = u + u, x i ε i, u ε, (1.1) x i x i δ i, u u δ. Tedy následující výklad si klade za cíl nalézt ε a δ pro jednotlivé elementární algebraické operace. a) Chyba násobku veličiny Uvažujme operaci násobení skalárem k R, pak pro výsledek násobení přesné vstupní hodnoty, resp. její aproximace, platí Dle (1.1) lze psát u = k.x 1, resp. u = k. x 1. u = k.x 1 = k( x 1 + x 1 ) = k. x 1 + k. x 1 u = u u = (k. x 1 + k. x 1 ) (k. x 1 ) = k. x 1 Pak pro odhad absolutní a relativní chyby lze psát u k. x 1 k.ε 1 = ε, u 1 u u. x 1 = x 1 x 1 δ 1 = δ. b) Chyba algebraického součtu Uvažujme operaci součtu dvou čísel x 1 a x 2, které jsou zatížené chybou. Pak pro výsledek součtu přesných vstupních hodnot, resp. součtu aproximací, platí Dle (1.1) lze psát a upravit u = x 1 + x 2, resp. u = x 1 + x 2. u = x 1 + x 2 = ( x 1 + x 1 ) + ( x 2 + x 2 ) = u + x 1 + x 2 u = x 1 + x 2 u u x 1+ x 2 x 1 +x 2 x 1 x 1 + x 2. x 1 x 1 + x 2 x 1 + x 2. x 2 x 2
17 10 Úvod do numerických metod A pro odhad absolutní a relativní chyby lze psát u x 1 + x 2 ε 1 + ε 2 = ε u u x 1 + x 2 1 δ 1 + x 2 δ 2 ) = δ c) Chyba rozdílu Uvažujme operaci rozdílu dvou čísel x 1 a x 2, které jsou zatížené chybou. Pak pro výsledek rozdílu přesných vstupních hodnot, resp. rozdílu aproximací, platí Dle (1.1) lze psát a upravit u = x 1 x 2, resp. u = x 1 x 2. u = x 1 x 2 = ( x 1 + x 1 ) ( x 2 + x 2 ) = u + x 1 x 2 u = x 1 x 2 u x 1 u x 1 x 2. x 1 x 1 x 2 x 1 x 2. x 2 x 2 A pro odhad absolutní a relativní chyby lze psát u x 1 + x 2 ε 1 + ε 2 = ε u u x 1 x 2 1 δ 1 + x 2 δ 2 ) = δ d) Chyba součinu Uvažujme operaci součinu dvou čísel x 1 a x 2, které jsou zatížené chybou. Pak pro výsledek součinu přesných vstupních hodnot, resp. součinu aproximací, platí u = x 1.x 2, resp. u = x 1. x 2. Dle (1.1) lze psát a upravit u = x 1.x 2 = ( x 1 + x 1 )( x 2 + x 2 ) u = x 1 x 2 + x 1 x 2 + x 2 x 1 + x 1 x 2 = u + u u x 1 x 2 + x 2 x 1 ( x 1 x 2 zanedbáváme neboť je blízké 0) u u x 1 x 2 + x 2 x 1 x 1 x 2 x 1 x 2 + x 2 x 1 x 1 x 2 = x 1 x 1 + x 2 x 2 A pro odhad absolutní a relativní chyby lze psát u x 1 ε 2 + x 2 ε 1 = ε u 1 u x 1 + x 2 x 2 δ 1 + δ 2 = δ e) Chyba podílu Uvažujme operaci podílu dvou čísel x 1 a x 2, které jsou zatížené chybou. Pak pro výsledek podílu přesných vstupních hodnot, resp. podílu aproximací, platí u = x 1 x 2, resp. u = x 1 x 2.
18 1.3 Typy chyb 11 Dle (1.1) lze psát a upravit u = x 1 x 2 = x 1+ x 1 x 2 + x 2 ( x 1+ x 1 )( x 2 x 2 ) ( x 2 + x 2 )( x 2 x 2 ) u x 1 x 2 + x 2 x 1 x 1 x 2 x 1 x 2 x 2 2 ( x 2) 2 x 1 x 2 + x 2 x 1 x 1 x 2 x 2 2 u x 2 x 1 x 1 x 2 x 2 2 u = x 2 x 1 x 1 x 2. x u x x 1 x 2 x 1 x 1 x 2 x 2 2 A pro odhad absolutní a relativní chyby lze psát u x 2 ε 1 x 1 ε 2 = ε x 2 2 u x 1 u x 1 + x 2 x 2 δ 1 + δ 2 = δ. x 2 x 1 = x 1 x 1 x 2 x 2 f) Chyba mocniny Uvažujme operaci n-tá mocnina čísla x 1, které je zatížené chybou. Pak pro výsledek mocniny přesné vstupní hodnoty, resp. mocniny aproximace, platí Dle (1.1) lze psát a upravit u = ( x 1 + x 1 ) n = x n 1 + n u = n. x n 1 1 x 1 u = n xn 1 1 x 1 u x n 1 u = x n 1, resp. u = x n 1. nxn 1 1 x 1 x n 1 k=1 ( n k = n x 1 x 1 A pro odhad absolutní a relativní chyby lze psát ) u n x 1 n 1 ε 1 = ε u u 1 = δ x n k 1 ( x 1 ) k (binomická věta) g) Chyba funkční hodnoty Uvažujme funkci f : R R do které vstupuje jako argument číslo x 1, které je zatížené chybou. Pak pro funkční hodnotu v přesné hodnotě, resp. v aproximaci, platí u = f(x 1 ), resp. u = f( x 1 ). Dle (1.1) lze psát a upravit (viz Obrázek 1.3.2) u = u u = f(x 1 ) f( x 1 ) = f( x 1 + x 1 ) f( x 1 ) xi R : f(x 1 ) = f( x 1 ) + f (ξ) x 1 u = f (ξ) x 1 A pro odhad absolutní a relativní chyby lze psát kde M = sup f (z). z x 1,x 1 u f (ξ). x Mξ = ε u M.ε 1 x 1 Mδ 1 u u f ( x 1 = δ )
19 12 Úvod do numerických metod Obr. 1.2: Chyba funkční hodnoty. Poznámka Z výše uvedených odhadů je patrné, že nekritičtější operací z hlediska šíření chyb je rozdíl dvou téměř shodných veličin, kdy odhad relativní chyby díky dělení tilde u výrazně narůstá a dělení číslem blízkým nule, které má za následek enormní nárust odhadu absolutní chyby. Ve složitých výpočetních postupech je proto nutné se těchto operací vyvarovat!!! Obecný vzorec chyb Zobecněním chyby funkční hodnoty (viz případ g) v předešlé kapitole) na funkce více proměnných můžeme získat obecný odhad chyby. Jednotlivé aritmetické operace totiž můžeme reprezentovat jako funkce dvou proměnných (např. pro součet f(x 1, x 2 ) = = x 1 + x 2 ) Navíc do funkce f můžeme zahrnout celou řadu operací s více veličinami x 1,... x n. Pro odhad absolutní chyby pak můžeme využít obdobně jako v případě funkce jedné proměnné diferenciálu funkce f(x 1, x 2,... x n ) du = df(x 1, x 2,... x n ) = n i=1 f x i dx i n i=1 f x i dx i. Nahradíme-li diferenciál přírůstkem funkce, dostaneme pro odhad absolutní chyby u du n i=1 f x i. dx i Pro získání odhadu relativní chyby lze psát u u n i=1 n i=1 f x i u. x i = n i=1 f x i n i=1 u. x i = n i=1 ln u x i x i n ln u x i x i δ i = δ. i=1 f x i ε i = ε. x i inf(x 1,..., x n ). x i
20 1.3 Typy chyb 13 Příklad Určete odhad absolutní a relativní chyby objemu koule V = 1 6 πd3 je-li d = 3.7cm ± 0.05cm, π = Řešení. Pro určení odhadu absolutní chyby použijeme výše odvozený obecný vzorec ε = n i=1 f x i ε i. Očividně funkce objemu V je závislá na přesnosti proměnných π a d. Nejdříve napočítejme potřebné parciální derivace a dosazením V (π,d) π = 1 6 d3, d = 1 2 πd2, V (π,d) V (3.14,3.7) π = = 8.44, V (3.14,3.7) d = = ε = V π + V π d d = =. 1.1 Tedy V = 1 6 πd3 27.4cm 3 ± 1.1cm 3. Pro určení odhadu relativní chyby použijeme snažší vyjádření δ = V V = Obrácená úloha Mnohdy je nutné odhadnout chybu nezávislé proměnné tak, aby přitom byla zaručena přesnost výsledné veličiny. Platí n u f ε i. x i i=1 Jsou-li chyby n nezávislých proměnných x i řádově stejné, pak můžeme jejich příspěvek do celkové chyby rozdělit stejným dílem tj. pak f x i ε i. = u n ε i pro i = 1, 2,..., n,. = u n f x i. (1.2)
21 14 Úvod do numerických metod Příklad Nechť je dán válec o poloměru r 2m a výšce h 3m. Jaké musí být absolutní chyby r a h aby objem válce byl určen s přesností na 0.1m 3? Řešení. Objem válce lze spočítat pomocí vzorce přičemž ze zadání víme, že V = πr 2 h, r = 2m, h = 3m, π = 3.14, V = 0.1m 3. Potřebné odhady budeme počítat užitím vzorce (1.2), je proto nutno nejdříve napočítat potřebné parciální derivace V (r,h,π) r = 2πrh, h = πr 2, π = r 2 h, V (r,h,π) V (r,h,π) V (2,3,3.14) = =. 37.7, r = h = 12.6, = = 12. π V (2,3,3.14) V (2,3,3.14) Při dosazování do vzorce je nutno si uvědomit, že přesnost výsledného objemu je závislá na třech vstupních parametrech, tedy do vzorců budeme dosazovat n = 3. r ε r = V n V r. = < h ε h = V n V h. = 0.1 π ε π = V n V π. = < < Proto pro dosažení požadované přesnosti výpočtu objemu válce je nutno, aby r < < 0.001m a h < 0.003m. 1.4 Aproximace čísel na počítači Zásadím problémem použití počítačů pro výpočty s požadavkem na vysokou přesnost je nemožnost reprezentace realných, přesněji iracionálních čísel v počítači. Je zřejmé, že irracionální čísla, která mají nekonečný počet desetinných míst nelze nikterak uložit v paměti počítače. Abychom tato čísla byli schopni v počítači reprezentovat, musíme je aproximovat čísly s konečným počtem desetiných míst. Pro tyto účely se nejvíce hodí tzv. semilogaritmický tvar s normalizovanou mantisou.
22 1.4 Aproximace čísel na počítači 15 Definice Pod pojmem semilogaritmický tvar s normalizovanou mantisou rozumíme zápis libovolného racionálního čísla a ve tvaru a = sgn a.(a 1 q 1 + a 2 q a t q t )q b, kde q N {1} je základ číselné soustavy, a i {0, 1, 2..., q 1} jsou číslice mantisy a b Z je exponent, který je omezen maximální a minimální hodnotou m 1, m 2 Z, tj. m 1 b m 2. Příklad Dříve než budeme pokračovat ve výkladu, zopakujme si na konkrétním příkladě alespoň převody mezi dekadickou (q = 10) a binární (q = 2) soustavou. Převeďte čísla [10011] 2, [10.011] 2 do dekadické soustavy 1. Převeďte čísla [1234] 10, [12.34] 10 do binární soustavy. Řešení. Dle standartní teorie číselných soustav známé ze střední školy lze psát [10011] 2 = [ ] 10 = [ ] 10 = [19] 10 [10.011] 2 = [ ] 10 = [ ] 10 = [2.375] 10 Převod z dekadické do binární soustavy lze provést obdobně - hledáním vhodných koeficientů v součtu jednotlivých mocnin základu q = 2 (tj. cifer v binárním zápisu). Nicméně opět ze střední školy je znám rychlejší postup. Uvedeme jej bez zbytečného komentáře : 2 = 617, zbytek : 2 = 38, zbytek 1 38 : 2 = 19, zbytek 0 19 : 2 = 8, zbytek 1 8 : 2 = 4, zbytek 0 4 : 2 = 2, zbytek 0 2 : 2 = 1, zbytek 0 1 : 2 = 0, zbytek 1 [1234] 10 = [ ] 2 1 Zápis [x] q znamená, že číslo x je uvedeno v číselné soustavě se základem q.
23 [12.34] 10 = [ ] 2 16 Úvod do numerických metod Neméně zajímavá je i modifikace postupu pro převod desetinných čísel. 12 : 2 = 6, zbytek = 0.68, celá část 0 6 : 2 = 3, zbytek = 1.36, celá část 1 3 : 2 = 1, zbytek = 0.72, celá část 0 1 : 2 = 0, zbytek = 1.44, celá část = 0.88, celá část = 1.76, celá část = 1.52, celá část = 1.04, celá část 1... Pro zájemce: Pozornému čtenáři jistě neuniklo několik zajímavých vlastností vyskytujících se v předchozím příkladě: = = = Tato pozorování ponecháváme čtenáři k zamyšlení v kontextu s Definicí Definice Množinu všech čísel zapsaných pomocí semilogaritmického tvaru s normalizovanou mantisou (viz Definice 1.18) nazýváme systémem s pohyblivou řádovou čárkou a a značíme F (q, t, m 1, m 2 ). a angl. floating point system Poznámka V případě tzv. dvojnásobné aritmetiky nahrazujeme t hodnotou 2t a zvětšujeme m 1 a m 2. V případě reálných čísel je tedy možné každé číslo x R reprezentovat následujícím způsobem x = a.q b = sgn x( x k q k )q b Jeho aproximace v semilogaritmickém tvaru s normalizovanou mantisou pak může mít tvar t x F (q, t, m 1, m 2 ) x = aq b = sgn x( x k q k )q b n=1 n=1
24 1.4 Aproximace čísel na počítači 17 Reprezentaci reálných čísel na počítači tedy definujme pomocí zobrazení Zobrazení provádíme a) řezáním - x k = x k, k = 1, 2,... t b) zaokrouhlováním - x k = x k, pro k = 1, 2,... t 1 x t = { xt + 1 pro x t+1 q 2 x t pro x t+1 < q 2 fl : R F (q, t, m 1, m 2 ) pro zaokrouhlo- Poznámka x fl(x) = κq 1 t, kde κ = 1 pro řezání a κ = 1 x 2 vání. x fl(x) = κq b t Nejmenší možné kladné číslo, které jsme schopni uložit je určeno délkou mantisy. Čísla lišící se o toto číslo se jeví jako totožná. Definice Nejmenší číslo x F (q, t, m 1, m 2 ) takové, že 1 + x > 1, x > 0 nazýváme počítačovým ε (počítačová jednotka).
25 18 Kapitola 2 Numerické řešení nelineárních rovnic Z S J V Průvodce studiem Cílem této kapitoly je představit základní numerické metody pro řešení nelineárních rovnic a jejich soustav. Hledání kořenů obecně nelineárních rovnic je snad nejběžnější matematickou úlohou, se kterou se můžeme setkat nejen v inženýrské praxi, ale i v každodenním životě, například při řešení jednoduchých geometrických úloh. Analytické řešení těchto rovnic je však velmi často netriviální a nezbývá než nasadit na jejich řešení numerické metody. V této kapitole se nejprve čtenář seznámí s metodami separace kořenů těchto rovnic. Následně budou odvozeny a analyzovány základní numerické metody, které je na řešení nelineárnich rovnic a jejich soustav možné použít. 2.1 Separace kořenů Prvním krokem, který předchází numerickému řešení nelineárních rovnic je lokalizace jejich kořenů. Pro obecné nelineární rovnice může být tento úkol velmi problematicky řešitelný a nelze jej řešit jinak než zobrazením grafu funkce. V případě soustav mnoha nelineárních rovnic je však i tento postup prakticky neřešitelný. Naopak pro některé specifické typy rovnic jako jsou algebraické rovnice, existuje již poměrně rozsáhlý aparát. Procesu určování počtu kořenů a jejich lokalizace říkáme separace kořenů a základní principy si ukážeme v následujícím textu. Nejprve si definujme co budeme rozumět pod pojmem rovnice a jí kořen. Definice 2.1. Nechť funkce f : R R je definována na intervalu a, b R. Číslo x a, b, pro které f( x) = 0, nazýváme kořenem rovnice f(x) = 0. Pro určení intervalu, ve kterém zcela jistě nalezneme kořen rovnice, můžeme použít následujícího triviálního tvrzení.
26 2.1 Separace kořenů 19 Lemma 2.2. Nechť f je spojitá na a, b R. Pak je-li f(a).f(b) < 0 má rovnice f(x) = 0 alespoň jeden kořen v intervalu a, b. Důkaz. Viz Obrázek 2.1. Obr. 2.1: Příklad funkce spojité na a, b s vlastností f(a).f(b) < 0. Uvedené Lemma nám sice zaručuje existenci kořenu v daném intervalu, avšak nezaručuje, že kořen v daném intervalu bude právě jeden. Pro nasazení numerických metod je však mnohdy velmi důležité aby kořen byl v daném intervalu pouze jeden. Navíc se jedná pouze o podmínku postačující neboť v případě, že v daném intervalu budou kořeny dva nebo obecněji sudý počet, nebude podmínka splněna. Pro obecné funkce existuje několik základních způsobů separace kořenů: 1. Grafická separace a) polohu a počet kořenů určíme z grafu funkce f(x). Například z grafu funkce f(x) = (x 1) 2 1 (viz Obrázek 2.2) lze určit Obr. 2.2: Průběh funkce f(x). přibližnou polohu koeficientů x 1 ( 1 2, 1 2 ), x 2 (1, 5).
27 20 Numerické řešení nelineárních rovnic b) polohu a počet kořenů určíme vhodným rozložením funkce f(x) na více funkcí a z grafů těchto funkcí. (f(x) = f 1 (x) f 2 (x) = 0, f 1 (x) = f 2 (x)) Například funkci f(x) = e x 2x 1 lze rozložit na rozdíl f(x) = e x (2x+ + 1) ozn = f 1 (x) f 2 (x) a pak graficky hledat řešení rovnice f 1 (x) = f 2 (x) (viz Obrázek 2.3). Z obrázku pak lze odhadnout polohu kořenů x 1 ( 1, 1), x (1, 2). Obr. 2.3: Průběh funkcí f 1 (x) a f 2 (x). 2. Tabelací funkce Například pro funkci f(x) def = e x 2x 1 lze spočítat funkční hodnotu v několika bodech a ze změny znaménka následně odhadnout polohu kořenů. x i f(x i ) sgn f(x i ) Ve zvoleném příkladu jsme měli štěstí a podařilo se nám přímo nalézt jeden kořen x 1 = 0. Očividně pro druhý kořen platí x 2 (1, 1.5). Poznámka 2.3. Pro polynomické rovnice (p(x) = 0, p P n ) existují speciální metody pro separaci kořenů (viz např. [7]).
28 2.2 Metoda půlení intervalu 21 Podobně jako pro funkce jedné reálné proměnné definujeme nelineární rovnici a její kořen, tak pro vektorové funkce více proměnných můžeme definovat soustavu rovnic a vektor kořenů soustavy. Definice 2.4. Nechť funkce F : R n R n je definována na souvislé oblasti (ohraničená, otevřená podmnožina R n ) Ω R n. Vektor x Ω, pro který F ( x) = o nazýváme vektorem kořenů soustavy nelineárních rovnic F ( x) = o. Poznámka 2.5. Soustavu F (x) = o obvykle zapisujeme ve tvaru: f 1 (x 1, x 2,..., x n ) = 0 f 2 (x 1, x 2,..., x n ) = 0. f n (x 1, x 2,..., x n ) = 0 Pro srovnání kvality jednotlivých numerických metod co do rychlosti konvergence, zavádíme pojem řád iterační metody. Definice 2.6. Nechť {x n } je posloupnost aproximací čísla x, x n x pro n. Říkáme, že iterační metoda je řádu p, jestliže C = konst > 0, takové, že x x n+1 C x x n p, pro n = 0, 1, 2,.... Prakticky tedy znamená, že metoda řádu p má chybu nové aproximace až na konstantu menší než p-tou mocninu chyby předchozí aproximace. Čím větší řád metody, tím rychleji tedy metoda konverguje. 2.2 Metoda půlení intervalu Snad nejznámnější a nejjednodušší numerickou metodou je metoda půlení intervalu. Tato metoda je založena na Větě 2.2. Nechť a 0 = a, b 0 = b jsou takové, že f(a 0 ).f(b 0 ) < 0 a nechť f je spojitá na a, b. Z Věty 2.2 vyplývá, že v intervalu a, b leží alespoň jeden kořen. Předpokládejme dále, že zde leží právě jeden kořen. Metoda půlení intervalu je založena na konstrukci posloupnosti do sebe vnořených podintervalů {a n }, {b n } takových, že a 0, b 0 a 1, b 1... a n, b n a n+1, b n+1... f(a k ).f(b k ) 0, k = 0, 1, 2,.... Je-li a k, b k interval pro něhož je f(a k ).f(b k ) 0, pak a k+1, b k+1 dostaneme následujícím způsobem:
29 22 Numerické řešení nelineárních rovnic 1. vypočteme s k+1 = 1 2 (a k + b k ) (střed intervalu), 2. je-li f(a k ).f(s k+1 ) < 0, pak a k+1 = a k, b k+1 = s k+1, 3. je-li f(s k+1 ).f(b k ) < 0, pak a k+1 = s k+1, b k+1 = b k. Princip metody můžeme snadno demonstrovat na Obrázku 2.4. Z obrázku je taktéž patrné odkud pochází název metody, neboť v každém kroce dochází k rozpůlení intervalu a zmenšení intervalu, ve kterém se nachází kořen, na polovinu. Obr. 2.4: Metoda půlení intervalu. Algoritmus 1 Input: a 0, b 0, přesnost ǫ > 0 METODA PŮLENÍ INTERVALU 1: k := 0 2: while b k a k ǫ do 3: s k+1 := (a k + b k )/2 4: if f(a k ).f(s k+1 ) < 0 then 5: a k+1 := a k 6: b k+1 := s k+1 7: else 8: if f(s k+1 ).f(b k ) < 0then 9: a k+1 := s k+1 10: b k+1 := b k 11: else 12: a k+1 := s k+1 13: b k+1 := s k+1 14: end if 15: end if 16: k := k : end while Output: s k,a k,b k
30 2.2 Metoda půlení intervalu Konvergence Nyní ukažme, že výše uvedená konstrukce podintervalů konverguje k hledanému kořenu. Lemma 2.7. Jsou-li splněny předpoklady věty 2.2, pak je metoda půlení intervalu konvergentní. Řád konvergence je 1. Důkaz. Označme s k+1 := a k+b k střed intervalu a 2 k, b k, d k := b k a k polovina délky intervalu a 2 k, b k. Pak očividně pro hledané řešení x platí x a k, b k x s k+1 d k, s k+1 + d k x s k+1 d k. Při půlení intervalu platí rekurentní vzorec b k a k = b k 1 a k 1 2 a opakovaným dosazováním do tohto vzorce získáme b k a k = b k 1 a k 1 2 Dosazením do předpisu pro d k získáme = b k 2 a k = = b 0 a 0 2 k. d k = b k a k 2 Spojením předchozích pozorování získáme = b 0 a 0 2 k+1 0 x s k+1 d k = b k a k 2 = b 0 a 0 2 k+1 Jelikož pravá strana konverguje k nule pro k, musí jednoznačně platit z čehož plyne x s k+1 0, s k+1 x. Metoda půlení intervalu je tedy konvergentní. Navíc d k+1 = 1 2 d k, řád metody je tedy 1, s konstantou C = 1 2 > 0. Příklad 2.8. Nalezněte kořeny polynomu f(x) def = x 3 x 2 2x + 2 s přesností ε = 10 4.
31 24 Numerické řešení nelineárních rovnic Obr. 2.5: K Příkladu kvalitativní vlastnosti funkce. Řešení. Nejdříve provedeme jednoduchou analýzu dané funkce pro nalezení intervalových odhadů jednotlivých kořenů. Z první a druhé derivace zadané funkce f (x) = 3x 2 2x 2, f (x) = 6x 2 lze sestavit tabulky monotonie a konvexnosti/konkávnosti dané funkce. x ( ) f (x) f, 1 7 > 0 rostoucí 3 ( 1 ) 7, 1+ 7 < 0 klesající 3 3 ( 1+ ) 7, > 0 rostoucí 3 x ( ) f (x) f, 1 ( < 0 konkávní 3 1, ) > 0 konvexní 3 Následně lze dopočítat potřebné funkční hodnoty a načrtnout průbeh funkce f (viz Obrázek 2.5). Budeme pátrat po hodnotách x 1, x 2, x 3. Očividně ( 1 x 2 3, 1 + ) 7. (2.1) 3 Zbývá určit intervalové odhady kořenů x 1, x 2 a to například pomocí tabelace funkce. Volme tabelační parametr h = 0, 2. x f , h 2, h 2, h 1, h 0, h 1, x f , h 0,
32 2.2 Metoda půlení intervalu 25 Z předchozí tabelace jsou zřejmé odhady kořenů x 1 x 3 ( , ) 7 0, ( , ) 7 + 0, (2.2) Pak metodou půlení intervalu získáme v jednotlivých iteracích následující odhady. Pro hledání kořene x 1 získáme následující tabulku. i a s b Pro hledání kořene x 2 získáme následující tabulku. i a s b Pro hledání kořene x 3 získáme následující tabulku.
33 26 Numerické řešení nelineárních rovnic i a s b Hledané kořeny mají hodnoty x 1 = , x 2 = 1, x 3 = s přesností ε = = Metoda prostých iterací Metoda prostých iterací je založena na konstrukci posloupnosti aproximací {x k }, k = 0, 1, 2,... rekurzivním předpisem x k+1 = G(x k ). Pokud má zobrazení G : R R určité níže uvedené vlastnosti, tak je metoda konvergentní a konverguje k hledanému řešení. Definice 2.9. Zobrazení G : R n 0 < ρ < 1 takové, že R n se nazývá kontraktivní, jestliže existuje x, y R n : G(x) G(y) ρ x y Definice Nechť je dáno zobrazení G : R n R n. Bod x R n se nazývá pevný bod zobrazení G jestliže G( x) = x. Otázku existence pevného bodu zobrazení G řeší následující věta:
34 2.3 Metoda prostých iterací 27 Věta (o pevném bodě) Nechť je dána množina Ω R n, Ω, souvislá, ohraničená a uzavřená, je dáno zobrazení G : R R n kontraktivní v Ω, postupné aproximace x k = G(x k 1 ), k = 1, 2,... leží v Ω. Pak 1. {x k } konverguje k x nezávisle na volbě počáteční aproximace x 0 t.j. x k x, k, 2. x = G( x) v Ω ( x je pevným bodem), 3. x x k ρk 1 ρ x 1 x 0. Důkaz. 1. Nejdříve uvažujme libovolný index aproximace k = 0, 1, 2,... a odhadněme pomocí vlastnosti normy x k+n x k = (x k+1 x k ) + (x k+2 x k+1 ) + + (x k+n x k+n 1 ) x k+1 x k + x k+2 x k x k+n x k+n 1. (2.3) Jelikož G je dle předpokladů kontraktivní, lze pro libovolný index s odhadnout x s+1 x s = G(x s ) G(x s 1 ) ρ x s x s 1 ρ 2 x s 1 x s 2... ρ s x 1 x 0. (2.4) Spojením odhadů (2.3) a (2.4) lze získat x k+n x k ρ k x 1 x 0 + ρ k+1 x 1 x ρ k+n 1 x 1 x 0 ρk x 1 ρ 1 x 0. (2.5) Z poslední nerovnosti plyne, že pokud k, pak 1 ρ k 0 a x k+n x k 0. Jinými slovy - posloupnost {x k } je cauchyovská a dle známého tvrzení, že reálná posloupnost je konvergentní právě tehdy, je-li cauchyovská lze usoudit, že posloupnost {x k } je konvergentní (samozřejmě nezávisle na volbě x 0 ). 2. G(x) je spojité (plyne z kontraktivity) v Ω, pak 1 připomeňme, že 0 < ρ < 1 x = lim k x k = lim k G(x k 1 ) = G( lim k x k 1 ) = x
35 28 Numerické řešení nelineárních rovnic Nechť navíc sporem existuje druhý pevný bod ^x = G(^x) a nechť ^x x. Pak x ^x = G( x) G(^x) x ^x = G( x) G(^x) ρ x ^x (1 ρ) x ^x 0 Jelikož 0 < ρ < 1, pak (1 ρ) > 0. Z předchozí nerovnosti pak plyne, že musí platit x ^x 0, což z vlastnosti nezápornosti normy je splňeno pouze, pokud x ^x = 0, tedy x = ^x. Což je spor s předpokladem. G má tedy v Ω pouze jeden pevný bod. 3. viz (2.5). Pro zájemce: Výše uvedená Věta 2.11 je aplikací Banachovy věty o pevném bodě na reálný vektorový prostor. Banachovu větu o pevném bodě pro obecné metrické prostory lze nalézt ve skriptu [4]. Pro důkaz existence pevného bodu zobrazení G je tedy zásadní rozhodnout, zda-li je zobrazení G kontraktivní. To však je velmi netriviální úloha. Z tohoto důvodu vystačíme s postačující podmínkou, která nám taktéž zajistí existenci pevného bodu a všechna tvrzení Věty Lemma (postačující podmínka) Nechť G : R n R n, Ω R n z věty Nechť G je v Ω spojitá a nechť existuje G v Ω a je spojitá. Nechť navíc G (x) M < 1 na Ω kde M R je konstanta. Jestliže postupně aproximace x k = G(x k 1 ) leží v Ω, pak platí tvrzení Věty Důkaz. Nechť x 1, x 2 Ω, y 1 = G(x 1 ), y 2 = G(x 2 ). Pak lze odhadnout y 1 y 2 = G(x 1 ) G(x 2 ) x 1 x 2. G (ξ), ξ Ω. Pak užitím předpokladu věty lze dále odhadnout y 1 y 2 x 1 x 2. G (ξ) M x 1 x 2. Navíc 0 < M < 1, proto zobrazení G je kontraktivní a můžeme použít Větu 2.11.
36 2.3 Metoda prostých iterací 29 Hledání pevného bodu zobrazení x = G(x) je totéž jako hledání kořene rovnice F (x) = x G(x) = 0. Vždy můžeme rovnici F (x) = 0 přepsat na tvar x = G(x), kde zobrazení G splňuje dané předpoklady a pro výpočet kořene rovnice použít postupné aproximace hledání pevného bodu. Otázka existence pevného bodu G, tedy i kořene rovnice F (x) = 0, je pak dána Větou 2.11 a Je zřejmé, že neexistuje pouze jedinný předpis a najít ten, který bude splňovat podmínky konvergence nemusí být zcela triviální. Algoritmus 2 Input: x 0,přesnost ǫ > 0 1: x 1 := G(x 0 ) 2: k := 1 3: while x k x k 1 ǫ do 4: x k+1 := G(x k ) 5: k := k + 1 6: end while METODA PROSTÝCH ITERACÍ Output: x k Poznámka f(x) = 0 x = g(x), f : R R, g : R R Postačující podmínka (viz věta 2.12) pak obsahuje odhad g (x) < M < 1 na a, b R 1 > g (x) > 0 Monotonní konvergence (viz Obrázek 2.6 a)) 1 < g (x) < 0 Oscilační konvergence (viz Obrázek 2.6 c)) g (x) > 1 Nekonverguje (viz Obrázek 2.6 b)) Příklad Vyčíslete hodnotu a, a R + s libovolnou přesností. Řešení. Sestavme nejdříve funkci f popisující rovnici, jejíž řešení hledáme. x = a x 2 = a x 2 a = 0, f(x) = x 2 a f(x) = 0 Hledejme vhodný předpis pro pevný bod ekvivalentní s původní rovnicí. x 2 = a x = a x 2x = x + a x x = x+ a x, g(x) = x+ a x 2 2 x = g(x)
37 30 Numerické řešení nelineárních rovnic a) monotonní b) nekonverguje c) oscilační Obr. 2.6: Příklad konvergence metody prostých iteraci.
38 2.3 Metoda prostých iterací 31 Ověřme splnění podmínek konvergence - předpokladů Věty 2.12 Extrémy g (x): g (x) = g (x) > 0 g (x) < 0 1+ a x 2 Funkce g je tedy pro a > 0 rostoucí. = 1 x 2 a 2 2, x > 0 x 2 pro x > a pro x < a φ(x) := g (x), φ (x) = 1 2a = a 2 x 3 x 3 φ (x) > 0 je li a > 0 φ (x) < 0 je li a < 0 min x α,β {g (x)} = g (α) max x α,β {g (x)} = g (β) g (x) < max{ g (α), g (β) }, x α, β } Například pro konkrétní hodnotu úlohy a = 2 dostáváme Předpis x 1, 2, g (2) = 1 4, g (1) = 1 2, g (x) = 1 x 2 2 < 1 2 x 2 2. ( x k + 2xk ) x k+1 = g(x k ) = 1 2 bude tedy konvergovat pro libovolné x 0 1, 2. Volme proto počáteční aproximaci například x 0 = 2. Při požadované přesnosti ε = 10 5 je řešení nalezeno po pěti iteracích, viz následující tabulka. k x x k x k Poznámka Označme chybu Pak lze upravit e k = x k x, x = g( x). e k+1 = x k+1 x = g(x k ) g( x) = (x k x)g ( x) + (x k x) 2 g ( x) + (x 2! k x) 3 g ( x) ! = e k g ( x) + e 2 g ( x) k + e 3 g ( x) 2! k !
39 32 Numerické řešení nelineárních rovnic Řád konvergence tedy závisí na derivaci g v bodě x. Je-li g (k) ( x) = 0, k = 1, 2,..., p 1, g (p) ( x) 0, tak je metoda prostých iterací řádu p. Poznámka V případě, že x = G(x), G : R n R n, G je diferencovatelná v oblasti Ω R n je g 1 g x 1 (x)... 1 x n (x) G (x) =. g n x 1 (x).... g n x n (x), G(x) = g 1 (x). g n (x) Odhad G (x) < M je pak odhad normy matice. Vypočíst normu takovéto matice nemusí být vůbec snadná úloha! 2.4 Newtonova metoda Původní řešenou rovnici lze upravit na tvar f(x) = 0, f : R R (2.6) x = x + λ(x).f(x), (2.7) kde λ : R R je libovolná nenulová funkce. Z rovnice (2.7) lze odvodit předpis kontraktivního zobrazení pro metodu prostých iterací s pevným bodem řešení původní rovnice (2.6) (tj. G(x) = x) Budeme-li požadovat, aby byla metoda řádu 2, pak G(x) = x + λ(x).f(x). (2.8) G ( x) = 0, G (x) = 1 + λ (x)f(x) + λ(x)f (x), G ( x) = 1 + λ ( x)f( x) + λ( x)f ( x) = 1 + λ( x)f ( x). Odtud λ = 1 f ( x) pro f ( x) 0. Předpokládejme tedy, že f (x) je nenulová, pak můžeme označit G(x) = x f(x) f (x). Metoda, která hledá pevný bod takovéto funkce se pak nazývá Newtonova metoda pro řešení rovnice (2.6) a má předpis x k+1 = x k f(x k), k = 0, 1, 2,... (2.9) f (x k )
40 2.4 Newtonova metoda 33 Algoritmus 3 Input: x 0,přesnost ǫ > 0 1: x 1 := x 0 f(x 0 )/f (x 0 ) 2: k := 1 3: while x k x k 1 ǫ do 4: x k+1 := x k f(x k )/f (x k ) 5: k := k + 1 6: end while NEWTONOVA METODA Output: x k Poznámka Předpis Newtonovy metody lze snadno získat i z aproximace řešení pomocí Taylorova polynomu. Jelikož f( x) f(x k ) + ( x x k )f (x k ) (plyne z Taylorovy věty) a jelikož požadujeme splnění řešení rovnice f( x) = 0, pak Iteračně pak získáme předpis (2.9). f(x k ) + ( x x k )f (x k ) = 0 x = x k f(x) f (x). Newtonově metodě se taktéž říká metoda tečen. Volba tohoto názvu je patrná z geometrické interpretace, kterou naleznete na Obrázku 2.7. Obr. 2.7: Newtonova metoda. Podmínky konvergence Newtonovy metody zaručuje následující věta. Lemma Nechť funkce f : R R vyhovuje následujícím podmínkám na a, b : 1. f(a).f(b) < 0 2. f (x) 0, x a, b 3. f nemá znaménkové změny na a, b
41 34 Numerické řešení nelineárních rovnic 4. f(a)/f (a) < b a f(b)/f (b) < b a Pak pro libovolné x 0 a, b konverguje Newtonova metoda pro řešení rovnice f(x) = = 0 na a, b. Důkaz. Viz literatura, například [8] První modifikace Newtonovy metody V každém kroce Newtonovy metody musíme kromě funkční hodnoty f(x k ) vyhodnocovat i funkční honotu její první derivace f (x). To však může být výpočetně velmi náročné. Z tohoto důvodu se nám může vyplatit vyhodnotit tuto derivaci jen jednou za čas a počítat několik kroků se stejnou, byť nepřesnou, hodnotou. Předpis má potom tvar x k+1 = x k f(x k) f (x l ), kde f (x l ) = f (x k ), je-li k dělitelné m. Geometrickou interpretaci této modifikaci lze naléz na Obrázku Obr. 2.8: První modifikace Newtonovy metody Druhá modifikace Newtonovy metody Vyhodnocení první derivace lze rovněž obejít její aproximací předpisem f (x k ) f(x k) f(x k 1 ) x k x k 1,
42 2.4 Newtonova metoda 35 pak předpis metody má tvar x k+1 = x k Tato metoda se nazývá metoda sečen. x k x k 1 f(x k ) f(x k 1 ). Obr. 2.9: Druhá modifikace Newtonovy metody Newtonova metoda pro soustavy Uvažujme nyní soustavu tj. F (x) = o, x Ω, f 1 (x 1,..., x n ) = 0, f 2 (x 1,..., x n ) = 0,. f n (x 1,..., x n ) = 0. Pak v předpisu (2.8) bude λ(x) = [F (x)] 1, kde F (x) = f 1 x 1 (x).... f n x 1 (x)... f 1 x n (x). f n x n (x). Pak předpis pro Newtonovu formuli bude vypadat následovně x k+1 = x k [F (x k )] 1.F (x k ), x k+1 = (x 1 k+1, x 2 k+1,..., x n k+1)
43 36 Numerické řešení nelineárních rovnic Uvedený předpis však znamená v každé iteraci sestavit matici F (x k ). Pokud označíme přírustek řešení v k-tém kroce Δx k = x k+1 x k a vynásobíme-li předpis maticí F (x k ), dostaneme nový předpis, ve kterém řešíme soustavu F (x k )Δx k = F (x k ), x k+1 = x k + Δx k. V uvedeném předpise je jedinou neznámou přírustek Δx k. Jeho výpočet je řešením soustavy lineárních rovnic s maticí F (x k ) a pravou stranou F (x k ). Této metodě se taktéž říká Newtonova-Raphsonova metoda. V této metodě se jako velmi výhodná ukazuje její první modifikace. Při jejím použití se totiž, řeší několik soustav lineárních rovnic se stejnou maticí. K efektivnímu řešení je pak možné použít LU rozklad, který provedeme pouze jednou za čas a soustavu pro různé pravé strany řešíme pouze dopřednou a zpětnou substitucí. Algoritmus 4 Input: x 0,přesnost ǫ > 0 1: nalezni x 0, které řeší soustavu F (x 0 ) x 0 = F(x 0 ) 2: x 1 := x 0 + x 0 3: k := 1 4: while x k x k 1 ǫ do 5: nalezni x k, které řeší soustavu F (x k ) x k = F(x k ) 6: x k+1 := x k + x k 7: k := k + 1 8: end while Output: x k NEWTONOVA METODA PRO SOUSTAVY Příklad Pomocí Newtonovy metody nalezněte průsečík křivky σ : x 2 + y = 0 a elipsy ρ : x 2 + 4y 2 = 1. Řešení. Úkolem je tedy řešit soustavu kde F (x) def = [ f1 (x, y) f 2 (x, y) F (x) = o, ] = [ x 2 + y x 2 + 4y 2 1 Pro předpis Newtonovy metody bude nutno spočítat kvadratickou formu [ ] f1 (x,y) f 1 (x,y) [ ] F x y 2x 1 (x) = =. 2x 8y f 2 (x,y) x f 2 (x,y) y ].
44 2.4 Newtonova metoda 37 tedy Následně inverzi [ 2x x 8y 0 1 ] [ 2x y [ 2x y y y 1 1 8y [F (x)] 1 = ] ] [ ] 2x y 1 8y [ ] 1 0 8y 1 2x(1 8y) 2x(1 8y) y 1 1 8y 1 [ 8y 1 2x(8y 1) 2x 2x Pak předpis pro Newtonovu metodu má tvar ( ) ( ) [ xk+1 xk 1 8yk 1 = + y k+1 y k 2x k (8y k 1) 2x k 2x k ]. ] [ x 2. k + y k x 2 k + 4y2 k 1 Při přesnosti ε = 10 5 a volbě počáteční aproximace [x 0, y 0 ] T = [ 2, 1] T je algoritmus je ukončen po 4 iteracích., ] y x Obr. 2.10: Konvergence Newtonovy metody v Příkladě 2.19.
45 38 Kapitola 3 Iterační řešení soustav lineárních rovnic Z S V Průvodce studiem J V této kapitole si představíme několik základních metod numerického řešení soustav lineárních rovnic. Řada praktických úloh popisující lineární závislost výstupních dat na datech vstupních vede na řešení soustav lineárních rovnic. Prakticky všechny fyzikální jevy popisované parciálními diferenciálními rovnicemi vedou na tuto úlohu. Na konci předchozí kapitoly jsme si dokonce ukázali, že i numerické metody pro řešení soustav nelineárních rovnic se rovněž převádí na posloupnost řešení soustav lineárních rovnic. Zvládnutí efektivního řešení tohoto problému je tedy klíčové. S analytickými metodami řešení soustav lineárních rovnic jako je Gaussova eliminační metoda či LU rozklad se čtenář může seznámit ve skriptech [2]. Tyto metody však v současnosti ustupují do pozadí, neboť pro řešení velmi rozsáhlých úloh s velkým počtem neznámých jsou prakticky nepoužitelné díky své velké výpočetní a paměťové náročnosti. Z tohto důvodu jsou nahrazovány metodami iteračními, které mají výrazně menší paměťové nároky a v určitých případech jsou i výrazně rychlejší. Hlavní výhodou iteračních metod je však jejich snadná paralelizace pro nasazení na velmi výkonné výpočetní prostředky. V této kapitole se proto seznámíme se základními iteračními metodami a postupy, kterak zefektivnit rychlost jejich konvergence. 3.1 Normy vektorů a matic Úvodem této kapitoly si připomeňme několik základních pojmů Lineární algebry (viz [2]), které při popisu a analýze iteračních metod řešení soustav lineárních rovnic budeme často používat.
46 3.1 Normy vektorů a matic 39 Definice 3.1. Nechť V je vektorový prostor. Zobrazení. : V R + 0 normou jestliže platí nazýváme 1. x 0, x = 0 x = 0, 2. αx = α. x, 3. x + y x + y. Nechť V = R n. Pak prvky vektorového prostoru jsou n-dimenzionální aritmetické vektory a hovoříme o vektorových normách. Uveďme si několik příkladů vektorových norem: x = max{ x i, i = 1, 2,... n} ( n ) 1 x 2 = x i 2 2 i=1 x 1 = n x i i=1 Pro zájemce: Dokažte, že zobrazení definována výše jsou skutečně normy (tj. splňují 3 vlastnosti normy z Definice 3.1). Příklad 3.2. Načrtněte v R 2 množiny Ω 1 := {x R 2 : x 1 = 1}, Ω 2 := {x R 2 : x 2 = 1}, Ω := {x R 2 : x = 1}. Řešení. 1. Ω 1 - dle definice x 1 = 1 x 1 + x 2 = 1. Rozdělme naše úvahy na jednotlivé kvadranty: pro x 1 > 0 x 2 > 0 - přímka s restrikcí na první kvadrant x 1 + x 2 = 1, pro x 1 < 0 x 2 > 0 - přímka s restrikcí na druhý kvadrant x 1 + x 2 = 1, pro x 1 < 0 x 2 < 0 - přímka s restrikcí na třetí kvadrant x 1 x 2 = 1, pro x 1 > 0 x 2 < 0 - přímka s restrikcí na čtvrtý kvadrant x 1 x 2 = 1. Spojením řešení v jednotlivých kvadrantech získáme celkové řešení (viz Obrázek 3.1). 2. Ω 2 - dle definice x 2 = 1 x x 2 2 = 1, což je kružnice s poloměrem 1 (viz Obrázek 3.2).
47 40 Iterační řešení soustav lineárních rovnic Obr. 3.1: Konstrukce množiny Ω 1 v Příkladě 3.2. Obr. 3.2: Konstrukce množiny Ω 2 v Příkladě Ω - Dle definice x = 1 max{ x 1, x 2 } = 1. Uvažujme dva případy (ve kterých je maximum jeden z prvků x 1, x 2 ): pokud x 1 x 2 = 1, pak se jedná o množinu bodů {[x 1, x 2 ] R 2 : x 1 1, 1 x 2 { 1, 1}} ozn = Ω A pokud x 2 x 1 = 1, pak se jedná o množinu bodů {[x 1, x 2 ] R 2 : x 1 { 1, 1} x 2 1, 1 } ozn = Ω B Spojením těchto dvou případů získáme celkové řešení (viz Obrázek 3.3). Obr. 3.3: Konstrukce množiny Ω v Příkladě 3.2.
48 3.1 Normy vektorů a matic 41 Poznámka 3.3. Pro V = R m,n nazýváme normu normou maticovou. Příklad 3.4. Zobrazení. : R m,n R definované předpisem A F := ( i,j a ij 2 ) 1 2 nazýváme Frobeniova norma. Definice 3.5. Nechť je dána vektorová norma. V na prostoru R n. Maticovou normu odpovídající vektorové normě. M definujeme následujícím předpisem { } Ax V A M := max. x o x V Uveďme maticové normy odpovídající dříve uvedeným vektorovým normám A := max{ n a jk, j = 1,..., n} odpovídá. a nazývá se řádková norma, k=1 A 1 := max{ n a jk, k = 1,..., n} odpovídá. 1 a nazývá se sloupcová norma, j=1 A 2 := ρ(a T A) = ρ(aa T ) = ρ(a), kde A je normální matice 12, odpovídá. 2 a nazývá se spektrální norma. Lemma 3.6. Nechť. M značí maticovou a. V odpovídající vektorovou normu. Pak platí A R n n x R n : Ax V A M. x V, A, B R n n : AB M A M. B M. Důkaz. Dokažme Ax V A M. x V. Tvrzení je splněno pro x = o triviálně. Předpokládejme tedy, že x o, tj. x V 0 (dle první vlastnosti normy z Definice 3.1). Pak dokazované tvrzení je ekvivalentní s nerovností Ax V x V A M. Místo pravé strany lze dosadit z definice odpovídající maticové normy 3.5 { } Ax V Ax V max, x V x o x V což dle definice maxima platí. 1 Matice A se nazývá normální, pokud AA T = A T A 2 ρ(a) je spektrální poloměr matice A
49 42 Iterační řešení soustav lineárních rovnic Dokažme AB M A M. B M. Nejdříve uvažujme nerovnost x R n {o} : ABx V A M. Bx V, (3.1) které je platné díky již dokázanému prvnímu tvrzení Věty 3.6. Dále pak úpravou rovnice (3.1) díky stejnému tvrzení získáme ABx V A M. Bx V A M. B M. x V. Úpravou (předpokládáme x o) dostáváme ABx x A M. B M. Uvažujeme-li největší možnou hodnotu výrazu na levé straně (nerovnost platí x o), lze nahradit { } ABx max A M. B M. x o x Dle Definice 3.5 pak přímo dostáváme tvrzení AB M A M. B M. Uveďme si ještě jednu důležitou charakteristiku matic, kterou je tzv. číslo podmíněnosti matice. V dalším textu ukážeme, že rychlost konvergence některých metod řešení soustav lineárních rovnic souvisí s tímto číslem. Definice 3.7. Nechť A R n,n je regulární. Pak číslem podmíněnosti matice rozumíme číslo cond(a) def = A. A 1. Spektrálním číslem podmíněnosti matice rozumíme číslo κ(a) def = ρ(a)ρ(a 1 ). Poznámka 3.8. Je-li navíc matice A symetrická a positivně definitní, pak κ(a) = cond(a) = λ max λ min, kde λ max, λ min jsou největší a nejmenší vlastní čísla matice A. Očividně 0 < λ min λ max κ(a) 1.
50 3.2 Lineární metody Lineární metody Uvažujme soustavu lineárních rovnic kde A R n,n je matice soustavy, b R n je vektor pravých stran, x R n je vektor neznámých. Ax = b, (3.2) Je-li matice soustavy regulární, pak existuje jediné řešení x takové, že A x = b. Jinými slovy, je-li matice A regulární, existuje právě jedno řešení x = A 1 b. Zvolme počáteční aproximaci řešení soustavy x 0 x. Našim úkolem je sestavit posloupnost aproximací x 0, x 1,..., x k, x k+1,... konvergující k řešení x, tedy lim x k = x. k V následujícím výkladu budeme pátrat po předpisech zobrazení, které každé předešlé aproximaci přiřadí novou aproximaci řešení soustavy x. Toto zobrazení budeme nazývat iterační metoda. Definice 3.9. Iterační metoda je zobrazení Φ : R n R n kde x k je k-tá iterace. x k+1 = Φ(x k ), k 0. Pokud navrhneme nějakou iterační metodu, bude nutné zajistit, aby metoda konvergovala i k řešení soustavy lineárních rovnic pro kterou byla navržena. O takových metodách pak říkáme, že jsou konzistentní s danou soustavou lineárních rovnic. Definice Iterační metoda Φ se nazývá konzistentní se soustavou lineárních rovnic Ax = b, jestliže pro každou pravou stranu b R n všechna řešení x jsou pevným bodem Φ, tj. x = Φ( x). Také je nutno, aby se metoda postupnými iteracemi vždy blížila k řešení, a to nezávisle na volbě počáteční aproximace x 0. Definice Iterační metoda Φ se nazývá konvergentní, jestliže pro b R n je limita lim k x k = x nezávislá na počáteční aproximaci x 0.
51 44 Iterační řešení soustav lineárních rovnic V následujícím textu se omezíme na nejjednodušší třídu iteračních metod, které nazýváme lineární iterační metody. Na těchto metodách si ukážeme podmínky konzistence a konvergence těchto metod a uvedeme si příklady nejběžněji používaných metod. Definice Iterační metoda se nazývá lineární, jestliže Φ(x) = Mx + Nb kde M, N R n n jsou regulární matice. Lineární iterační metoda má pak předpis x k+1 = Mx k + Nb, k 0. Věta Lineární iterační metoda je konzistentní se soustavou lineárních rovnic Ax = b, právě když M = I NA. Důkaz. Tvrzení je ekvivalence, proto je nutno dokázat jednotlivé implikace. Dokažme nejprve, že je-li metoda konzistentní se soustavou lineárních rovnic Ax = b, pak M = I NA. Uvažujme řešení x A x = b x = A 1 b. (3.3) Jelikož x je pevným bodem zobrazení definujícím metodu (je konzistentní s touto soustavou), tak Dosaďme nyní předpis (3.3) a upravme x = Φ( x) x = M x + Nb. A 1 b = MA 1 b + Nb I A 1 b MA 1 b = Nb (I M)A 1 b = Nb. Jelikož tato rovnost je z důvodu konzistence splněna pro libovolnou pravou stranu b, pak musí platit následující rovnost (I M)A 1 = N I M = NA M = I NA.
52 3.2 Lineární metody 45 Dokažme dále, že je-li M = I NA, pak je metoda konzistentní se soustavou lineárních rovnic Ax = b. Dosaďme předpoklad tvrzení do předpisu zobrazení iterační metody Φ(x) = Mx+Nb = (I NA)x+Nb = x NAx+Nb = x N(Ax b). (3.4) Očividně pevným bodem je řešení x, jelikož Φ( x) = x N(A x b) = x N(b b) = x. Předpokládejme sporem, že ^x R n je pevným bodem iterační metody Φ (tj. Φ(^x) = ^x), ale není řešením soustavy (tj. A^x b). Využitím rovnice (3.4) lze psát ^x = ^x N(A^x b), úpravou pak N(A^x b) = o. Uvažujeme-li N regulární (viz Definice 3.12), pak musí platit A^x b = o, tedy A^x = b. Což je spor. Poznámka Konzistentní lineární iterační metody mají tvary 1) x k+1 = x k N(Ax k b), 2) W (x k x k+1 ) = Ax k b, N = W 1. Lemma Chyba lineární iterační metody v k-té iteraci, tj. je rovna e k := x x k e k = M k e 0. Důkaz. Uvažujme přesné řešení soustavy x, které je pevným bodem zobrazení definujícího lineární metodu, tj. x = M x + Nb a předpis k-té iterace Pak pro jejich rozdíl platí x k = Mx k 1 + Nb. x x k = M( x x k 1 ) e k = Me k 1. Opakovaným užitím předchozí rovnosti získáme e k = Me k 1 = M(Me k 2 ) = = M k e 0.
53 46 Iterační řešení soustav lineárních rovnic Věta Lineární metoda je konvergentní, pokud ρ(m) < 1, kde ρ(m) je spektrální poloměr matice M, tj. ρ(m) := max{ λ 1,..., λ n } a λ i jsou vlastní čísla matice M. Důkaz. Pro důkaz konvergence iterační metody je nutno dokázat, že lim e k = o. k Dle předpisu chyby z Lemma 3.15 lze dosadit lim M k e 0 = o. k Jelikož e 0 je v této posloupnosti konstantní, je nutno, aby posloupnost M k konvergovala k nulové matici. Nechť J = T MT 1 je Jordanův kanonický tvar matice M a T je regulární matice (viz [2]). Úpravou M = T 1 JT M k = T 1 J k T. Nyní ukážeme, že lim J k = O. Dle předchozí rovnice pak bude zřejmé, k že i lim M k = O. k Jelikož J je blokově diagonální, pak její mocnina má tvar J k = J k 1 J k 2... J k m kde J i, i = 1,..., m jsou Jordanovy bloky příslušné k vlastním číslům λ 1,..., λ m. Nyní se omezme pouze na jeden blok J i R r,r, kde r je násobnost vlastního čísla, kterému daný blok přísluší. Dle [2] lze tento blok napsat ve tvaru součtu J i = λ i I + S,,
54 3.2 Lineární metody 47 kde I R r,r je jednotková matice odpovídajíci dimenze a S := Dle binomické věty pro k-tou mocninu Jordanova bloku lze psát k ( ) k Ji k = (λ i I + S) k = λ k j i S j. (3.5) j Všimněme si, že mocněním matice S se nenulová vedlejší matice posouvá, proto j=0 j=0 S j = O pro j r, Pokud v součtu (3.5) vynecháme nulové sčítance, získáme m ( ) Ji k k = λ k j j i S j, m = min{k, r 1}. Ji k = c 0 λ k i λ k i... λ k i + c 1 0 λ k 1 i λ k 1 i 0 c 1 λ k 1 i λ k m c 0 λ k i c m λ k m i i 0 ( ) + c m... = c 0 λ k i k... c1 λ k 1, c i :=. i i 0 c 0 λ k i Pokud platí předpoklad věty ρ(a) < 1, pak libovolné vlastní číslo λ i < 1. Pak se zvyšujícím se k tvoří geometrickou posloupnost kon- jednotlivé prvky matice Ji k vergující k nule. Proto lim Ji k = O. k Poznámka Číslo log(ρ(m)) nazváme řád konvergence. Určení spektrálního poloměru je výpočetně náročný proces, který je složitější než samo řešení soustavy lineárních rovnic. Abychom tedy vůbec rozhodli o konvergenci lineární iterační metody, museli bychom řešit ještě náročnější problém, což by nebylo příliš efektivní. Z tohoto důvodu můžeme k rozhodnutí o konvergenci lineární iterační metody využít následující postačující podmínku. Lemma Nechť. M je maticová norma a M M < 1. Pak konzistentní lineární iterační metoda je konvergentní.
55 48 Iterační řešení soustav lineárních rovnic Důkaz. Jelikož (viz Důkaz Lemma 3.15) e k+1 = Me k, musí rovnost platit i pro libovolnou vektorovou normu, tj. e k+1 V = Me k V. Odpovídá-li maticová norma. M vektorové normě. V, pak užitím nerovnosti 3.6 lze psát e k+1 V M M e k V Při rekurentním zápisu nerovnosti a postupným snižováním k získáme tedy e k+1 V M M e k V M 2 M e k 1 V... M k M e 0 V, 0 e k+1 V M k M e 0 V. Jelikož e 0 je nezávislé na k, pak očividně metoda je konvergentní, pokud a to platí pouze pokud lim k M k M = 0 M M < 1. Uveďme si několik základních lineárních iteračních metod. Nejprve matici A rozložme A = L + D + U, (3.6) kde D je diagonální matice, L je ostře dolní trojúhelníková matice, U je ostře horní trojúhelníková matice Jacobiova metoda Předpis iterační metody má tvar M = D 1 (L + U), N = D 1 pokud D i 0. x k+1 i = 1 a ii ( b i n j=1,j i a ij x k j ).
56 3.2 Lineární metody Gaussova-Seidelova metoda M = (D + L) 1 U, N = (D + L) 1. Předpis iterační metody má tvar ( x k+1 i = 1 i 1 b i a ij x k+1 j a ii j=1 n j=i+1 a ij x k j ) Successive over-relaxation method (SOR) M = (D + ωl) 1 (ωu + (1 ω)d), N = ω(d + ωl) 1. Předpis iterační metody má tvar x k+1 i = (1 ω)x k i + ω i 1 ( b i a ij x k+1 j a ii kde 0 < ω < 2 je reálná konstanta. Poznámka (Odvození lineárních iteračních metod) Uvažujme soustavu j=1 n j=i+1 a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 kde a ij, b i jsou koeficienty soustavy a x i jsou neznámé. Soustavu lze upravit na tvar a 11 x 1 = b 1 a 12 x 2 a 13 x 3 a 22 x 2 = b 2 a 21 x 1 a 23 x 3 a 33 x 3 = b 3 a 31 x 1 a 32 x 2 a ij x k j a předpokládáme-li nenulové prvky na diagonále, lze například pro x 1 psát (vydělením prvního řádku upravené soustavy koeficientem a 11 ) x 1 = 1 a 11 (b 1 a 12 x 2 a 13 x 3 ). Uvažujeme-li navíc iterační metodu, pak pro první složku následující iterace spočtené ze složek předchozí iterace bude platit [x k+1 ] 1 = 1 a 11 (b 1 a 12 [x k ] 2 a 13 [x k ] 3 ). (3.7) ),
57 50 Iterační řešení soustav lineárních rovnic Pokud budeme uvažovat postupně všechny složky x, získáme předpis Jacobiho metody. Z něj již snadno určíme matice M a N. Jelikož v předpisu (3.7) lze při výpočtu [x k+1 ] i místo x k použít již vypočtené složky x k+1. Získáme tak předpis pro Gaussovu-Seidelovu metodu. Princip SOR metody pak spočívá v tom, že novou aproximaci x k+1 určíme jako kombinaci předchozí aproximace x k a aproximace určenou Gaussovou-Seidelovou metodou. Váhu této kombinace pak určuje parametr ω. Pro ω = 1 se jedná o Gaussovu-Seidelovu metodu. Algoritmus 5 Input: x 0, M, N, b,přesnost ǫ > 0 1: k := 0 2: while g k ǫ b do 3: x k+1 := Mx k Nb 4: k := k + 1 5: end while LINEÁRNÍ ITERAČNÍ METODA Output: x k Poznámka Jako ukončovací kritérium byla v metodě použita podmínka na relativní chybu rezidua soustavy g k := Ax k b, tj. g k / b < ε. Abychom se v praxi vyhli podílu dvou malých čísel, které je co do šíření chyby velmi kritické, používáme raději podmínku g k < ε b. Příklad Řešte soustavu 5x 1 +2x 2 = 3 x 1 +4x 2 +x 3 = 0 2x 1 x 2 +6x 3 = 1 pomocí Jacobiho metody, Gaussovy-Seidelovy metody a SOR s vhodnou volbou parametru ω (0, 2). Řešení. Nejdříve matici soustavy rozložíme dle jednoduchého rozkladu (3.6) A = = =: L+D+U Dle předpisů jednotlivých metod získáme matice M, N a pomocí algoritmu obecné lineární metody spočteme řešení. Při požadované přesnosti ε = 10 6 je Jacobiho metoda ukončena po 17-ti iteracích,
58 3.2 Lineární metody 51 Gaussova-Seidelova metoda po 9-ti iteracích. Na počet iterací algoritmu SOR vplývá volba parametru ω, pro jednotlivé volby je počet iterací znázorněn na Obrázku 3.4 (přičemž pro lepší názornost byl maximální počet iterací omezen na 1000). Při volbě optimálního ω 0.9 je počet iterací algoritmu SOR it ω Obr. 3.4: Vliv volby ω na počet iterací SOR - Příklad Příklad Otestujte rychlost výše uvedených algoritmů na testovací úloze A := fivediag( 1, 1, 4, 1, 1) R n,n b := [1,..., 1] T R n x 0 := [0,..., 0] T R n ε := 10 6 přičemž volte různou dimenzi úlohy n = 4, 5,..., 70. Řešení. Nejdřívě nalezněme vhodný parametr ω pro algoritmus SOR. Volme menší dimenzi úlohy, například n = 10. Vliv volby parametru ω na počet iterací SOR je vykreslen na Obrázku 3.5 (přičemž pro lepší názornost byl maximální počet iterací omezen na 5000). Ukazuje se, že pro algoritmus SOR je vhodné použít optimální hodnotu ω Počet iterací pro jednotlivé metody je pak vykreslen na Obrázku 3.6.
59 52 Iterační řešení soustav lineárních rovnic it ω Obr. 3.5: Vliv volby ω na počet iterací SOR - Příklad jacobi gauss seidel sor 4000 it n Obr. 3.6: Počet iterací algoritmů lineárních iteračních metod v závislosti na dimenzi úlohy - Příklad 3.22.
60 3.3 Gradientní metody Gradientní metody Uvažujme soustavu Ax = b, kde matice A je symetrická pozitivně definitní,tj. A R n,n : A = A T v R n, v 0 : v T Av > 0. Jiným přístupem k iteračnímu řešení soustav lineárních rovnic je řešení minimalizační úlohy, jejíž výsledek je totožný s řešením soustavy lineárních rovnic. Za tímto účelem tedy uvažujme úlohu min f(x), (3.8) x Rn kde f(x) := 1 2 (Ax, x) (b, x), f : Rn R. (3.9) V předpisu tzv. kvadratické funkce (3.9) symbol (.,.) představuje Eukleidovský skalární součin definovaný předpisem u, v R n : (u, v) := u T v = n u i v i. (3.10) i=1 Příklad Nechť je dána kvadratická funkce předpisem (3.9) s hodnotami n := 2, A = ( ) ( 2, b = 1 ). Grafickou reprezentací této kvadratické funkce je paraboloid znázorněný na Obrázku x f(x 1,x 2 ) x 1 x x 1 Obr. 3.7: Grafická reprezentace dvoudimenzionální kvadratické funkce.
61 54 Iterační řešení soustav lineárních rovnic Lemma Nechť matice A je symetrická pozitivně definitní. Řešení soustavy Ax = b je ekvivalentní s minimalizační úlohou (3.8). Důkaz. Uvažujme přírůstek x + αv bodu x, kde x, v R n, α R. Pak rozdíl funkčních hodnot v bodě s přírůstkem a v bodě bez přírůstku je roven f(x + αv) f(x) = 1(A(x + αv), x + αv) (b, x + αv) 1 (Ax, x) (b, x) 2 2 = α(ax, v) α(b, v) α2 (Av, v) = 1 2 α2 (Av, v) + α(ax b, v) V úpravách jsme využili základních vlastností skalárního součinu viz skripta Lineární algebra [2]. Dále dokažme ekvivalenci tak, že postupně dokážeme jednotlivé implikace: ( ) Nejprve předpokládejme, že x je řešením soustavy lineárních rovnic, tedy A x = b A x b = o. Pak z pozitivní definitnosti matice A plyne, že Úpravou pak f( x + αv) f( x) = 1 2 α2 (Av, v) 0, α R, v R n. f( x + αv) f( x), α R, v R n. Z poslední nerovnosti tedy vyplývá, že ve všech směrech z bodu x nabývá funkce f pouze větších nebo stejných hodnot. x je tedy minimem funkce f. ( ) V teorii minimalizace funkcí více proměnných (viz skripta [13]) je známo, že nutnou podmínkou existence extrému jsou nulové parciální derivace. V našem případě je to tedy požadavek na nulovost gradientu funkce f tj. f( x) = o. Jelikož f( x) = A x b, dostáváme z této nutné podmínky, že A x b = o a tedy, že x řeší soustavu lineárních rovnic A x = b Metoda největšího spádu Metoda největšího spádu patří do skupiny tzv. line-search minimalizačních metod. Následující iteraci získáme tak, že funkci v každém iteračním kroku minimalizujeme ve směru vektoru v s délkou iteračního kroku α. Pro nalezení nové iterace používáme předpis x k+1 = x k + α k v k. x k R n, v k R n, α k R. (3.11)
62 3.3 Gradientní metody 55 Obr. 3.8: Princip line-search metody - předpis (3.14). Při návrhu vhodného směru minimalizace funkce se jako logické jeví vydat se ve směru největšího spádu, tj. ve opačném směru než je gradient. v k volíme tak, aby df(x k) dv k (derivace funkce f ve směru v k, viz [13]) byla co nejmenší df(x k ) dv k = ( f(x k ), v k ) = cos φ. g k. v k. Tato hodnota bude nejmenší při volbě φ = π cos φ = 1, tedy úhel mezi vektory g k a v k je roven π, tedy v k = g k (opačný gradient je skutečně vektorem největšího spádu, tj. směru ve kterém funkce nejvíc klesá). Předpokládejme tedy, že směr minimalizace v k je vhodně zvolen. Otázka zůstává, jak daleko je možné se v tomto směru pohybovat, než-li hodnota funkce začne opět stoupat. Za tím účelem musíme zvolit optimální délku kroku α k. Za tímto účelem si tedy zvolme funkci φ(α) := f(x k +αv k ) jedné reálné proměnné, kterou je délka kroku α. Vhodnými úpravami dostáváme φ(α) = 1(A(x 2 k + αv k ), x k + αv k ) (b, x k + αv k ) = 1(Ax 2 k + αav k, x k + αv k ) (b, x k ) (b, αv k ) = 1(Ax 2 k, x k ) + 1(Ax 2 k, αv k ) + 1(αAv 2 k, x k ) + 1(αAv 2 k, αv k ) (b, x k ) (b, αv k ) = 1(Ax 2 k, x k ) b, x k ) + 1(Aαv 2 k, αv k ) + (αax k, v k ) (b, αv k ) = f(x k ) + 1(Aαv 2 k, αv k ) + α((ax k, v k ) (b, v k )) = f(x k ) + 1(Aαv 2 k, αv k ) + α(ax k b, v k ) = f(x k ) α2 (Av k, v k ) + α(g k, v k ). (3.12) Hledáme co nejvhodnější α, tj. takové, při kterém φ(α) je minimální. Za tímto účelem musíme minimalizovat funkci φ(α) jako funkci o jediné proměnné α φ (α) = α(av k, v k ) + (g k, v k ) = 0.
63 56 Iterační řešení soustav lineárních rovnic V našem případě je stacionárním bodem α = (g k, v k ) (Av k, v k ). (3.13) V průběhu funkce φ(α) nedochází k žádným inflexím, funkce je konvexní na celém R, protože φ (α) = (Av k, v k ) > 0, což plyne z pozitivní definitnosti matice A, α k = (g k,v k ) φ. Po dosazení do předpisu (3.14) dostáváme (Av k,v k ) je tedy minimum funkce x k+1 = x k + α k v k = x k (g k, v k ) (Av k, v k ) g k = x k (g k, g k ) (Ag k, g k ) g k. (3.14) Algoritmus 6 Input: x 0, A, b,přesnost ǫ > 0 1: g 0 := Ax 0 b 2: k := 0 3: while g k ǫ b do 4: α k := g k 2 /(Ag k,g k ) 5: x k+1 := x k + α k g k 6: g k+1 := Ax k+1 b 7: k := k + 1 8: end while METODA NEJVĚTŠÍHO SPÁDU Output: x k Poznámka g k+1 = Ax k+1 b = A(x k + α k g k ) b = Ax k + Aα k g k b = g k + α k Ag k Tento způsob rezidua je výpočetně výhodnější, neboť jeho využitím nemusíme v algoritmu násobit Ax k ale k výpočtu gradientu můžeme využít Ag k (které jsme již spočetli při výpočtu α k ). Lemma Metoda největšího spádu konverguje pro libovolnou volbu x 0 R n k řešení rovnice Ax = b. Navíc pro chyby dvou po sobě jdoucích iterací metody největšího spádu platí ( (Ae k+1, e k+1 ) 1 1 ) (Ae k, e k ). (3.15) κ(a)
64 3.3 Gradientní metody 57 Důkaz. Označme chybu v k-té iteraci e k = x x k. (3.16) Cílem důkazu je ukázat, že chyba s postupem iterací klesá, tedy Úpravou rovnice (3.16) získáme a dosadíme do rozdílu funkčních hodnot lim e k = 0. k x k = x e k f(x k ) f( x) = f( x e k ) f( x) = 1 2 (Ae k, e k ) + (A x b, e k ) = 1 2 (Ae k, e k ). (3.17) Využitím rovnice (3.17) lze upravit rozdíl funkčních hodnot dvou po sobě jdoucích iterací f(x k+1 ) f(x k ) = (f(x k+1 ) f( x)) (f(x k ) f( x)) = 1(Ae 2 k+1, e k+1 ) 1(Ae (3.18) 2 k, e k ). Předpis pro rozdíl funkčních hodnot dvou po sobě jdoucích iterací lze získat také využitím předpisu metody (3.14) f(x k+1 ) f(x k ) = f(x k α k g k ) f(x k ) = 1(A(x 2 k α k g k ), x k α k g k ) (b, x k α k g k ) f(x k ) = 1(Aα 2 kg k, α k g k ) (Ax k, α k g k ) + (b, α k g k ) = 1 2 α2 k (Ag k, g k ) α k (Ax k b, g k ) = 1 (g k,g k ) 2 2 (Ag k,g k (Ag ) 2 k, g k ) (g k,g k ) (Ag k,g k ) k, g k ) = 1 (g k,g k ) 2 2 (Ag k,g k ) (3.19) Porovnáním rovnic (3.18) a (3.19) získáme Jednoduchými úpravami dostáváme 1 2 (Ae k+1, e k+1 ) 1 2 (Ae k, e k ) = 1 (g k, g k ) 2 2 (Ag k, g k ). (Ae k+1, e k+1 ) (Ae k, e k ) = 1 (g k, g k ) 2 (Ag k, g k ).(Ae k, e k ). (3.20) Jelikož g k = b Ax k = A x Ax k = A( x x k ) = Ae k (3.21) a užitím Lemma 3.6 o nerovnosti mezi maticovou a vektorovou normou lze tvrdit e k = A 1 g k e k A 1. g k = A 1. g k. (3.22)
65 58 Iterační řešení soustav lineárních rovnic Kombinací rovnosti (3.20) a nerovnosti (3.22) získáme Dosazením (3.21) a (3.22) do (3.20) dostáváme nerovnost (Ae k+1, e k+1 ) (Ae k, e k ) 1 (g k, g k ) 2 A. g k 2. A 1. g k 2 = 1 1 A. A 1 =: q. (3.23) Jelikož jsme v předchozích odvozeních používali Eukleidovskou vektorovou normu a jí odpovídající spektrální maticovou normu, dostáváme dále odhad q = 1 1 A. A 1 = 1 1 κ(a) < 1 Kombinací nerovností (3.23) a (3.24) dostáváme dále úpravou (Ae k+1, e k+1 ) (Ae k, e k ) Odtud díky ekvivalenci norem platí, že neboť κ(a) = λ max λ min 1. (3.24) q < 1, (Ae k+1, e k+1 ) q(ae k, e k ), q 0, 1). lim (Ae k, e k ) = 0 lim e k = 0 k k Z předchozího důkazu je zřejmé, že rychlost poklesu chyby (rychlost konvergence) metody největšího spádu závisí na čísle pomíněnosti matice soustavy, konkrétně ( (Ae k+1, e k+1 ) 1 1 ) (Ae k, e k ). κ(a) Poznámka Jelikož matice A je symetrická a positivně definitní, lze skalární součin v odhadu chyby metody největšího spádu (3.15) značit jednoduše (Ae k, e k ) =: (e k, e k ) A = e k 2 A. Příslušnou normu indukovanou tímto skalárním součinem označujeme pojmem energetická. Pro zájemce: V algoritmu metody největšího spádu lze volit α k = 1 A. Tato volba má obecně pomalejší konvergenci, nicméně konstantní volba koeficientů má svůj smysl - není nutno každý zvlášť počítat. Metoda se nazývá Richardsonova metoda a souvisí s odhadem posloupnosti koeficientů pomocí vlastních čísel, jak je vidět v podkapitole Tyto koeficienty jsou totiž převrácené hodnoty Rayleighových podílů.
66 3.3 Gradientní metody 59 Příklad Nalezněte průsečík přímek p 1 : y = 2x 1 p 2 : y = 1x pomocí metody největšího spádu. Řešení. Jistě není problém tuto úlohu vyřešit analyticky, nicméně na tomto příkladě bychom rádi ukázali vlastnosti největšího spádu. Jelikož se jedná pouze o dvě dimenze, lze postup iterací vykreslit. Soustavu lze maticově zapsat ve tvaru Ax = b, kde ( ) ( ) A =, b =, x = ( x1 x 2 ). Pokud volíme například počáteční aproximaci x 0 = (0, 0) T a požadovanou přesnost ε = 10 4, algoritmus je ukončen po sedmi iteracích. Na Obrázku 3.9 je vykreslen postup iterací algoritmu vzhledem k vrstevnicím odpovídající kvadratické funkce, [x] [x] 1 Obr. 3.9: Postup iterací metody největšího spádu - Příklad na Obrázku 3.10 pak pokles normy chyby v jednotlivých iteracích a pokles normy residua.
67 60 Iterační řešení soustav lineárních rovnic norm(e k ) norm(g k ) k k Obr. 3.10: Pokles normy chyby a normy residua při použití algoritmu největšího spádu - Příklad 3.28.
68 3.3 Gradientní metody Metoda sdružených gradientů Ačkoliv se můze zdát, že nejrychlejší minimalizaci lze dosáhnout použitím vektorů největšího spádu, není tomu tak. Existuje i mnohem efektivnější volba využívající tzv. sdružených směrů. Právě těchto směrů využívá metoda sdružených gradientů. Nejprve si tedy zavedeme pojem sdružené směry a poté si ukážeme jak je můžeme využít pro vhodnou volbu minimalizačního směru. Volba sdružených směrů Definice O neprázné množině nenulových vektorů {p 0, p 1,..., p m } řekneme, že je množinou sdružených (A-ortogonálních) vektorů, pokud i, j = 0, 1,..., m : i j p T i Ap j = 0, kde matice A je symetrická pozitivně definitní. Poznámka Množinu sdružených vektorů lze ekvivalentně definovat pomocí skalárního součinu i, j = 0, 1,..., m : i j (Ap i, p j ) = 0. Lemma Prvky množiny sdružených vektorů jsou lineárně nezávislé. Důkaz. Uvažujme lineární kombinaci vektorů dané množiny α 0 p 0 + α 1 p α m p m = 0. (3.25) Je nutno dokázat, že tato rovnice má právě jedno řešení, kterým je nulový vektor, tj. α 0 = α 1 = = α m = 0. Pokud rovnici (3.25) skalárně přenásobíme zleva vektorem Ap k (kde k je libovolný index k {0, 1,..., m}), po využití vlastností skalárního součinu získáme k rovnic α 0 (Ap k, p 0 ) + α 1 (Ap k, p 1 ) + + α m (Ap k, p m ) = 0. Jelikož vektory dané množiny jsou sdružené (tj. i k : (Ap k, p i ) = 0) pak součet na levé straně lze zjednodušit a pro k-tou rovnici dostaneme α k (Ap k, p k ) = 0. (3.26) Předpokládáme, že matice A je pozitivně definitní (tj. k : p T k Ap k = (Ap k, p k ) > 0). Pak rovnost (3.26) je splněna, pouze pokud α k = 0. Navíc k jsme volili libovolně, tedy původní rovnice (3.25) má nulové řešení ( k : α k = = 0). Proto vektory jsou skutečně lineárně nezávislé.
69 62 Iterační řešení soustav lineárních rovnic Předpokládejme, že v k-tém kroce máme k dispozici množinu sdružených vektorů K := {p 0, p 1,..., p k } a následující iteraci získáme předpisem x k+1 = x k + α k p k. (3.27) Koeficient α k volíme tak, abychom minimalizovali funkci f v daném směru co nejvíce. Tedy podobně jako v případě metody nejvetšího spádu zkonstruujeme funkci popisující funkci f v závislosti na volbě parametru α a následně ji minimalizujeme (viz (3.12)). Obdobně jako v případě metody největšího spádu získáme koeficient α k = (p k, g k ) (Ap k, p k ). (3.28) Otázkou však zůstává, proč volit směr p k a nikoliv směr největšího poklesu g k jako u metody největšího spádu (viz podkapitola 3.3.1). Lemma Pro libovolnou počáteční aproximaci x 0 R n posloupnost {x k } generována předpisem (3.27) dosáhne řešení x R n soustavy lineárních rovnic (3.2) po maximálně n krocích. Důkaz. K dosáhnutí aproximace x n 1 využijeme směry z množiny sdružených vektorů {p 0, p 1,..., p n 1 }. Jelikož tato množina je lineárně nezávislá a má právě tolik prvků jako je dimenze uvažovaného prostoru R n, tak tvoří bázi vektorového prostoru R n. Tedy libovolný prvek lze vyjádřit jako lineární kombinaci vektorů množiny {p 0, p 1,..., p n 1 }. (Jinak řečeno - množina n sdružených vektorů dimenze n tvoří bázi vektorového prostoru R n ). Uvažujme rozdíl přesného řešení x a počáteční aproximace x 0. Tento rozdíl je také prvkem prostoru R n, tedy jej lze vyjádřit jako lineární kombinaci vektorů báze. Existují jednoznačné souřadnice v bázi σ 0, σ 1,..., σ n 1 R takové, že x x 0 = σ 0 p 0 + σ 1 p σ n 1 p n 1. (3.29) Postupným skalárním přenásobením rovnice (3.29) vektorem Ap k všechna k {0, 1,..., n 1} dostáváme postupně pro (Ap k, x x 0 ) = σ 0 (Ap k, p 0 ) + σ 1 (Ap k, p 1 ) + + σ n 1 (Ap k, p n 1 ). Využijme-li vlastnost sdružených vektorů (podobně jako v důkazu Věty 3.31), získáme σ k = (Ap k, x x 0 ). (3.30) (Ap k, p k ) Nyní ukážeme, že koeficienty σ k se shodují s koeficienty α k generovanými předpisem (3.28).
70 3.3 Gradientní metody 63 Uvažujme iterační předpis (3.27). Postupným rekurentním dosazováním získáme předpis pro k-tou aproximaci k 1 x k = x k 1 + α k 1 p k 1 = = x 0 + α i p i. (3.31) Pokud skalárně přenásobíme levou a pravou stranu vektorem Ap k i=0 k 1 (Ap k, x k ) = (Ap k, x 0 ) + α i (Ap k, p i ) a využijeme vlastnosti sdružených vektorů (tentokráte však k bylo pevně zvoleno již v předpisu (3.31)) dostáváme a po úpravě i=0 (Ap k, x k ) = (Ap k, x 0 ), (Ap k, x k x 0 ) = 0. S využitím této znalosti lze upravit předpis (3.30) σ k = (Ap k, x x 0 ) 0 (Ap k, p k ) = (Ap k, x x 0 ) (Ap k, x k x 0 ) (Ap k, p k ) = (Ap k, x x k ) (Ap k, p k ). Navíc x je řešením dané soustavy, tj. A x = b, odkud σ k = (p k, A x Ax k ) (Ap k, p k ) = (p k, b Ax k ) (Ap k, p k ) = (p k, g k ) (Ap k, p k ). (3.32) Porovnáním předpisů (3.28) a (3.32) lze usoudit, že algoritmus přímo generuje souřadnice vektoru x x 0 v bázi {p 0,..., p n 1 } (viz (3.29)). Jelikož těchto koeficientů je n, algoritmus bude ukončen maximálně po n krocích (další koeficienty nelze nalézt neboť neexistují). Navíc pro libovolně zvolenou počáteční aproximaci x 0 je rozdíl x x 0 určen jednoznačně a proto algoritmus konverguje k hledanému řešení. Poznámka Všechna tvrzení, která jsme dosud použili pro důkaz konvergence metody sdružených algoritmů jsou založeny na přesné reprezentaci realných čísel. Při počítačové realizaci je však nutno počítat s nepřesnou aritmetikou. Pak navržená metoda algoritmus nebude ukončena po n krocích a výpočetní postup bude muset být zastaven vhodnou ukončovací podmínkou. Gramův-Schmidtův A-ortogonalizační proces Smysl využití sdružených vektorů pro generování nových aproximací je nám znám. Otázkou zůstává, jak tyto vektory generovat.
71 64 Iterační řešení soustav lineárních rovnic Překvapivě se dá k této úloze využít postup dobře známý z Lineární algebry, tzv. Gramův-Schmidtův ortogonalizační proces (viz [6]). Jako první A-ortogonální vektor p 0 budeme volit gradient v bodě x 0. O tomto gradientu víme, že je nenulový (pokud by byl nulový, pak g 0 = Ax 0 b = 0 a to znamená, že x 0 je řešení a algoritmus je ukončen). Uvažujme k-tou iteraci. Nechť máme k dispozici množinu A-ortogonálních vektorů {p 0, p 1,..., p k } a úkolem je nalézt p k+1 splňující podmínku sdruženosti (A-ortogonality) ke stávajícím sdruženým vektorům, tj. i = 0, 1,..., k : p T k+1ap i = 0 (ekvivalentně (Ap k+1, p i ) = 0 ). Pak lze vektor p k+1 vyjádřit jako lineární kombinaci ( k ) p k+1 = g k+1 β k+1,0 p 0 β k+1,1 p 1... β k+1,k p k = g k+1 β k+1,j p j. (3.33) Dosazením do podmínky A-ortogonality ( ) k 0 = (Ap k+1, p i ) = (A g k+1 β k+1,j p j, p i ) = (Ag k+1, p i ) j=0 j=0 k β k+1,j (Ap j, p i ). Využitím A-ortogonality stávajících vektorů p i, i = 0,..., k, se rovnice zjednoduší na tvar 0 = (Ag k+1, p i ) β k+1,i (Ap i, p i ). Odkud lze snadno získat předpis pro i-tý koeficient lineární kombinace β k+1,i = (Ag k+1, p i ) (Ap i, p i ) = (Ap i, g k+1 ) (Ap i, p i ) j=0. (3.34) Poslední úpravu jsme mohli provést díky symetrii skalárního součinu (tj. u, v R n : (u, v) = (v, u)). Toto vyjádření je snažší z důvodu pozdější implementace, protože budeme násobit maticí A pouze jednou. Zpětným dosazením do lineární kombinace (3.33) získáme předpis pro výpočet p k+1 p k+1 = g k+1 k j=0 (Ap j, g k+1 ) (Ap j, p j ) p j. (3.35) Tento předpis je však výpočetně i paměťově náročný, neboť je nutno uchovávat v paměti všechny předchozí směry a pro výpočet směru nového je nutno v sumaci procházet tyto směry. Díky vlastnostem sdruženosti, je však možné situaci značně zjednoduššít. Nejprve si však uveďme následující pomocná tvrzení. Lemma (o ortogonalitě gradientů metody sdružených gradientů) Nechť {g 0,..., g n 1 } je množina gradientů v příslušných bodech množiny aproximací {x 0,..., x n 1 }, které jsou zkonstruovány předpisem (3.27). Tato množina je ortogonální.
72 3.3 Gradientní metody 65 Důkaz. Cílem důkazu je ukázat, že daná množina je ortogonální, tj. { = 0 pro i j, i, j {0, 1,..., n 1} : (g i, g j ) = 0 pro i = j. Z rovnice (3.33) plyne i 1 p i = g i β i,l p l l=0 i 1 g i = p i + β i,l p l. (3.36) l=0 (gradient je lineární kombinací aktuálního a předchozích sdružených směrů.) Dále lze také jednoduše upravit (viz předpis CG metody (3.27)) a jelikož g i = Ax i b, lze psát x i+1 = x i + α i p i Ax i+1 = A(x i + α i p i ) Ax i+1 = Ax i + α i Ap i Ax i+1 b = Ax i b + α i Ap i g i+1 = g i + α i Ap i. (3.37) Pro i = j dostáváme (g i, g i ) = g i 2 > 0 (předpokládáme nenulová residua, v opačném případě by byl algoritmus předčasně ukončen). Bez újmy na obecnosti předpokládejme, že i > j (případně lze i, j zaměnit, protože (g i, g j ) = (g j, g i )). Dále indukcí dokažme, že i, j = 0, 1,..., n 1, i > j : (g i, g j ) = 0. (3.38) Nechť i = 1, pak je-li i > j 0, tak j = 0. Upravme dosazením předpisu (3.37) (g i, g j ) = (g 1, g 0 ) = (g 0 + α 0 Ap 0, g 0 ) = (g 0, g 0 ) + α 0 (Ap 0, g 0 ) = (g 0, g 0 ) (g 0,p 0 ) (Ap 0,p 0 ) 0, g 0 ) = 0, což platí díky volbě p 0 = g 0. Indukční krok - dokažme implikaci i, j = 0, 1,..., n 1, i > j : (g i, g j ) = 0 (g i+1, g j ) = 0. (3.39)
73 66 Iterační řešení soustav lineárních rovnic Dosadíme-li předpis (3.37) do (3.39), pak dostáváme (g i+1, g j ) = (g i + α i Ap i, g j ) = (g i, g j ) + α i (Ap i, g j ) = α i (Ap i, g j ), kde jsme využili indukčního předpokladu (g i, g j ) = 0. Jelikož pravděpodobně α i 0, je nutno ukázat, že pro i > j platí (Ap i, g j ) = 0. Využijeme-li předpis (3.36) dostaneme díky A-ortogonalitě vektorů p ( ) j 1 j 1 (Ap i, g j ) = Ap i, p j + β j,l p l = (Ap i, p j ) + β j,l (Ap i, p l ) = 0. l=0 l=0 Lemma Nechť je dána množina gradientů {g 0, g 1,..., g k+1 } a množina sdružených vektorů {p 0, p 1,..., p k } zkonstruovaná z množiny gradientů A-ortogonalizačním procesem (3.35). Pak platí { = 0 pro j < k, (Ap j, g k+1 ) = 0 pro j = k. Důkaz. Nejdříve si všimněme, že předpis (3.37) lze jednoduše upravit na tvar Ap k = 1 α k (g k+1 g k ). (3.40) Pak dosazením předpisu (3.40) do levé strany dokazovaného tvrzení získáme ( (Ap j, g k+1 ) = (g k+1, Ap j ) = g k+1, 1 ) (g j+1 g j ) = 1 (g k+1, g j+1 ) 1 (g k+1, g j ). α j α j α j Při volbě j < k je díky ortogonalitě gradientů (Věta 3.34) tento výraz nulový a naopak při volbě j = k je tento výraz roven (Ap j, g k+1 ) = 1 α k (g k+1, g k+1 ). Jelikož předpokládáme nenulové gradienty, tak je poslední výraz nenulový. Poznámka Přímým důsledkem předchozí věty 3.35 je β k+1,i = (Ap { i, g k+1 ) = 0 pro i < k, = (Ap i, p i ) 0 pro i = k. Z toho vyplývá, že ze všech koeficientů β k+1,i je nenulový jediný koeficient β k+1 := β k+1,k = (Ap k, g k+1 ) (Ap k, p k ) Využitím předchozí věty lze předpis (3.35) zjednodušit na tvar. (3.41) p k+1 = g k+1 β k+1 p k = g k+1 (Ap k, g k+1 ) (Ap k, p k ) p k, (3.42) což znamená, že při výpočtu nového -sdruženého směru vystačíme pouze s jediným sdruženým směrem z předchozí iterace.
74 3.3 Gradientní metody 67 Algoritmus CG a jeho vlastnosti Zhrneme-li všechna předchozí pozorování, můžeme sestavit algoritmus metody sdružených gradientů. Algoritmus 7 Input: x 0, A, b,přesnost ǫ > 0 METODA SDRUŽENÝCH GRADIENTŮ 1: g 0 := Ax 0 b 2: p 0 := g 0 3: k := 0 4: while g k ǫ b do 5: α k := (p k,g k )/(Ap k,p k ) 6: x k+1 := x k + α k p k 7: g k+1 := Ax k+1 b 8: β k+1 := (Ap k,g k+1 )/(Ap k,p k ) 9: p k+1 := g k+1 β k+1 p k 10: k := k : end while Output: x k Lemma (pomocné) Nechť {x 0, x 1, x 2,... } jsou postupně aproximace generované metodou sdružených gradientů, nechť {g 0, g 1, g 2,... } jsou gradienty v těchto aproximacích a {p 0, p 1, p 2,... } jsou příslušné sdružené vektory. Pak platí následující tvzení a) k 0 : (Ap k, p k ) = (Ap k, g k ), b) k 0 : (Ap k, g k ) (Ag k, g k ), c) i > j 0 : (g i, p j ) = 0, d) k 0 : (g k, g k ) = (g k, p k ), e) a, b R : ab 1(a + 4 b)2. (3.43) Důkaz. a) Připomeňme předpis (3.42) Pak dosazením a úpravou získáme p k = g k β k p k 1. (3.44) (Ap k, p k ) = (Ap k, g k β k p k 1 ) = (Ap k, g k ) β k (Ap k, p k 1 ) = (Ap k, g k ). b) Dosadíme-li rovnici (3.44) do levé strany dokazované nerovnosti, získáme (Ap k, g k ) = (Ag k, g k ) β k (Ap k 1, g k ).
75 68 Iterační řešení soustav lineárních rovnic Dále dostadíme za β předpis (3.34). Získáme (Ap k, g k ) = (Ag k, g k ) (Ag k,p k 1 ) (Ap k 1,p k 1 ) k 1, g k ) = (Ag k, g k ) (Ag k,p k 1 ) 2 (Ap k 1,p k 1 ) Zlomek, který odečítáme je však vždy nezáporný, protože čitatel: (Ag k, p k 1 ) 2 0 (druhá mocnina) jmenovatel: (Ap k 1, p k 1 ) = p T k 1 Ap k 1 0 (A je pozitivně definitní), a tedy (Ap k, g k ) = (Ag k, g k ) (Ag k, p k 1 ) 2 (Ap k 1, p k 1 ) (Ag k, g k ) c) Rekurentním dosazováním do předpisu (3.37) dostaneme i 1 g i = g i 1 α i 1 p i 1 = = g 0 + α k Ap k. (3.45) Dosadíme-li tento předpis do levé strany dokazované rovnice, získáme k=0 i 1 i 1 (g i, p j ) = (g 0 + α k Ap k, p j ) = (g 0, p j ) + α k (Ap k, p j ). k=0 Dle předpokladu je i > j, tedy sčítance v sumě jsou všechny nulové krom k = j (dle Věty 3.35), takže k=0 (g i, p j ) = (g 0, p j ) + α j (Ap j, p j ). Následným dosazením předpisu pro α k (viz (3.28)) dostaneme (g i, p j ) = (g 0, p j ) (g j, p j ) (Ap j, p j ) (Ap j, p j ) = (g 0, p j ) (p j, g j ). Dosazením předpisu (3.45) do posledního výrazu dostáváme ( ) j 1 (g i, p j ) = (g 0, p j ) (p j, g 0 ) α k (Ap k, p j ) a jelikož p k jsou A-ortogonální, získáme k=0 (g k, p j ) = (g 0, p j ) (g 0, p j ) = 0 d) Do levé stany dokazovaného tvrzení dosaďme předpis (3.44), získáme (g k, p k ) = (g k, g k β k p k 1 ) = (g k, g k ) β k (g k, p k 1 ). Užitím pomocného tvrzení (3.43) c) získáme (g k, p k ) = (g k, g k ).
76 3.3 Gradientní metody 69 e) Stačí upravit danou nerovnici ab 1 (a + b)2 4 4ab (a + b) 2 4ab a 2 + 2ab + b 2 0 a 2 2ab + b 2 0 (a b) 2, což platí pro libovolnou volbu a, b R. Lemma V algoritmu metody sdružených gradientů můžeme nahradit α k = g k 2 p T k Ap k Důkaz. Upravme přímo dané koeficienty, β k+1 = g k+1 2 g k 2. Původní předpis pro α k (3.28) lze upravit využím pomocného Lemma 3.37 d) Budeme vycházet z předpisu (3.41) α k = (p k, g k ) (Ap k, p k ) = (g k, g k ) (Ap k, p k ) = g k 2 (Ap k, p k ). β k+1 = (Ap k, g k+1 ) (Ap k, p k ) a postupně jej budeme upravovat. Nejdříve využijeme pomocné tvrzení (3.43) a) a následně dosadíme rovnici (3.40) a upravíme (Ap k, g k+1 ) (Ap k, g k ) = ( 1 α k (g k+1 g k ), g k+1 ) ( 1 α k (g k+1 g k ), g k ) dále pak pomocí tvrzení (3.38) lze zjednodušit na tvar = (g k+1, g k+1 ) (g k, g k+1 ) (g k+1, g k ) (g k, g k ), (g k+1, g k+1 ) (g k, g k+1 ) (g k+1, g k ) (g k, g k ) = (g k+1, g k+1 ) (g k, g k ) = g k+1 2 g k 2. Poznámka Pro řešení x soustavy Ax = b platí x K n = p 0,..., p n 1, = g 0,..., g n 1, = g 0, Ag 0,..., A n 1 g 0, kde v 0,..., v n 1 značí lineární obal množiny vektorů {v 0,... v n 1 }, viz [2]. Prostory K n nazýváme Krylovovy prostory.
77 70 Iterační řešení soustav lineárních rovnic 2. Metoda sdružených gradientů musí v přesné aritmetice nalézt řešení po n krocích. Může však nastat situace, že řešení x g 0, Ag 0,..., A m 1 g 0. Pak bude g m 1 = 0 a řešení je nalezeno po m krocích. 3. Na metodu sdružených gradientů můžeme taktéž pohlížet jako na iterační metodu. Hledání řešení ukončíme po splnění určité přesnosti (viz algoritmus). Lemma Pro chyby dvou po sobě jdoucích iterací metody sdružených gradientů platí ( ) 2 κ(a) 1 (Ae k+1, e k+1 ) (Ae k, e k ). (3.46) κ(a) + 1 Důkaz. Podobně jako u metody největšího spádu platí (Ae k+1, e k+1 ) (Ae k, e k ) = 1 (g k, p k ) 2 (Ap k, p k ).(Ae k, e k ). (3.47) K tomuto předpisu lze dojít stejným způsobem jako v důkazu věty Uvažujme zlomek na pravé straně rovnice (3.47). Dle pomocného tvrzení 3.37 d) a rovnosti (3.21) (která platí i pro sdružené gradienty) lze psát (g k, p k ) 2 (Ap k, p k ).(Ae k, e k ) = (g k, g k ) 2 (Ap k, p k ).(Ae k, e k ) = (g k, g k ) 2 (Ap k, p k ).(A 1 g k, g k ) a dle nerovnosti 3.37 b) platí (g k, g k ) 2 (Ap k, p k ).(A 1 g k, g k ) (g k, g k ) 2 (Ag k, g k ).(A 1 g k, g k ). (3.48) Jelikož matice soustavy A je symetrická a pozitivně definitní, existují její lineárně nezávislé a ortonormální vlastní vektory u 1,... u n. Protože jich je právě n, tak tvoří bázi vektorového prostoru R n a každý prvek tohto prostoru lze vyjádřit jako lineární kombinaci těchto vektorů. Tedy i pro vektor g k existují jednoznačné souřadnice ξ 1,..., ξ n R v bázi U = {u 1,..., u n } takové, že g k = ξ 1 u ξ n u n = Dosazením do pravé strany nerovnice (3.48) n ξ i u i. i=1 ( n ) 2 (g k, g k ) 2 (Ag k, g k ).(A 1 g k, g k ) = ( n λ i ξi 2 i=1 ξi 2 i=1 ). ( n i=1 ) (3.49) 1 λ i ξi 2
78 3.3 Gradientní metody 71 kde λ i > 0 jsou vlastní čísla pozitivně definitní matice A (připomeňme Au i = λ i u i, navíc u i jsou ortonormální). Našim úkolem bude tento zlomek dále odhadnout. Uvažujme nyní jmenovatel na pravé straně nerovnice (3.49). Pro konkrétní λ i ze spektra matice A, tj. se jedná o polynom tvaru λ i σ(a) := {λ 1,..., λ n } λ min, λ max, A i λ i + B i 1 λ i + C i, kde A i, B i, C i > 0 (3.50) a konstanty A i, B i, C i jsou tvořeny kombinací koeficientů ξ 2 1,..., ξ 2 n a zbývajících vlastních čísel (prvky množiny σ(a) {λ i }). Tato funkce však nemá lokální maximum pro kladná λ i, neboť druhá derivace funkce Ψ i, definované jako je kladná Ψ i (λ) := A i λ + B i 1 λ + C i, Ψ 1 i(λ) = A i B i λ 2 Ψ 1 i (λ) = 2B i λ 3 λ > 0 Ψ i (λ) > 0. Maximum tedy nastává v krajních bodech spektra, tedy v λ min nebo v λ max. Lze tedy tvrdit, že pro libovolné λ i Λ(A) a polynom tvaru (3.50) platí ^λ i {λ min, λ max } : A i λ i + B i 1 λ i + C i A i^λi + B i 1 ^λ i + C i. Nahradíme-li vhodně 1 všechna vlastní čísla nejmenším nebo největším vlastním číslem, získáme horní odhady všech polynomů tvaru (3.50). Pak pro jmenovatel na pravé straně nerovnice (3.49) platí ( n ) ( n ) ( n ) ( n i=1 λ i ξ 2 i. i=1 1 λ i ξ 2 i i=1 ^λ i ξ 2 i. i=1 ) 1 ξi 2 ^λ i. (3.51) Rozdělme kde n ξi 2 = S 1 + S 2, i=1 S 1 je součet druhých mocnin koeficientů ξ i příslušných k ^λ i = λ min S 2 je součet druhých mocnin koeficientů ξ i příslušných k ^λ i = λ max. 1 Toto nahrazení nebudeme prakticky realizovat - pro nás je důležité pouze to, že existuje.
79 72 Iterační řešení soustav lineárních rovnic Po tomto označení lze upravit pravou stranu nerovnice (3.51) a pokud využijeme šikovnou úpravu na čtverec, lze jednoduše získat ( n ) ( n ) ( ^λ i ξi 2. = (S 1 λ min + S 2 λ max ) i=1 i=1 1 ^λ i ξ 2 i ( (S 1 + S 2 ) 2 λmax λmin + S 1 S 2 λ min λ max = S S S 1 S 2 ( λ max λ min S 1 λ min + S 2 ) + λ min λ max = (S 1 + S 2 ) 2 + S 1 S 2 ( λ max λ min Využijeme-li navíc pomocné tvrzení 3.37 e), lze dále odhadnout ) 2 (S 1 + S 2 ) λ max ) λ min λ max ) 2. ( λmax λmin + λ min λ max Dosazením odvozených odhadů do původní rovnice (3.47) a úpravou získáme ( ) 2 (Ae k+1, e k+1 ) 1 κ(a) 1 1 ( (Ae k, e k ) κ(a) 2 =. + κ(a) 1) κ(a) ) 2. Tedy skutečně pro chyby dvou po sobě jdoucích iterací metody sdružených gradientů platí ( ) 2 κ(a) 1 (Ae k+1, e k+1 ) (Ae k, e k ). κ(a) + 1 Poznámka Často se nerovnost (3.46) udává s energetickou normou, viz Poznámka Předpodmínění Z předchozích kapitol jasně vyplývá, že konvergence gradientních metod závisí na čísle podmíněnosti matice soustavy. Čím menší je číslo podmíněnosti, tím rychleji metoda konverguje k předem zadané chybě. Pokud chceme zajistit rychlou konvergenci gradientních metod, musíme se pokusit nahradit původní soustavu lineárních rovnic Ax = b jinou ekvivalentní soustavou, jejíž číslo podmíněnosti bude nižší. Proces nahrazení soustavy Ax = b ekvivalentní soustavou Ax = b, kde číslo podmíněnosti nové matice soustavy A je menší než číslo podmíněnosti matice A, nazýváme předpodmínění. Zvolíme-li regulární matici C, která je blízká matici A v tom smyslu, že C 1 A má číslo podmíněnosti ideálně blízké 1, pak tzv. předpodmíněnou soustavu získáme přenásobením obou stran původní soustavy maticí C. A x = b C 1 Ax = C 1 b Ax = b, def A = C 1 def A, b = C 1 b.
80 3.3 Gradientní metody 73 Výsledná matice předpodmíněné soustavy A := C 1 A však nemusí být symetrická a ani positivně definitní. V takovém případě by něšlo na předpodmíňenou soustavu použít gradientních metod. Abychom se této situaci vyhli, volíme za matici předpodmínění matici ve tvaru C := C 1/2 C T/2, která je symetrická a positivně definitní. Pak původní soustavu Ax = b přenásobíme zleva C 1/2 a provedeme transformaci vektoru řešení x = C T/2 x. Tímto dostáváme novou předpodmíněnou soustavu A x = b, kde A := C 1/2 AC T/2, x := C T/2 x, b := C 1/2 b. Pro metodu sdružených gradientů pak platí g k = C 1/2 g k s k = C 1/2 g k v k = C 1/2 v k β k 1 = (As k,v k 1 ) (Av k 1,v k 1 ) v k = s k + β k v k ) α k = ( g k, v k ) ( A v = (C 1/2 g k,c = (g k,v k ) k, v k ) (C 1 2 AC 1 2 C 1 2 v k,c 2 1 v k ) x k+1 = x k + α k v k (Av k,v k ) Je tedy vidět, že se algoritmus liší pouze ve výpočtu β k 1 a konstrukce v k. Je nutné vypočítat vektor s k ze soustavy Cs k = r k. Proto je taktéž nutné, aby tato soustava byla snadno řešitelná. Algoritmus 8 Input: x 0, A, b, C, přesnost ǫ > 0 1: g 0 := Ax 0 b 2: s 0 := C 1 g 0 3: p 0 := s 0 4: while g k ǫ b do 5: α k := (s k,g k )/(Ap k,p k ) 6: x k+1 := x k + α k p k 7: g k+1 := g + α k Ap k 8: s k+1 := C 1 g k+1 9: β k+1 := (s k+1,g k+1 )/(s k,g k ) 10: p k+1 := s k+1 + β k+1 p k 11: k := k : end while METODA SDRUŽENÝCH GRADIENTŮ S PŘEDPODMÍNĚNÍM Output: x k
81 74 Iterační řešení soustav lineárních rovnic Jacobiho diagonální předpodmínění Jednou z nejjednodušších metod předpodmínění je použití diagonály matice A. Matice předpodmínění pak má tvar C = diag (A) C 1/2 = C T/2 = diag (A) 1/2 = diag ( a ii ). Tento typ předpodmínění není příliš robustní a největšího efektu dosáhne u soustav, kde v matici soustavy A výrazně dominují diagonální prvky, tj. jsou výrazně větší než prvky mimodiagonální. Symmetric successive over-relaxation method (SSOR) Významnějšího efektu předpodmínění u obecnějších typů matic je možné dosáhnout využitím tzv. SSOR metody. Matice předpodmínění se konstruuje následujícím způsobem A = D + L + L T C ω = 1 ( 1 D + L)( 1 2 ω ω ω D) 1 ( 1 D + ω L)T, 0 < ω < 2 C ω = ( 1 D + L)( 1 2 ω ω ω D) 1/2. Velmi efektivní implementace této metody je využití tzv. Eisenstatova triku. Výpočetní náročnost metody předpodmíněných gradientů se pak prakticky nezvyšuje oproti použití standartní metody sdružených gradientů. Neúplná Choleského faktorizace Nejrobustnějším typem předpodmínění, se kterým se seznámíme je tzv. neúplná Choleského faktorizace. Jak je patrné z jejího názvu, vychází z Choleského rozkladu, se kterým jste se seznámili v předmětu Lineární algebra [2]. Nejprve si tedy zopakujme co se rozumí pod pojmem Choleského rozklad. Věta (Choleského rozklad) Nechť A R n,n je symetrická positivně definitní matice. Pak existuje jednoznačně daná dolní trojuhelníková matice L R n,n s kladnými diagonálními prvky taková, že A = LL T. (3.52) Důkaz. Viz [19]. Myšlenka neúplné Choleského faktorizace spočívá v nalezení matice L, která je blízká matici L. Pak matice předpodmínění pomocí neúplné Choleského faktorizace má tvar C = L L T, C 1/2 = L.
82 3.3 Gradientní metody 75 Očividně čím více se bude matice L blížit matici L z plného Choleského rozkladu, tím blíže bude matice A k jednotkové matici, která má číslo podmíněnosti 1. Speciálně pokud bychom vzali L = L, dostáváme ideální předpodmínění. Je však jasné, že použitím metody předpodmíněných sdružených gradientů bychom pak nemohli překonat co do výpočetní náročnosti Cholekého rozklad. Takový typ předpodmínění by proto nedával smysl. Vraťme se tedy ke konstrukci matice L. V principu existují 2 základní přístupy k sestavení této matice. V obou případech je konstrukce založena na sestavování matice L jako v případě standardního Choleského rozkladu (viz [2] a [1]), s tím, že některé prvky matice L nebudeme do výsledného faktoru zapisovat. Podívejme se tedy na tyto dva přístupy. 1. Neúplný rozklad podle vzorku Pokud je některý prvek [A] i,j nulový, položíme odpovídající [ L] i,j automaticky roven nule. Počet operací nutných k výpočtu je pak mnohem menší. Tento postup je obvzláště efektivní, pokud původní matice soustavy A je řídká, pak zřejmě i matice předpodmínění C = L L T bude řídká. Při tomto zjednodušení však není zaručeno, že matice C bude positivně definitní. Toto lze však napravit přenásobením diagonálních prvků matice A vhodnou konstantou ω Neúplný rozklad podle hodnoty Vypočtený nový prvek [ L] i,j zanedbáváme, tj. položíme roven nule, pokud je relativně menší než diagonální prvek matice A, tj. L i,j ε A i,i. Tento spůsob zaručuje positivní definitnost výsledné matice předpodmínění, nicméně tato matice může mít více nenulových prvků než původní matice. Je zřejmé, že pro volbu ε = dostáváme úplnou Choleského faktorizaci. Volbou většího ε můžeme dosáhnout lepšího efektu předpodmínění a tím i menšího počtu iterací metodou sdružených gradientů. Toto je však vyváženou větší výpočetní náročností sestavení matice předpodmínění a následného výpočtu předpodmíněného gradientu s k v každém kroce metody PCG. Výsledná efektivita tak nemusí být zřejmá a liší se případ od případu.
83 76 Iterační řešení soustav lineárních rovnic Algoritmus 9 Input: A, přesnost ǫ > 0 1: n := velikost A 2: for j = 1,...,ndo 3: v = s A j j 1 [L] j,k s L k 4: s = 1 v [v]j k=1 5: for i = j,...,ndo 6: if s i < ǫ A j,j then 7: Lj,i = 0 8: else 9: Lj,i = s i 10: end if 11: end for 12: end for Output: L NEÚPLNÁ CHOLESKÉHO FAKTORIZACE Více o předpodmiňovacích technikách lze nalézt například v [18], případně [22]. Příklad Porovnejte rychlosti numerických řešičů soustav lineárních rovnic uvedených v této kapitole na testovací soustavě kde Ax = b, A = fivediag ( 1, 1, 4, 1, 1) R n,n, b = a volte různou dimenzi úlohy n R n Řešení. Pro požadovanou přesnost ε = 10 4 získáme následující počty iterací pro jednotlivé metody
84 3.3 Gradientní metody jacobi gauss seidel nejvetsi spad sdruzene gradienty Obr. 3.11: Počet iterací algoritmů pro řešení soustavy lineárních rovnic pro různou dimenzi úlohy.
85 78 Kapitola 4 Výpočet vlastních čísel a vektorů matic Z S V Průvodce studiem J Další velmi významnou skupinou úloh lineární algebry je problém hledání vlastních čísel a vlastních vektorů. Jejich fyzikální interpretace spočívá v popisu vlnění či vibrací, nacházejí však uplatnění i více teoretické při dělení grafů apod. Největší a nejmenší vlastní číslo jsme potřebovali i v předchozí kapitole pro výpočet čísla podmíněnosti. V této kapitole se proto seznámíme se základními metodami řešení těchto úloh. Nejprve se budeme zabývat tzv. částečným problémem vlastních čísel, kdy budeme hledat jen několik vlastních čísel a na závěr si ukážeme i řešení úplného problému, kdy výstupem numerických metod bude celé spektrum matice. 4.1 Výpočet charakteristického polynomu Nejprve si zopakujme pojmy vlastních čísel a vlastních vektorů. Definice 4.1. Nechť A R n,n je matice. Jestliže existuje nenulový vektor e C n a skalár λ C tak, že Ae = λe, pak se λ nazývá vlastní číslo matice A, e se nazývá vlastní vektor příslušný k λ a (λ, e) se nazývá vlastní dvojice matice A.
86 4.1 Výpočet charakteristického polynomu 79 Definice 4.2. Pod pojmem charakteristický polynom matice A rozumíme polynom p(λ) := det(a λi) (4.1) a pojmem charakteristická rovnice matice A rozumíme rovnici p(λ) = 0. (4.2) Analytický postup pro nalezení vlastních čísel matice spočívá v sestavení charakteristického polynomu (4.2) a následně nalezení jeho kořenů, tj. řešení charakteristické rovnice (4.2) (viz např. [6]). Příklad 4.3. Nalezněte vlastní čísla matice ( 4 2 A := 1 2 ). Řešení. Nejdříve sestavíme charakteristický polynom dosazením do předpisu (4.2) p(λ) = det(a λi) = 4 λ λ = (4 λ)(2 λ) ( 2).1 = λ2 6λ + 10 a vlastní čísla jsou kořeny tohto charakteristického polynomu, tj. jsou řešením rovnice λ 2 6λ + 10 = 0. Využitím např. diskriminantu získáme hodnoty λ 1 = 3 + i, λ 2 = 3 i. Čtenář si jistě všiml základního nedostatku výše uvedeného postupu. Problém nečiní hledání kořenů charakteristického polynomu (lze použít například některý z algoritmů z kapitoly 2), ale sestavení samotného charakteristického polynomu pomocí symbolického výpočtu deteminantu. Pro matici řádu n je nutno provést (n 1)n! součinů, což pro matice vyšších řádů je prakticky nemožné Geršgorinova věta Nejjednodušší postup, jak lokalizovat spektrum matice se skrývá v následující větě. Lemma 4.4. (Geršgorinova) Všechny vlastní čísla matice A R n leží ve sjednocení kruhů S := S 1 S 2... S n, kde n S i := {z C : z a ii a ij }, i = 1... n. j=1,j i
87 80 Výpočet vlastních čísel a vektorů matic Příklad 4.5. Nechť je dána matice A = Lokalizujte spektrum této matice pomocí Geršgorinovy věty. Řešení. Prostým dosazením do předpisu ve větě (4.4) získáme předpisy pro jednotlivé kruhy S 1 := {z C : z = 4} S 2 := {z C : z = 2} S 3 := {z C : z = 2} S 4 := {z C : z = 2} a výsledek lze zakreslit do Gaussovy roviny, viz Obrázek 4.1. Spektrum zadané matice leží ve sjednocení těhto kruhů. Obr. 4.1: Příklad 4.5, lokalizace spektra pomocí Geršgorinovy věty. Poznámka 4.6. O vlastních číslech reálné symetrické matice víme, že jsou reálná (viz [2]). V takovém případě se Geršgorinovy kruhy redukují na intervaly reálných čísel a spektrum matice pak leží ve sjednocení těchto intervalů Krylovova metoda V úvodu kapitoly jsme se zmínili, že jedním z možných postupů výpočtu vlastních čísel matice je řešení charakteristické rovnice. Výpočet charakteristického polynomu pomocí determinantu je však netriviální úloha. Ukažme si nyní, jak charakteristický polynom nalézt mnohem efektivněji.
88 4.1 Výpočet charakteristického polynomu 81 Za tímto účelem uvažujme charakteristický polynom matice A ve tvaru n 1 p(λ) := λ n + b i λ i, (4.3) kde λ je libovolné vlastní číslo matice A. Obecně samozřejmě nemusí být zaručeno, že charakteristický polynom má koeficient u nejvyšší mocniny roven 1, nicméně na řešení charakteristické rovnice toto zjednodušení nemá vliv, neboť celou rovnici můžeme vydělit nenulovým koeficientem u nejvyšší mocniny. Metoda výpočtu charakteristického polynomu je založena na následující větě. i=0 Věta 4.7. (Cayley-Hamilton) Nechť p(λ) je charakteristický polynom matice A. Pak p(a) = O. Důkaz. Viz [2]. Dosaďme do předpisu charakteristického polynomu (4.3) místo vlastního čísla matice matici A, tj. n 1 p(a) = A n + b i A i. Pak dle Věty (4.7) platí p(a) = O. Přenásobíme-li tuto soustavu libovolným y R n zprava, získáme a po drobné úpravě i=0 n 1 A n y + b i A i y = o i=0 n 1 b i A i y = A n y. i=0 Předchozí rovnici lze zapsat v maticové formě Ab = p, (4.4) kde A := ( A 0 y, A 1 y, A 2 y,... A n 1 y ), p := A n y, b := (b 0, b 1,..., b n 1 ) T. Podařilo se nám nalézt postup, kterým lze získat koeficienty charakteristického polynomu bez nutnosti symbolického výpočtu determinantu jako řešení soustavy lineárních rovnic (4.4).
89 82 Výpočet vlastních čísel a vektorů matic Algoritmus 10 Input: A 1: n := velikost A 2: y := libovolný jednotkový vektor dimenze n 3: for j = 1,...,ndo 4: sãj = Aj 1 y 5: end for 6: b = A n y 7: b je řešením soustavy Ãb = b KRYLOVOVA METODA Output: b 0,...,b n 1 Poznámka 4.8. Pro velké matice je však sestavení matice soustavy poměrně náročné, neboť obsahuje n násobení matice a vektoru. Příklad 4.9. Sestavte charakteristický polynom matice A = pomocí Krylovovy metody. Řešení. Nejdříve zvolíme libovolný vektor y R n. Jistě každého napadne, že nulový vektor není právě vhodnou volbou, jelikož soustava (4.4) by měla nulovou matici soustavy a nulový vektor pravých stran. Takové rovnici pak vyhovuje libovolné b R n. Volme tedy y = [1, 0, 0, 0] T. Sestavme soustavu (4.4). Pro jednotlivé sloupce matice A a vektor p platí s A 1 = A 0 y = y = (1, 0, 0, 0) T s A 2 = A 1 y = As A 1 = (10, 1, 1, 2) T s A 3 = A 2 y = As A 2 = (106, 16, 6, 0) T s A 4 = A 3 y = As A 3 = (1082, 192, 92, 212) T p = A 4 y = As A 3 = ( 11528, 2134, 814, 44) T. Hledaná soustava má tvar b =
90 4.1 Výpočet charakteristického polynomu 83 a jejím řešením (analyticky nebo lépe využitím libovolné metody z Kapitoly 3) je b = (2684, 22, 132, 0) T. Dosazením hodnot do předpisu (4.3) získáme charakteristický polynom v tvaru p(λ) = λ 4 132λ 2 22λ Výpočet charakteristického polynomu třídiagonální matice V kapitolách (4.3.2) a (4.3.3) si představíme numerické metody pro převod reálných symetrických matic na třídiagonální matice. Je tedy důležité si ukázat, jak je možné efektivně sestavit charakteristický polynom třídiagonálních matic. Definice Pojmem třídiagonální matice rozumíme matici v tvaru a 1 b c 1 a 2 b c 2 a 3 b T n := , c n 3 a n 2 b n c n 2 a n 1 b n c n 1 a n kde a i, b j, c j R, i = 1,..., m, j = 1,..., n 1. Lemma Nechť je dána třídiagonální matice T n. Pak pro charakteristický polynom matice T n platí p n (λ) = (a n λ)p n 1 (λ) b n 1 c n 1 p n 2 (λ), kde p n 1 a p n 2 jsou charakteristické polynomy matic T n 1 a T n 2 a p 0 (λ) = 1, p 1 (λ) = a 1 λ. Důkaz. Plyne z rozvoje determinantu podle sloupce a z definice charakteristického polynomu. Příklad Určete charakteristický polynom matice A =
91 84 Výpočet vlastních čísel a vektorů matic Řešení. Postupně určíme dle Věty 4.11 potřebné polynomy p 0 (λ) = 1 p 1 (λ) = a 1 1 = 1 λ p 2 (λ) = (a 2 λ)p 1 (λ) b 1 c 1 p 0 (λ) = (2 λ)(1 λ) + 12 = λ 2 3λ + 14 p 3 (λ) = (a 3 λ)p 2 (λ) b 1 c 1 p 1 (λ) = (3 λ)(λ 2 3λ + 14) + 10.(1 λ) = λ 3 + 6λ 2 33λ + 52 p 4 (λ) = (a 4 λ)p 3 (λ) b 1 c 1 p 2 (λ) = (3 λ)( λ 3 + 6λ 2 33λ + 52) + 0.(λ 2 3λ + 14) = λ 4 8λ λ 2 118λ Tedy charakteristický polynom dané matice má tvar p(λ) = λ 4 8λ λ 2 118λ Poznámka Numerický výpočet koeficientů p n (λ) však bohužel neumožňuje symbolickou manipulaci s proměnnou λ. Nicméně polynomy lze nahradit aritmetickými vektory, jejichž složky reprezentují koeficienty u mocnin λ. Označme koeficienty v polynomu p n (λ) jako vektor p n R n+1 (daný polynom je n-tého stupně, proto bude mít n + 1 koeficientů). Tedy polynom ve tvaru bude mít příslušný vektor koeficientů p n (λ) = γ 0 λ 0 + γ 1 λ γ n λ n p n = (γ 0, γ 1,..., γ n ). Zbývá odvodit rekurentní předpis ve Větě 4.11 pro vektory koeficientů. Nechť p n 2 = (α 0, α 1,..., α n 2 ) p n 1 = (β 0, β 1,..., β n 1 ), pak kde p n = (γ 0, γ 1,..., γ n ), γ 0 = α n β 0 b n 1 c n 1 α 0 γ i = α n β i b n 1 c n 1 α i, i = 1,..., n 2 = α n β n 1 + β n 2 γ n = β n 1. γ n Výpočet dominantního vlastního čísla V následujícím textu se zaměříme na metody řešící částečný problém vlastních čísel. Zejména si představíme metody, které nám umožní vypočítat tzv. dominantní
92 4.2 Výpočet dominantního vlastního čísla 85 vlastní číslo. Případné další vlastní čísla budeme schopni dopočíst pomocí maticové redukce či posunem spektra. Nejprve si však zavedeme pojem dominantního vlastního čísla. Definice Nechť je dána matice A a vlastní čísla splňující nerovnost λ 1 > λ 2... λ n a nechť x 1, x 2, x 3,... x n R n jsou odpovídající lineárně nezávislé vlastní vektory. Pak dominantním vlastním číslem rozumíme vlastní číslo λ 1. V následujícím výkladu se zaměříme na mocninnou metodu, která dokáže nalézt dominantní vlastní číslo Mocninná metoda Předpokládejme, že λ 1 > λ 2 λ 3... λ n jsou vlastní čísla matice A řádu n, a nechť U = {x 1,..., x n } je množina jim odpovídajících lineárně nezávislých vektorů. Pak množina U tvoří bázi vektorového prostoru R n a libovolný vektor v 0 R n lze vyjádřit jako lineární kombinaci prvků množiny U, tj. existují reálné konstanty α 1,... α n takové, že Definujme posloupnost {v k }, v k R n takovou, že v 0 je libovolné takové, že (v 0, x 1 ) 0 v k vypočteme předpisem v 0 = α 1 x α n x n. (4.5) v k = Av k 1. (4.6) Dosazením lineární kombinace (4.5) do předpisu (4.6) získáme v k = Av k 1 = A k v 0 = A k n α i x i = i=1 Tento předpis se nám hodí v důkazu Věty n α i A k x i = i=1 n α i λ k i x i. Definice (Schwarzova konstanta) Nechť y R n takové, že (y, x 1 ) 0, kde x 1 je vlastní vektor odpovídající dominantnímu vlastnímu číslu. Číslo σ k := (y, v k ) = (y, A k v 0 ) nazýváme Schwarzovou konstantou. i=1
93 86 Výpočet vlastních čísel a vektorů matic Lemma Podíl Schwarzových konstant σ k+1 = (y, Ak+1 v 0 ) σ k (y, A k v 0 ) konverguje k dominantnímu vlastnímu číslu λ 1, tj. Důkaz. Upravme σ k+1 lim = λ 1. k σ k σ k+1 = (y, Ak+1 v 0 ) σ k (y, A k v 0 ) = n α i λ k+1 i (y, x i ) n. α i λ k i (y, x i) i=1 i=1 1 λ k 1 1 λ k 1 = λ α 1 λ k 1 1 (y, x λ k 1 ) + n λ α i λ k i i (y, x 1 λ k i ) 1 i=2 λ α k 1 1 (y, x λ k 1 ) + n λ α k i i (y, x 1 λ k i ) 1 i=2 a jelikož dostáváme lim k ( λi λ 1 (y, A k+1 v 0 ) lim k (y, A k v 0 ) ) k λ k i = lim k λ k 1 = 0, = lim k a 1 λ 1 (y, x 1 ) a 1 (y, x 1 ) = λ 1. Algoritmus 11 Input: v 0, y,přesnost ǫ > 0 MOCNINNÁ METODA 1: v 1 := Av 0 2: λ 1,1 := (y,v 1 )/(y,v 0 ) 3: k := 1 4: while Av k λ 1,k v k ǫ do 5: v k+1 := Av k 6: λ 1,k+1 := (y,v k+1 )/(y,v k ) 7: k := k + 1 8: end while Output: λ 1,k,v k Poznámka V průběhu algoritmu může nastat, že složky vlastního vektoru budou velmi rychle růst. Toto je důsledek toho, že v k+1 = A k v 0 a s vysokými mocninami se budou složky velmi zvětšovat. To má ovšem za následek velké chyby v počítačové aritmetice. Proto je nutné použít normalizaci vlastních vektorů.
94 4.2 Výpočet dominantního vlastního čísla 87 Algoritmus 12 Input: v 0,přesnost ǫ > 0 1: y 0 := v 0 / v 0 2: v 1 := Ay 0 3: y 1 := v 1 / v 1 4: λ 1,1 := v 1 5: k := 1 6: while Ay k λ 1,k y k ǫ do 7: v k+1 := Ay k 8: y k+1 := v k+1 / v k+1 9: λ 1,k+1 := v k+1 10: k := k : end while NORMOVANÁ MOCNINNÁ METODA Output: λ 1,k,y k Příklad Otestujte algoritmus normované mocinné metody na matici A def = Nalezněte touto metodou dominantní vlastní číslo s přesností ε = Řešení. Jako počáteční vektor volme v 0 = (1, 0, 0, 0) T. Pak velikost dominantního vlastního čísla λ 1 v průběhu iterací je znázorněn na Obrázku 4.2. Algoritmus je ukončen po 12-ti iteracích, dominantním vlastním číslem s požadovanou přesností je λ 1 = Pro symetrické matice počítáme místo podílů Schwarzových konstant tzv. Rayleighovy podíly: r(v k ) def = (v k, v k+1 ) (v k, v k ), lim (v k, v k+1 ) = λ 1. k (v k, v k ) Pokud však uvažujeme pouze symetrické positivně definitní matice A, pak jsou všechna vlastní čísla kladná reálná, tedy je lze uspořádat λ 1 > λ 2 λ 3... λ n. (4.7) Kromě konvergence k největšímu vlastnímu číslu mají Rayleighovy podíly mnohem silnější vlastnost.
95 88 Výpočet vlastních čísel a vektorů matic λ k Obr. 4.2: Příklad numerický test algoritmu normované mocninné metody. Lemma Nechť A R n,n je symetrická positivně definitní reálná matice s vlastními čísly (4.7). Pak pro libovolné v R n platí Důkaz. Označme λ n v T v v T Av λ 1 v T v. (4.8) A = UΛU T jako spektrální rozklad matice A (kde U R n je ortogonální matice vlastních vektorů a Λ R n je diagonální matice s vlastními čísly na diagonále). Pak úpravou získáme označme y ozn = U T v, pak v T Av = v T UΛU T v = (U T v) T Λ(U T v) (U T v) T Λ(U T v) = y T Λy = n λ i [y] 2 i. i=1 Očividně však n λ i [y] 2 i λ 1 y T y = λ 1 v T v, n λ i [y] 2 i λ n y T y = λ n v T v. i=1 i=1
96 4.2 Výpočet dominantního vlastního čísla 89 Poznámka Uvažujme-li v 0, pak rovnici (4.8) lze upravit λ n vt Av v T v λ 1 a získat tak odhad pro Rayleighovy podíly Posun a redukce spektra Mocninná metoda slouží pouze k výpočtu dominantního vlastního čísla. Pokud bychom chtěli vypočíst i jiná vlastní čísla, museli bychom využít některých maticových operací, které upravují spektrum požadovaným způsobem. Podívejme se na některé z nich. Lemma (Posun spektra) Nechť λ je vlastní číslo matice A a v odpovídající vlastní vektor. Pak matice A qi, q R má vlastní číslo λ q a stejný vlastní vektor v. Důkaz. (A qi)v = Av qv = λv qv = (λ q)v Poznámka Výše uvedené věty se dá využít například na zjištění nejmenšího vlastního čísla mocninnou metodou. Je-li Pak A λ 1 I má vlastní čísla přičemž bude platit λ 1 > λ 2... λ n 1 > λ n 0, λ 2 λ 1,..., λ n 1 λ 1, λ n λ 1 λ n λ 1 > λ n 1 λ 1 > > λ 2 λ 1 > 0 Použijeme-li tedy mocninnou metodu na takto upravenou matici, dostaneme dominantní vlastní číslo λ := λ n λ 1 a odtud λ n = λ + λ 1. Lemma (Maticová redukce) Nechť λ, v jsou vlastní číslo a vlastní vektor matice A. Nechť w je levý vlastní vektor λ, tj. A T w = λw, a nechť (v, w) = 1. Pak matice W def = A λvw T má místo vlastního čísla λ nulu a všechny ostatní vlastní čísla stejná.
97 90 Výpočet vlastních čísel a vektorů matic Důkaz. W v = Av λvw T v = Av λv = 0 Označme μ, x jako ostatní vlastní čísla a vlastní vektory. Pak W x = Ax λvw T x = Ax = μx Poznámka Maticové redukce se dá využít k výpočtu druhého dominantního čísla. Je-li λ 1 > λ 2 λ 3... λ n, můžeme vypočíst pomocí mocninné metody λ 1 a jemu odpovídající vlastní vektor v 1 i levý vlastní vektor w 1 aplikací mocninné metody na matici A T. Normováním w 1 = w 1 (v 1, w 1 ), pak splníme podmínku (v 1, w 1 ) = 1. Použitím maticové redukce W = A λ 1 v 1 w T 1 můžeme mocninou metodou spočítat vlastní číslo λ 1 a jemu odpovídající vlastní vektor, neboť původní dominantní vlastní číslo λ 1 se maticovou redukcí vynulovalo. Pochopitelně lze celý proces opakovat a získat tak λ 3, atd. Výpočet všech vlastních čísel je však tímto postupem výpočetně velmi náročný a nepoužívá se. Vhodnější je využití některé z metod pro úplný problém vlastních čísel. 4.3 Metody založené na podobnosti matic Na rozdíl od předchozí Kapitoly 4.2, kdy jsme se zabývali hledáním dominantního vlastního čísla, v dalším textu představíme metody pro hledání všech vlastních čísel a vlastních vektorů. Úlohu, která řeší všechny vlastní čísla a vektory matice nazýváme úplný problém vlastních čísel. Všechny metody, které si v následujícím textu představíme budou založeny na základní vlastnosti, které říkáme podobnost matic. Definice O maticích A, B R n,n řekneme, že jsou podobné, existuje-li regulární matice T taková, že B = T AT 1. (4.9) Poznámka Naopak pokud čtvercovou matici A přenásobíme zleva regulární maticí T a zprava inverzí T 1 (tj. (4.9)), získáme matici B, která je podobná matici A.
98 4.3 Metody založené na podobnosti matic 91 Lemma Podobné matice mají stejná vlastní čísla. Důkaz. Nechť A je libovolná čtvercová matice s vlastním číslem λ a příslušným vlastním vektorem u, tj. Au = λu. Přenásobíme-li předchozí rovnici libovolnou regulární maticí T zleva, získáme a jelikož T 1 T = I, lze upravit T Au = λt u, T AT 1 T u = λt u T AT 1 (T u) = λ(t u). Označíme-li B = T AT 1 a v = T u, pak předchozí rovnici lze zapsat ve tvaru Bv = λv. Tedy matice B má vlastní číslo λ (stejné jako matice A) jemuž odpovídá příslušný vlastní vektor v = T u. V následujícím výkladu se zaměříme na metody založené na Větě Nebudeme hledat vlastní čísla zadané matice A, nýbrž se budeme snažit nalézt vhodnou regulární matici T, která původní matici A převede na jednodušší matici B, která bude buď diagonání nebo alespoň třídiagonální. Z důvodu lepší stability výpočtů se jeví jako vhodnější použití místo regulární matice T tzv. matici ortogonální. Pokud navíc však zvolíme ortogonální matici T, výpočet inverze nebude nutný. Definice (Ortogonální matice) Ortogonální matice je symetrická regulární matice pro kterou platí Q 1 = Q T. Pak pro každou ortogonální matici platí Q 1 Q = Q T Q = I. Lemma Matice A R n,n je ortogonální, právě když její řádky (případně sloupce) tvoří ortonormální množinu vektorů. Důkaz. Rozepišme QQ T = r Q 1. r Q n [r Q 1... rn Q ] = (r Q 1, r Q 1 )... (r Q 1, r Q n ).. (r Q 1, rn Q )... (rn Q, rn Q )
99 92 Výpočet vlastních čísel a vektorů matic Pokud Q je ortogonální, pak QQ T = I (viz definice 4.28), tedy dle předchozí úpravy musí platit { i, j {1,..., n} : (r Q 1 pro i = j i, rq j ) =, 0 pro i j což je přesně definice množiny ortonormálních vektorů. Pokud Q je ortogonální matice, lze předpis pro podobné matice (4.9) zjednodušit na tvar B = QAQ T. (4.10) Algoritmus QR Věta Nechť A R n,n je regulární matice. Pak existují horní trojuhelníková matice R R n,n a ortogonální matice Q R n,n takové, že A = QR. (4.11) Důkaz. Důkaz této věty nebudeme zde uvádět, neboť je zložen na konstrukcí matice Q z původní matice A pomocí Gramova-Schmidtova ortonormalizačního procesu. Tento algoritmus je popsán na konci této podkapitoly. Jelikož Q v rozkladu (4.11) je ortogonální, lze jí využít jako matici podobnostní transformace. Nechť A k = Q k R k, pak předpis pro novou aproximaci bude mít tvar A k+1 = Q T k A k Q k = Q T k (Q k R k )Q k = R k Q k, A 0 = A. (4.12) Věta Nechť matice A je reálná a symetrická a nechť A 0, A 1, A 2,..., A k,... je posloupnost generovaná rekurzivním předpisem A 0 = A, A k+1 = R k Q k, k > 0, kde matice Q k, R k jsou QR rozkladem matice A k. Pak lim A k = D, k kde D je diagonální matice s vlastními čísly matice A na diagonále. Důkaz. Důkaz není zcela triviální, viz [15] nebo [16].
100 4.3 Metody založené na podobnosti matic 93 Poznámka Věta 4.31 garantuje konvergenci matice A k k diagonální matici, avšak obecně po nekonečně mnoha podobnostních transformacích Q T k A k Q k. Při praktickém výpočtu se spokojíme s maticí D, která má mimodiagonální prvky pouze blízké nule. Tato situace nastane po m krocích. Tedy výsledkem bude D = Q T A Q, kde Q := Q 1 Q 2... Q m je ortogonální matice jejíž sloupce aproximují ortonormální vlastní vektory odpovídající vlastním číslům v matici D. Diagonální prvky matice D jsou aproximacemi vlastních čísel v matici D. QR algoritmus pro výpočet vlastních čísel a vlastních vektorů matice A, můžeme shrnout do následujících kroků Algoritmus 13 Input: A, přesnost ǫ > 0 1: A 0 := A 2: n := velikost A 3: k := 0 4: while [A k ] i,j > ǫ, i,j = 1,...,n : i j do 5: najdi Q k,r k jako QR rozklad matice A k 6: A k+1 := R k Q k 7: k := k + 1 8: end while ALGORITMUS QR Output: A k Zbývá otázka, jak určit QR rozklad dané regulární matice. Matici A lze převést na ortogonální matici pomocí Gramova-Schmidtova ortonormalizačního procesu, který z množiny lineárně nezávislých vektorů {s A 1,..., s A n } (ze sloupců regulární matice A) vytvoří množinu ortonormálních vektorů {s Q 1,..., s Q n } (ortonormální sloupce ortogonální matice Q). Grammův-Schmitův ortonormalizační algoritmus lze nalézt například v [2]. V následujícím výkladu budeme pomocí s A 1, s A 2,..., s A n značit sloupce matice A, pomocí s 1, s 2,..., s n ortogonální sloupcové vektory vytvořené Gramovým-Schmitovým ortogonalizačním procesem a výsledné ortonormální sloupce matice Q pomocí s Q 1, s Q 2,..., s Q n. Pak Gramův-Schmitův ortonormalizační proces lze vyjádřit pomocí následujících
101 94 Výpočet vlastních čísel a vektorů matic rovnic s 1 = s A 1 s Q 1 = 1 s s 1 1 s 2 = s A 2 + α 1,2 s Q 1 s Q 2 = 1 s s 2 2 s 3 = s A 3 + α 1,3 s Q 1 + α 2,3 s Q 2 s Q 3 = 1 s s s n = s A n + α 1,n s Q 1 + α 2,n s Q α n 1,n s Q n 1 s Q n = 1 s s n n kde α jsou příslušné ortogonalizační konstanty. Jednoduchou úpravou předchozích rovnic lze získat s A 1 = s 1 s Q 1 s A 2 = α 1,2 s Q 1 + s 2 s Q 2 s A 3 = α 1,3 s Q 1 α 2,3 s Q 2 + s 3 s Q 3. s A n = α 1,n s Q 1 α 2,n s Q 2... α n 1,n s Q n 1 + s n s Q n nebo maticově A = Q s 1 α 1,2 α 1,3... α 1,n 0 s 2 α 2,3... α 2,n 0 0 s 3... α 3,n s n = QR. Předchozí pozorování lze šikovně zakomponovat do výsledného algoritmu. Algoritmus 14 Input: A 1: n := velikost A 2: R := nulová matice typu n n 3: forj:=1,...,ndo 4: v := s A j 5: fori:=1,...,j-1do KONSTRUKCE QR ROZKLADU 6: r i,j := (s Q i )T s A j 7: v := v r i,j s Q i 8: end for 9: r j,j := v 10: s Q j := v/ v 11: end for Output: Q,R
102 4.3 Metody založené na podobnosti matic 95 Příklad Nalezněte QR rozklad matice A := Řešení. Nejprve pomocí Grammova-Schmidtova ortonormalizačního procesu zkonstruujeme sloupce matice Q. [ ] s Q 1 = sa 1 = 1 s A 1 1 2, 2, 0 [ ] s Q 2 = sa 2 (sa 2,sQ 1 )sq 1 = 1 s A 2 (sa 2,sQ 1 )sq 1 6, 1 2 6, 6 [ ] s Q 3 = sa 3 (sa 3,sQ 2 )sq 2 (sa 3,sQ 1 )sq 1 = 1 s A 3 (sa 3,sQ 2 )sq 2 (sa 3,sQ 1 )sq 1 1 3, 3 1, 3, pak Q = [ ] s Q 1, s Q 2, s Q 3 = Pro konstrukci matice R využijeme předpis (4.11), získáme (s Q R = Q T 1, s A 1 ) (s Q 1, s A 2 ) (s Q 1, s A 3 ) A = (s Q 2, s A 1 ) (s Q 2, s A 2 ) (s Q 2, s A 3 ) = (s Q 3, s A 1 ) (s Q 3, s A 2 ) (s Q 3, s A 3 ) Příklad Otestujte rychlost konvergence algoritmu QR na různě-diagonálních testovacích maticích A 1 = diag (5) A 3 = 3-diag ( 1, 5, 1) A 5 = 5-diag ( 1, 1, 5, 1, 1) A 7 = 7-diag ( 1, 1, 1, 5, 1, 1, 1) A 9 = 9-diag ( 1, 1, 1, 1, 5, 1, 1, 1, 1). Volte různé dimenze testovacích matic. Řešení. Pro různou volbu dimenze matic n jsou počty iterací zobrazeny na obrázku 4.3. Poznámka Výpočet QR rozkladu pomocí Gramova-Schmidtova procesu je pro velké dimenze matic numericky nestabilní. Proto se v praxi k výpočtu QR rozkladu používají ortogonální matice, jako je Givensova matice rovinné rotace nebo Householderova matice rovinného zrcadlení, viz [1]. Tyto matice využijeme i v daším textu při řešení problému vlastních čísel.
103 96 Výpočet vlastních čísel a vektorů matic 2.5 x diag 3 diag 5 diag 7 diag 9 diag 1.5 it n Obr. 4.3: Rychlost konvergence QR a různě diagonální matice Givensova metoda V předchozí kapitole jsme si popsali QR algoritmus, který postupně nuluje mimodiagonální prvky. Tento postup je však poměrně zdlouhavý. Proto se nabízí postup, který by v konečném počtu kroků převedl matici A pomocí podobnostních tranformací na matici třídiagonální. Na tuto matici pak lze aplikovat zmiňovaný QR algoritmus, nebo lze přímo vyčíslit charakteristický polynom. K podobnostním transformacím využijeme ortogonálních matic rovinné rotace. Definice Maticí rovinné rotace rozumíme matici s předpisem cos φ... sin φ R φ i,j :=....., (4.13) sin φ... cos φ ve které se goniometrické funkce nachází v i-tém a j-tém řádku a sloupci.
104 4.3 Metody založené na podobnosti matic 97 Tato matice otáčí bod v rovině (i, j) o úhel φ kolem počátku. Obr. 4.4: Givensovy rotace. Poznámka Matice rovinné rotace je ortogonální. Cílem Givensovy metody je nalézt ortogonální matici R takovou, že T := R T AR (4.14) je třídiagonální matice. Přitom matice A a T jsou podobné a tudíž mají stejná vlastní čísla. Hledejme matici rovinné rotace R p,q,r v rovině (p, q), která pomocí transformace A = R T p,q,ra (4.15) nuluje prvek [A] q,r a mění jen prvky v řádcích p, q. Prvek [A] q,r získáme jako skalární skalární součin q-tého řádku matice R T p,q,r a r-tého sloupce matice A, tj. A q,r = (r RT q, s A r ) = cos φa p,r sin φa q,r = 0. Pokud nyní přenásobíme rovnici koeficientem α := 1 A 2 p,r + A q,r, pak získáme rovnici cos φ(αa p,r ) sin φ(αa q,r ) = 0,
105 98 Výpočet vlastních čísel a vektorů matic s triviálním řešením cos φ = αa q,r sin φ = αa p,r, (4.16) které splňuje podmínky oboru hodnot goniometrických funkcí cos φ, sin φ 1, 1. Toto řešení lze přímo využít pro sestavení dané matice rotace, není potřeba vyčíslovat goniometrické nebo cyklometrické funkce. Pokud provedeme na matici A podobnostní transformaci A = R T p,q,rar p,q,r, (4.17) mění se prvky v řádcích p, q a sloupcích p, q. Pokud transformace (4.17) nuluje prvek [A] r,q, je také prvek na pozici [A] q,r vynulován. Navíc matice A a A jsou podobné. Příklad Nechť je dána matice A = Nalezněte matici B, která má na pozici [3, 1] nulový prvek, tj. [B] 3,1 = 0, a je s maticí A podobná. Využijte vhodnou matici Givensových rotací. Řešení. Nejdříve dosaďme do předpisů (4.16) dané hodnoty r = 3, q = 1 (dle pozice nulovaného prvku [A] r,q ) a libovolné p {2, 4}. Při volbě p = 2 získáme sin φ = cos φ = [A] 3,1 [A] 2 3,2 +[A] 2 3,1 [A] 3,2 [A] 2 3,2 +[A] 2 3,1 = 1 2 = 1 2 a dosadíme do předpisu matice Givensových rotací (4.3.2) na pozice p, q cos φ sin φ R φ 2,1 = sin φ cos φ , R 1 2,1,3 = Následně provedeme transformaci podobnosti (4.14) B = R2,1,3AR T 2,1,3 =
106 4.3 Metody založené na podobnosti matic 99 Při volbě p = 4 dopadne situace obdobně R 4,1,3 = , B = RT 4,1,3AR 4,1,3 = Algoritmus Givensových rotací je pak založen na opakování podobnostních transformací A k = R T k A k 1 R k, k = 1,... m, A 0 = A, kde matice R k postupně nulují prvky mimo třídiagonály. Hledaná matice podobnostní transformace má tedy tvar R = R 1 R 2 R 3... R m. Indexy p, q, r v předpisu (4.17) je však nutno volit tak, aby algoritmus nezaplňoval prvky, které byly předchozích krocích již vynulované. K nulování je proto nutno přistupovat systematicky. Na následujícím schématu je pořadovými čísly naznačen postup nulování na matici R 6,6. x x x x x x x x x x x x x x x x Pak algoritmus převodu symetrické matice na třídiagonální pomocí Givensových rotací má tvar Algoritmus 15 Input: A 1: T := A 2: n := velikost A 3: for k := 2,...,ndo 4: for i := k + 1,...,n do 5: sestav R k,i,k 1 6: T := R T k,i,k 1 TR k,i,k 1 7: end for 8: end for Output: T GIVENSOVA METODA
107 100 Výpočet vlastních čísel a vektorů matic Poznámka Transformace s maticí R k,i,k 1 znamená, že je nulován prvek [A] k 1,i a přitom se mění pouze řádky a sloupce s indexy k a i. Navíc ty řádky, které jsou již vynulovány, zůstávají nulové. ( ( ( x x 0 x x x 0 0 x x 0 0 k = 2 x x x x k = 2 x x x x x x x 0 i = 3 0 x x x 0 x x x k = 3 0 x x x x x x x i = 4 0 x x x i = x x k = 2 i = 3 ( k = 2 i = 4 ( ( k = 3 i = 4 A 1 = R T 2,3,1A 0 R 2,3,1 A 2 = R T 2,4,1A 1 R 2,4,1 A 3 = R T 3,4,2A 2 R 3,4,2s V případě symetrické matice je výsledkem třídiagonální matice podobná původní matici. Hledat vlastní čísla pak můžeme iteračně algoritmem QR (viz Kapitola 4.3.1) nebo přes charakteristický polynom třídiagonální matice (viz Kapitola 4.1.3). Poznámka Algoritmus můžeme použít i na nesymetrické matice. Pak obdržíme matici v tzv. dolním Hessenbergově tvaru, t.j x x x x x x x x x x x x x... x x x x x... x V tomto případě je také možné, podobně jako u třídiagonální matice, nalézt rekurzivní vztah pro nalezení charakteristického polynomu Householderova metoda Obdobně jako matice rovinné rotace v případě Givensovy transfromace, můžeme k výpočtu QR rozkladu použít tzv. matice rovinného zrcadlení. Aplikaci matic rovinného zrcadlení taktéž říkáme Householderovy transformace. Definice Maticí rovinného zrcadlení rozumíme matici s předpisem 1 2w1 2 2w 1 w w 1 w n P := I 2ww T 2w 2 w 1 1 2w w 2 w n = w n w 1 2w n w wn 2 (4.18) kde w T w = 1.
108 4.3 Metody založené na podobnosti matic 101 Obr. 4.5: Householderovo zrcadlení. Poznámka Matice rovinného zrcadlení je ortogonální a symetrická. Ještě efektivněji než-li v případě Givensovy metody můžeme pro transformaci matice na třídiagonální tvar využít Housholderových transformací pomocí matic rovinného zrcadlení. Vektory w j pro konstrukci matice P j = I 2w j w T j můžeme brát ve tvaru w j := [0,..., 0, w (j) j+1,..., w(j) n ] T. Vhodnou volbou koeficientů w (j) lze docílit toho, že matice A j = P j A j 1 P j má všechny prvky [A] i,k = 0, pro i + 1 > k, k = 1,..., n tzn. že v každém kroku se nulují prvky Touto volbou je vektor se složkami [A] i,j, i = j + 2,..., n. w (j) j+1 = s j + [A j 1 ] j+1,j 2s j kde w (j) k = sgn ([A j 1 ] j+1,j ) [A j 1] k,j 2w (j) j+1 s, k = j + 2,..., n j s j def = n ([A j 1 ] k,j ) 2 k=j+1
109 102 Výpočet vlastních čísel a vektorů matic a [A j 1 ] k,j jsou prvky matice A j 1. Algoritmus 16 Input: A 1: T := A 2: n := velikost A 3: for j := 1,...,n 2do n 4: s := [T] 2 k,j k=j+1 5: [w] j+1 := (s + [T] j+1,j )/(2s) 6: for k := j + 2,...,ndo 7: [w] k := sgn([t] j+1,j ).[T] k,j /(2[w] j+1 s) 8: end for 9: P := I 2ww T 10: T := P T TP 11: end for Output: T HOUSEHOLDEROVA METODA Poznámka V případě nesymetrické matice dostáváme matici v Hessenbergově tvaru. Postup dalšího řešení je pak stejný jako u Givensovy metody Lanczosova metoda Stejně jako u předchozí Givensovy a Householderovy metody budeme hledat takovou matici ortogonální matici Q, která v podobnostní transformaci T = Q T AQ převede symetrickou matici A na třídiagonální matici. Předpokládejme nejdříve, že matici Q máme k dispozici a označme a 1 b b 1 a 2 b T := b n 2 a n 1 b n b n 1 a n Jelikož T = Q T AQ QT = AQ, (4.19)
110 4.3 Metody založené na podobnosti matic 103 tak dosazením a 1 b b 1 a 2 b [s Q 1,..., s Q n ] = A[s Q 1,..., s Q n ] b n 2 a n 1 b n b n 1 a n a porovnáním k-tých řádků získáme rovnice b k 1 s Q k 1 + a ks Q k + b ks Q k+1 = AsQ k, k = 1,..., n 1, (4.20) přičemž b 0 = 0, s Q 0 = o. Koeficienty a k, b k můžeme určit následujícím způsobem. Přenásobíme rovnici (4.20) skalárně vektorem s Q k, získáme b k 1 (s Q k 1, sq k ) + a k(s Q k, sq k ) + b k(s Q k+1, sq k ) = (AsQ k, sq k ) a díky ortogonalitě matice Q (ortonormalitě vektorů s Q 1,..., s Q n ) se předpis zjednoduší na tvar a k = (As Q k, sq k ). (4.21) Přenásobíme rovnici (4.20) skalárně vektorem s Q k+1, získáme b k 1 (s Q k 1, sq k+1 ) + a k(s Q k, sq k+1 ) + b k(s Q k+1, sq k+1 ) = (AsQ k, sq k+1 ) a díky ortonormalitě vektorů s Q 1,..., s Q n se předpis zjednoduší na tvar b k = (As Q k, sq k+1 ). (4.22) Otázkou zůstává, jak co nejjednodušeji vytvořit ortogonální matici Q. Uvažujme rovnici (4.20) a upravme ji na tvar s Q k+1 = 1 ((A a k I)s Q k b b k 1s Q k 1 ). (4.23) k Tento předpis lze považovat za jakýsi ortonormalizační proces, zvláště pokud označíme r k := (A a k I)s Q k b k 1s Q k 1 (4.24) a volíme Pak dosazením do rovnice (4.23) získáme b k = r k. (4.25) s Q k+1 = r k r k. (4.26) Navíc lze dokázat, že volba (4.25) vyhovuje rovnici (4.22) a zkonstruovaná matice Q je ortogonální. Celý postup můžeme shrnout do následujícího algoritmu.
111 104 Výpočet vlastních čísel a vektorů matic Algoritmus 17 Input: A 1: n := velikost A 2: T := nulová matice typu n n 3: s Q 0 := nulový vektor dimenze n 4: r 1 := libovolný jednotkový vektor dimenze n 5: b 1 := 1 6: forj:=1,...,ndo 7: s Q j := r j/b j LANCZOSOVA METODA 8: a j := (s Q j )T As Q j 9: r j+1 := (A a j I)s Q j b js Q j 1 10: b j+1 := r j+1 11: [T] j,j := a j 12: if j < nthen 13: [T] j+1,j := b j 14: [T] j,j+1 := b j 15: end if 16: end for Output: T
112 105 Kapitola 5 Interpolace Průvodce studiem Zřejmě nejznámější a nejčastěji používanou úlohou matematické analýzy je interpolace. V podstatě každý z nás se setkal s úlohou, kdy jsme museli odhadnout hodnotu funkce v bodě a přitom jsme znali pouze její hodnoty v krajních bodech. Tuto úlohu běžně řešíme při pohledu na ručičku ukazatele množství paliva v nádrži a snažíme se odhadnout kolik kilometrů ještě ujedeme. V této kapitole se tedy seznámíme se základními interpolačními metodami a ukážeme si, jak odhadnout chybu, kterou se při interpolaci dopouštíme. Z S J V Definice 5.1. Nechť je dána funkce f : R R. Funkce φ : R R, která v bodech x 0,..., x n D f splňuje i = 0,..., n : φ(x i ) = f(x i ) (5.1) se nazývá interpolační funkce v uzlech x 0,..., x n a podmínky nazýváme interpolační podmínky. Důvod, proč nahrazujeme funkci f funkcí φ může být různý. Většinou požadujeme od hledané funkce φ lepší vlastnosti, než má původní funkce f - spojitost, diferencovatelnost, snažší vyčíslitelnost apod. Jednou z nejžádanějších vlastností je, aby interpolační funkce byla prvkem vektorového prostoru konečné dimenze a tudíž, aby bylo možné ji vyjadřovat pomocí souřadnic. Takovou třídou funkcí je prostor všech polynomů stupně nejvýše n. 5.1 Interpolace polynomem Polynomem n-tého stupně p n budeme rozumět funkci p n : R R s předpisem p n (x) = a 0 + a 1 x + a 2 x a n x n = n a i x i i=0
113 106 Interpolace Obr. 5.1: Úloha interpolace. kde a 0, a 1,..., a n R jsou konstantní koeficienty. Za interpolační funkci budeme v dalším uvažovat právě polynom stupně n. Uvažujme hledanou interpolační funkci jako polynom stupně n. Budeme dále uvažovat síť n + 1 bodů ve kterých je zadána funkční hodnota x 0 < x 1 < < x n, f(x 0 ), f(x 1 ),..., f(x n ). Po interpolačním polynomu p n požadujeme splnění interpolačních podmínek i = 0,..., n : p n (x i ) = f(x i ). (5.2) Jelikož předchozí interpolační podmínky reprezentují n + 1 algebraických rovnic a v polynomu je právě n+1 neznámých koeficientů a i, lze k nalezení těchto koeficientů přistupovat jako k řešení soustavy n + 1 lineárních rovnic o n + 1 neznámých. Konkrétně p n (x 1 ) = f(x 1 ) a 0 + a 1 x 1 + a 2 x a n x n 1 = f(x 1 ) p n (x 2 ) = f(x 2 ) a 0 + a 1 x 2 + a 2 x a n x n 2 = f(x 2 ).. p n (x n ) = f(x n ) a 0 + a 1 x n + a 2 x 2 n +... a n x n n = f(x n ) maticově pak Aa = b, kde A i,j = x j i, b i = f(x i ), i = 0,..., n, j = 0,..., n.
114 5.1 Interpolace polynomem 107 Lemma 5.2. Nechť jsou zadány interpolační uzly x 0, x 1,..., x n a, b x 0 < x 1 < < x n a příslušné funkční hodnoty f(x 0 ), f(x 1 ),..., f(x n ) R. Pak existuje právě jeden interpolační polynom P n stupně n takový, že i = 0,..., n : P n (x i ) = f(x i ). Důkaz. Předpokládejme sporem, že existují dva různé interpolační polynomy P n a Q n. Označme R n (x) = P n (x) Q n (x). Jelikož P n a Q n splňují interpolační podmínky, tj. i = 0,..., n : P (x i ) = Q(x i ) = f(x i ), pak i = 0,..., n : R(x i ) = P (x i ) Q(x i ) = 0,, tedy polynom n-tého stupně R n má právě n + 1 kořenů. Což je ve sporu se základní větou algebry (každý polynom n-tého stupně má maximálně n různých reálných kořenů). Algoritmus 18 Input: x 0,...,x n, f(x 0 ),...,f(x n ) INTERPOLACE POLYNOMEM 1: for i := 0,...,n do 2: for j := 0,...,ndo 3: [A] i,j = x j i 4: end for 5: [b] i := f(x i ) 6: end for 7: [a 0,...,a n ] T := aje řešení soustavy Aa = b Output: a 0,...,a n Příklad 5.3. Sestavte interpolační polynom 4-tého stupně, pokud je zadáno x 0 = 0, f(x 0 ) = 1, x 1 = 2, f(x 1 ) = 2, x 2 = 3, f(x 2 ) = 1, x 3 = 4, f(x 3 ) = 3, x 4 = 5, f(x 4 ) = 2.
115 108 Interpolace Řešení. Budeme hledat polynom ve tvaru P 4 (x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + a 4 x 4 a uvažujme 5 požadovaných interpolačních vlastností P 4 (x 0 ) = f(x 0 ) a 0 + a a a a = 1 P 4 (x 1 ) = f(x 1 ) a 0 + a a a a = 2 P 4 (x 2 ) = f(x 2 ) a 0 + a a a a = 1 P 4 (x 3 ) = f(x 3 ) a 0 + a a a a = 3 P 4 (x 4 ) = f(x 4 ) a 0 + a a a a = 2 tedy pro nalezení koeficientů budeme řešit soustavu lineárních rovnic a a a a 3 = a 4 2 Řešením této soustavy je [a 0, a 1, a 2, a 3, a 4 ] T = [ 19 30, , , , 1]T, tedy algebraický interpolační polynom má předpis P 4 (x) = x x x x + 1. Poznámka 5.4. (O nešikovné volbě báze) Matice v předchozím příkladě se nazývá Vandermondova matice, která má obecný tvar V =. 1 α 1 α α1 n 1 1 α 2 α α2 n 1 1 α 3 α α n α m αm 2... αm n 1 3, nebo po složkách [V ] i,j = α j 1 i, kde α 1,..., α m je posloupnost reálných konstant. O této matici je známo, že je velmi špatně podmíněná (viz [23]). Volme například posloupnost α i = i, i = 1,..., n (tj. interpolace na uzlech x i = α i ) a podívejme se na číslo podmíněnosti čtvercové Vandermondova matice (m = n) pro jednotlivá n.
116 5.2 Lagrangeův interpolační polynom 109 n cond(v) , , , , , , , , , Jednodušeji řečeno - pokud bychom počítali interpolaci na uzlech x 1 = 1, x 2 = 2,... x 10 = 10, pak největší prvek v matici soustavy pro výpočet požadovaných koeficientů by byl [A] 10,10 = Při výpočtu s tak velkým číslem nelze zaručit požadovanou přesnost. Navíc v praxi se vyskytují úlohy s interpolací na mnohem vyšším počtu uzlů. Existuje mnohem rafinovanější pohled na na daný problém: úloha hledání interpolačního polynomu je úlohou hledání prvku vektorového prostoru všech polynomů stupně nejvýše n, který je jednoznačně určen požadovanými interpolačními vlastnostmi (viz Věta 5.2 o jednoznačnosti). Jelikož množina polynomů {1, x, x 2,... x n } tvoří bázi vektorového prostoru, ze kterého pochází hledaný prvek, pak způsob hledání koeficientů a 0, a 1,..., a n je de-facto stejný jako hledání souřadnic požadovaného polynomu vzhledem k této bázi. Volba báze, kterou jsme použili v předchozím příkladě, však není právě ideální, neboť vede na soustavu s Vandermondovou maticí. Očividně však existují mnohem šikovnější volby báze. Pak soustava pro hledání koeficientů je snadněji řešitelná, jak se ukáže v dalším výkladu u Lagrangeova a Newtonova interpolačního polynomu. 5.2 Lagrangeův interpolační polynom Opět uvažujme hledanou interpolační funkci jako polynom stupně n a značme ji L n (x). Dále uvažujme síť n + 1 interpolačních uzlů x 0,..., x n a množinu funkčních hodnot v těchto uzlech f(x 0 ),..., f(x n ), přičemž x 0 < x 1 < < x n. Funkci L n můžeme vyjádřit ve tvaru n L n (x) = f(x i )l i (x), i=0
117 110 Interpolace kde funkce l i jsou polynomy stupně n, které tvoří bázi prostoru všech polynomů stupně n. Tuto bázi budeme šikovně volit tak, aby každý bázový polynom byl roven 1 pouze v jednom uzlu interpolace a v ostatních by byl roven 0. Takovou volbu báze lze snadno nalézt a popisuje ji následující definice. Definice 5.5. Polynom L n (x) = n f(x i )l i (x) nazýváme Lagrangeův interpolační i=0 polynom jestliže l i jsou polynomy n-tého stupně, kde l i (x k ) = 0 l i (x i ) = 1 pro k i a jsou zadány předpisem l i (x) = (x x 0)(x x 1 )... (x x i 1 )(x x i+1 )... (x x n ) (x i x 0 )(x i x 1 )... (x i x i 1 )(x i x i+1 )... (x i x n ). Příklad 5.6. Určete hodnotu Lagrangeova interpolačního polynomu v bodě L n (1) pokud jsou zadány hodnoty L n (0) = 1, L n (4) = 3, L n (2) = 2, L n (5) = 2. L n (3) = 1, Řešení. Nejdříve označme x 0 = 0, x 3 = 4, x 1 = 2, x 4 = 5. x 2 = 3, a jelikož hledaná funkce L n je zadána v pěti bodech, budeme uvažovat polynom čtvrtého stupně (n = 4) s předpisem L 4 (x) = 4 f(x i )l i (x) = 1.l 0 (x) + 2.l 1 (x) + ( 1).l 2 (x) + 3.l 3 (x) + 2.l 4 (x) i=0 kde jednotlivé funkce l i (x) mají předpis l 0 (x) = l 1 (x) = (x x 1 )(x x 2 )(x x 3 )(x x 4 ) = (x 2)(x 3)(x 4)(x 5) (x 0 x 1 )(x 0 x 2 )(x 0 x 3 )(x 0 x 4 ) (0 2)(0 3)(0 4)(0 5) = x x x x + 1 (x x 0 )(x x 2 )(x x 3 )(x x 4 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 )(x 1 x 4 ) = (x 0)(x 3)(x 4)(x 5) (2 0)(2 3)(2 4)(2 5) = 1 12 x4 + x x2 + 5x
118 5.2 Lagrangeův interpolační polynom 111 l 2 (x) = l 3 (x) = (x x 0 )(x x 1 )(x x 3 )(x x 4 ) = (x 0)(x 2)(x 4)(x 5) (x 2 x 0 )(x 2 x 1 )(x 2 x 3 )(x 2 x 4 ) (3 0)(3 2)(3 4)(3 5) = 1 6 x x x x (x x 0 )(x x 1 )(x x 2 )(x x 4 ) = (x 0)(x 2)(x 3)(x 5) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 )(x 3 x 4 ) (4 0)(4 2)(4 3)(4 5) = 1 8 x x x x (x x l 4 (x) = 0 )(x x 1 )(x x 2 )(x x 3 ) = (x 0)(x 2)(x 3)(x 4) (x 4 x 0 )(x 4 x 1 )(x 4 x 2 )(x 4 x 3 ) (5 0)(5 2)(5 3)(5 4) = 1 30 x x x2 4 5 x. Dosazením a úpravou získáme polynom čtvrtého stupně L 4 (x) = x x x x L 4 (x) x Obr. 5.2: Příklad interpolace Lagrangeovým polynomem. Zbývá určit hodnotu interpolačního polynomu v bodě 1 L 4 (1) = = Poznámka 5.7. Množina vektorů {l 0 (x), l 1 (x),... l n (x)} tvoří bázi vektorového prostoru všech polynomů nejvýše n-tého stupně a vektor [f(x 0 ),..., f(x n )] je vektor souřadnic hledaného polynomu vzhledem k této bázi. Narozdíl od algebraického interpolačního polynomu tedy není nutno řešit soustavu lineárních rovnic, stačí pouze zkonstruovat potřebnou bázi (tj. l i (x), i = 0,..., n) a dosadit do předpisu dle Definice 5.5.
119 112 Interpolace Lemma 5.8. Nechť a, b je libovolný interval, který obsahuje body x 0,..., x n. Nechť f, f,..., f (n) C( a, b ) a x (a, b) existuje f (n+1) (x). Pak pro chybu Lagrangeova interpolačního polynomu L n platí E(x) = f(x) L n (x) = (x x 0 )... (x x n ) f (n+1) (ξ), ξ (a, b), x (a, b). (n + 1)! Důkaz. Zaveďme pomocnou funkci u(x) := f(x) L n (x) k n+1(x), (5.3) kde symbolem n+1 (x) značíme součin (x) := (x x 0 )(x x 1 )... (x x n ) n+1 a k R je konstanta. Funkce u(x) má n + 1 nenulových kořenů x 0, x 1,... x n a, b : u(x) = 0. Koeficient k zvolíme tak, aby (n + 2)-hým kořenem u(x) byl libovolný, ale pevný bod x a, b, různý od kořenů x 0, x 1,... x n. Jelikož x má být kořenem u(x), platí u( x) = 0 f( x) L n ( x) k n+1( x) = 0 a protože n+1 ( x) 0, je k = f( x) L n( x) n+1 ( x). (5.4) Pak funkce u(x) = f(x) L n (x) f( x) L n( x) n+1 ( x) (x) má v intervalu a, b n+2 kořenů, a tedy bude rovna nule v krajních bodech intervalů n+1 x 0, x 1, x 1, x 2,..., x i, x, x, x i+1,..., x n 1, x n. Pak dle Rolleovy věty (viz [14]) má derivace u (x) v intervalu a, b alespoň n + 1 kořenů a druhá derivace u (x) má v tomto intervalu alespoň n nulových bodů atd. Zobecníme-li toto pozorování, zjistíme, že v uvažovaném intervalu a, b má (n+1)-ní derivace u (n+1) (x) alespoň jeden kořen. Označme jej ξ a platí tedy u (n+1) (ξ) = 0. (5.5)
120 5.2 Lagrangeův interpolační polynom 113 Jelikož plyne z předpisu (5.3) L (n+1) n (x) = 0 a (n+1) n+1 (x) = (n + 1)!, Pro x = ξ a užitím rovnice (5.5) získáme odkud snadno vyjádříme u (n+1) (x) = f (n+1) (x) k(n + 1)!. 0 = f (n+1) (ξ) k(n + 1)!, k = f (n+1) (ξ) (n + 1)! Porovnáním rovnic (5.4) a (5.6) získáme rovnici. (5.6) f( x) L n ( x) n+1 ( x) = f (n+1) (ξ) (n + 1)!, tj. f( x) L n ( x) = f (n+1) (ξ) (n + 1)! ( x). (5.7) Jelikož x je libovolné (až na x x i ), můžeme rovnici (5.7) zapsat ve tvaru n+1 E(x) = f(x) L n (x) = (x) f (n+1) (ξ) (n + 1)! n+1 kde ξ závisí na x a leží uvnitř intervalu a, b. Algoritmus 19 Input: x 0,...,x n, f(x 0 ),...,f(x n ), x 1: L n (x) := 0 2: for i := 1,...,n do 3: l i := n (x x j )/ j=0,j i n j=0,j i 4: L n (x) := L n (x) + l i f(x i ) 5: end for Output: L n (x) (x i x j ) LAGRANGEŮV INTERPOLAČNÍ POLYNOM Nyní předpokládejme, že máme možnost zvolit si uzly interpolace. Zvolme je tak, aby chyba interpolace byla co nejmenší.
121 114 Interpolace Existuje-li konstanta M R + taková, že x (a, b) : f (n+1) (x) M, pak pro chybu interpolačního polynomu platí E n (x) kde jsme použili označení M (n + 1)! e n(x) M (n + 1)! max e n (x), x a,b e n (x) := (x x 0 )... (x x n ). To znamená, že vhodnou volbou sítě x 0,..., x n lze zlepšit interpolační funkci. Nejvhodnější volbou jsou kořeny tzv. Čebyševových polynomů. Lemma 5.9. Nechť jsou dány uzly interpolace x 0, x 1,..., x n 1, 1 jako kořeny Čebyševova polynomu, tj. T n (x i ) := cos((n + 1) arccos x i ) = 0, pro i = 0,..., n. Pak pro odhad chyby interpolace polynomem n-tého stupně P n platí x 1, 1 : f( x) P n ( x) kde M R + je konstanta taková, že Důkaz. Viz [24]. M n+1 (n + 1)!2 n, x ( 1, 1) : f (n+1) (x) M. Poznámka Při interpolaci pomocí Čebyševových polynomů na obecném intervalu a, b užijeme lineární transformaci x k = 1 2 ((b a)z k + b + a), k = 0, 1,..., n, kde z k 1, 1 jsou kořeny Čebyševova polynomu (n + 1)-ního stupně. Pro odhad chyby interpolace pak bude platit x a, b : f( x) P n ( x) M n+1 (b a) n+1. (n + 1)! 2 2n Newtonův interpolační polynom Volba Lagrangeova tvaru interpolačního polynumu se jeví jako velmi výhodná z hlediska výpočetní stability. V některých případech však není ideální. Typicky se jedná o případy, kdy uzly interpolace jsou časové okamžiky, které v čase přibývají. V takovém případě je nutné pokaždé, když přibyde nový časový údaj znovu přepočítat
122 5.3 Newtonův interpolační polynom 115 všechny bázové funkce. Tento nedostatek lze odstranit využitím tzv. Newtonova tvaru interpolačního polynomu. Uvažujme nyní interpolační polynom tvaru N n (x) := a 0 + a 1 (x x 0 ) + + a n (x x 0 )(x x 1 )... (x x n 1 ). Opět budeme vyžadovat splnění interpolačních podmínek i = 0, 1,..., n : N n (x i ) = f(x i ), kde x 0, x 1,..., x n a, b jsou uzly interpolace a f(x 0 ), f(x 1 ),..., f(x n ) jsou zadané funkční hodnoty v těchto uzlech. Neznámé koeficienty a 0,..., a n získáme řešením následující soustavy N n (x 0 ) = a 0 = f(x 0 ) N n (x 1 ) = a 0 + a 1 (x 1 x 0 ) = f(x 1 ). N n (x n ) = a 0 + a 1 (x n x 0 ) + + a n (x n x 0 )... (x n x n 1 ) = f(x n ) Množina vektorů {(x x 0 )(x x 1 )... (x x i ), i = 0,..., n 1} tvoří bázi vektorového prostoru všech polynomů nejvýše n-tého stupně. Z předešlých úvah je vidět, že pro nalezení souřadnic hledaného polynomu v této bázi bude nutno vyřešit dolní trojúhelníkovou matici. Tuto soustavu však není nutné řešit pokaždé, když rozšíříme uzly interpolace o nové, které jsou větší než ty dosavadní. V takovém případě stačí stávající soustavu rozšířit o nové rovnice a dopřednou substitucí dopočítat nové koeficienty. Původní rovnice nadále zůstávají v platnosti. Historicky se však problém řešil i bez sestavování soustavy pomocí tzv. poměrných diferencí. Definice Poměrnými diferencemi 0. řádu nazýváme (v bodě x i ) hodnoty f[x i ] = f(x i ), i = 0,..., n Poměrnými diferencemi 1. řádu nazýváme f[x i, x i+1 ] = f[x i+1] f[x i ] x i+1 x i, i = 0,..., n 1 Poměrnými diferencemi k. řádu nazýváme f[x i, x i+1,..., x i+k+1 ] = f[x i+1,..., x i+k+1 ] f[x i,..., x i+k ] x i+k+1 x i, i = 0,..., n k 1
123 116 Interpolace Poznámka Poměrné diference lze zapsat do tabulky x 0 f(x 0 ) = f[x 0 ] x 1 f(x 1 ) = f[x 1 ] f[x 0, x 1 ].... x n 1 f(x n 1 ) = f[x n 1 ] x n f(x n ) = f[x n ] f[x n 1, x n ] f[x n 2, x n 1, x n ] f[x 0,..., x n ] Tato tabulka dává návod, jak jednoduše rekurentně konstruovat poměrné diference bez nutnosti odvozování komplikovaných vzorců. Vypočtených poměrných diferencí lze pak výhodně využít pro sestavení Newtonova interpolačního polynomu. Definice Polynom N n (x) := f[x 0 ]+f[x 0, x 1 ](x x 0 )+ +f[x 0,..., x n ](x x 0 )... (x x n 1 ), (5.8) kde x 0 < x 1 < < x n (5.9) jsou uzly interpolace, nazýváme Newtonův interpolační polynom s poměrnými diferencemi. Poznámka Lze ukázat, že Newtonův interpolační polynom s poměrnými diferencemi splňuje podmínky interpolace (5.2). Algoritmus 20 Input: x 0,...,x n, f(x 0 ),...,f(x n ), x 1: for i := 0,...,n do 2: sum 1 := 0 3: sum 2 := 1 4: for j := 1,...,i 1 do 5: sum 1 := sum 1 + f[x 0,...,x j ].sum 2 6: sum 2 := sum 2.(x i x j ) 7: end for 8: f[x 0,...,x i ] := (f(x i ) sum 1 )/sum 2 9: end for 10: sum 1 := 0 11: sum 2 := 1 12: for j := 1,...,ndo 13: sum 1 := sum 1 + f[x 0,...,x j ].sum 2 14: sum 2 := sum 2.(x x j ) 15: end for 16: N n (x) := sum 1 Output: N n (x) NEWTONŮV INTERPOLAČNÍ POLYNOM
124 5.3 Newtonův interpolační polynom 117 Příklad Nechť jsou dány uzly interpolace x 0 = 0, f(x 0 ) = 1, x 1 = 2, f(x 1 ) = 2, x 2 = 3, f(x 2 ) = 1, x 3 = 4, f(x 3 ) = 3, x 4 = 5, f(x 4 ) = 2. Sestavte Newtonův interpolační polynom s poměrnými diferencemi a určete hodnotu tohoto polynomu v bodě x = 1. Řešení. Nejdříve sestavíme tabulku poměrných diferencí pro polynom 5-tého stupně x 0 f[x 0 ] x 1 f[x 1 ] f[x 0, x 1 ] x 2 f[x 2 ] f[x 1, x 2 ] f[x 0, x 1, x 2 ] x 3 f[x 3 ] f[x 2, x 3 ] f[x 1, x 2, x 3 ] f[x 0, x 1, x 2, x 3 ] x 4 f[x 4 ] f[x 3, x 4 ] f[x 3, x 4, x 5 ] f[x 1, x 2, x 3, x 4 ] f[x 0, x 1, x 2, x 3, x 4 ] kde jednotlivé poměrné diference vypočítáme užitím tabulky pro výpočet poměrných diferencí. x 0 = 0 1 x 1 = 2 2 1/2 x 2 = /6 x 3 = /2 7/6 x 4 = /2 2 19/30 Pak dosazením do předpisu Newtonova interpolačního polynomu s poměrnými diferencemi a po úpravě získáme polynom N 4 (x) = x x x x + 1. Zbývá určit hodnotu interpolačního polynomu v bodě 1 N 4 (1) = = Ekvidistantní uzly interpolace Uvažujme nyní ekvidistantní síť interpolačních uzlů, tj. existuje konstanta h R + taková, že i = 0,..., n 1 : x i+1 x i = h, x i = x 0 + hi.
125 118 Interpolace Tato volba sítě nám umožňuje výpočet poměrných diferencí významně zjednodušit. Místo poměrných diferencí totiž můžeme k sestavení Newtonova interpolačního polynomu využít tzv. dopředných diferencí. Definice Obyčejnou dopřednou diferencí k. řádu rozumíme k f = n ( n ( 1) n j j j=0 Dopřednou diferencí 0. řádu rozumíme Dopřednou diferencí 1. řádu rozumíme Dopřednou diferencí k. řádu rozumíme 0 f i = f(x i ) ) f(x j ) 1 f i = 0 f i+1 0 f i = f(x i+1 ) f(x i ) k f i = k 1 f i+1 k 1 f i Poznámka Očividně k f i = k ( k ( 1) k j j j=0 ) f(x i+j ). Poznámka Tabulka dopředných diferencí x 0 f 0 = 0 f 0 1 f 0 2 f 0 n f 0 x 1 f 1 = 0 f 1.. x n 1 f n 1 = 0 f n 1 1 f n 1 x n f n = 0 f n Poznámka Lze ukázat, že na ekvidistantní síti uzlů x 0, x 1,..., x n platí f[x 0,..., x n ] = n f 0 n!h n.
126 5.3 Newtonův interpolační polynom 119 Věta Nechť x i = x 0 + hi, i = 0,..., n x = x 0 + ht, t R + 0 a nechť ( ) t t! := j j!(t j) t(t 1)... (t j + 1) =, j! ( t 0 ) = 1 pro t, j R + 0, t j. Pak polynom N + n (t) = f 0 + ( t 1 ) f ( t n ) n f 0 (5.10) je Newtonův interpolační polynom s dopřednými diferencemi. Příklad Interpolujte funkci f pomocí Newtonova interpolačního polynomu s dopřednými diferencemi na zadané ekvidistantní síti uzlů a příslušných funkčních hodnotách x 0 = 0, f(x 0 ) = 1 x 1 = 1, f(x 1 ) = 3 x 2 = 2, f(x 2 ) = 2 x 3 = 3, f(x 3 ) = 3 x 4 = 4, f(x 4 ) = 4. Řešení. Nejdříve vyplníme tabulku dopředných diferencí dle předpisů v definici x i = i 0 f i 1 f i 2 f i 3 f i 4 f i 0 f 0 = = = 4 7 ( 4) = = 23 1 f 1 = = 3 4 ( 3) = = 12 2 f 2 = 1 3 ( 1) = = 5 3 f 3 = = 1 4 f 4 = 2 Následně stačí dosadit do předpisu Newtonova interpolačního polynomu s dopřednými diferencemi (5.10). ( ) ( ) ( ) x x x N 4 + (x) = f f f f 0 + ( ) ( ) ( ) ( x x x x = ( 4) = 1 + x 4x(x 1) + 11x(x 1)(x 2) 24x(x 1)(x 2)(x 3) 1! 2! 3! 4!... = t t t t ( x 4 ).( 24) ) 4 f 0 Výsledný interpolační polynom je vykreslen na obrázku 5.3.
127 120 Interpolace f(x) x Obr. 5.3: Příklad Newtonův interpolační polynom s dopřednými diferencemi. Pro zájemce: Obdobně lze také definovat zpětné diference. 0 f i = f i 1 f i = 0 f i 0 f i 1 = f i f i 1 k f i = k 1 f i k 1 f i 1 V takovém případě má Newtonův interpolační polynom tvar ( ) ( Nn t (t) = f n f 1 n + + ( 1) n t n ) n f n. 5.4 Trigonometrická interpolace Uvažujme interpolační funkci T n ve tvaru T n (x) def = 1 2 A 0 + n (A i cos ix + B i sin ix), i = 0,..., 2n. i=1 Opět budeme předpokládat splnění interpolačních podmínek T n (x i ) = f(x i )
128 5.4 Trigonometrická interpolace 121 na ekvidistatntní síti interpolačních uzlů x i = 2πi, i = 0,..., 2n (5.11) 2n + 1 Koeficienty interpolační funkce T n lze získat na základě následující věty. Věta Polynom T n (x) def = 1 2 A 0 + n (A i cos ix + B i sin ix) (5.12) i=1 kde A i := 2 2n + 1 2n j=0 f(x j ) cos ix j, i = 0,..., n (5.13) B i := 2 2n + 1 2n j=0 je interpolační polynom na síti interpolačních uzlů f(x j ) sin ix j, i = 1,..., n (5.14) x 0, x 1,..., x n x j+1 = x j + h, j = 0,..., n 1, h R + const. Důkaz. Viz literatura [8]. Algoritmus 21 Input: f, n, x 1: for i := 0,...,n do 2: x i = (2πi)/(2n + 1) 3: if i > 0then 4: A i := 2 2n+1 5: B i := 2 2n+1 6: else 7: A 0 := 2 2n+1 8: end if 9: end for 2n j=0 2n j=0 2n j=0 f(x j )cos ix j f(x j )sin ix j f(x j ) 10: T n (x) := 1 2 A 0 + n (A i cos ix + B i sin ix) Output: T n (x) i=1 TRIGONOMETRICKÁ INTERPOLACE
129 122 Interpolace Příklad Uvažujme funkci f(x) def = 1 pro x 0, π/2) 2 pro x π/2, π) 3 pro x π, 3/2π) 4 pro x 3/2π, 2π) a její periodické rozšíření f P (x). Interpolujte tuto nespojitou a 2π-periodickou funkci na síti bodů (5.11). Volte různý počet uzlů a porovnejte interpolační funkci s původní funkcí. Řešení. Volme například počet uzlů 2n + 1 def = 5, pak n = 2. Budeme interpolovat na síti bodů (viz (5.11)) x 0 = 0, f(x 0 ) = 1 x 1 = 2 5 π, f(x 1) = 1 x 2 = 4 5 π, f(x 2) = 2 x 3 = 6 5 π, f(x 3) = 3 x 4 = 8 5 π, f(x 4) = 4. Nejdříve spočteme potřebné koeficienty dle (5.13) a (5.14). A 0 = 2 5 A 1 = 2 5 A 2 = 2 5 B 1 = 2 5 B 2 = f(x j ) = 22 5 j=0 4 f(x j ) cos x j = 2 5 j=0 4 f(x j ) cos 2x j = 2 5 j=0 4 f(x j ) sin x j = 2 5 j=0 4 f(x j ) sin 2x j = 2 5 j=0 ( cos 2π + 2. cos 4π + 3. cos 6π + 4. cos ) 8π ( cos 4π cos 8π 5 ) 12π + 3. cos + 4. cos 16π 5 5 ( 1. sin 2π + 2. sin 4π + 3. sin 6π + 4. sin ) 8π ( 1. sin 4π sin 8π 5 ) 12π + 3. sin + 4. sin 16π 5 5, které následně dosadíme do předpisu interpolačního polynomu (5.12) T 2 (x) = A 1 cos x + B 1 sin x + A 2 cos 2x + B 2 sin 2x. Jedna perioda výsledné funkce je vykreslena na Obrázku 5.4. Při použití většího počtu interpolačních uzlů získáme přesnější řešení, viz Obrázek 5.5 a 5.6.
130 5.4 Trigonometrická interpolace f(x) x Obr. 5.4: Příklad trigonometrická interpolace s volbou n = f(x) 2 f(x) x x Obr. 5.5: Příklad trigonometrická interpolace s volbou n = 5, 10.
131 124 Interpolace f(x) 2 f(x) x x Obr. 5.6: Příklad trigonometrická interpolace s volbou n = 50, 100.
132 5.5 Interpolace lineárními spline funkcemi Interpolace lineárními spline funkcemi Použití algebraických či trigonometrických interpolačních polynomů je velice omezené. V případě velkého počtu interpolačních uzlů totiž začné velmi narůstat řád interpolačního polynomu a polynom samotný se velmi rozkmitá. V takovém případě se jako vhodnější ukazuje použití tzv. spline funkcí, které jsou postupně definovány jako polynomy nižších stupňů na intervalech ohraničených uzly interpolace. Nejjednodušším případem spline funkce je tzv. lineární spline, kterou můžeme charakterizovat jako spojitou po částech lineární funkci. Obr. 5.7: Interpolace lineární spline funkcí. Definice Funkce φ C se nazývá lineární spline funkce, jestliže na síti interpolačních uzlů x 0, x 1,..., x n splňuje interpolační vlastnost a na jednotlivých disjunktních intervalech je lineární. x j, x j+1, j = 0,..., n 1 Uvažujme tedy posloupnost interpolačních uzlů a = x 0 < x 1 < < x n = b, která generuje rozklad intervalu a, b na n 1 podintervalů a, b = x 0, x 1 x 0, x 1... x i 1, x i x i, x i+1... x n 1, x n. Označme podinterval I i = x i, x i+1, i = 0,..., n 1 a definujme na něm lineární funkci φ i (x) = a i + b i x, x x i, x i+1. Neznámé koeficienty a i, b i R lze snadno určit z požadované interpolační vlastnosti v krajních intervalu, tj. koeficienty jsou řešením soustavy f(x i ) = a i + b i x i f(x i+1 ) = a i + b i x i+1.
133 126 Interpolace Po substituci h i = x i+1 x i (velikost uvažovaného intervalu) získáme a i = 1 f(x i ) x i h i f(x i+1 ) x i+1 b i = 1 1 f(x i ) h i 1 f(x i+1 ). Pak část interpolační funkce φ i na intervalu I i má tvar φ i (x) = { f(xi ) + f(x i+1) f(x i ) h i (x x i ) na x i, x i+1 0 mimo x i, x i+1. (5.15) Pak interpolační funkci φ lze vyjádřit jako součet n 1 φ(x) = φ i (x), x a, b. i=0 Algoritmus 22 Input: x 0,...,x n, f(x 0 ),...,f(x n ) 1: for i := 0,...,n 1do 2: a i := f(x i ) 3: h i := x i+1 x i 4: b i := (f(x i+1 f(x i ))/h i 5: end for INTERPOLACE LINEÁRNÍMI SPLINE FUNKCEMI Output: a 0,...,a n, b 0,...,b n Příklad Nechť je dána funkce f body a funkčními hodnotami x 0 = 1 f(x 0 ) = 1 x 1 = 3 f(x 1 ) = 4 x 2 = 4 f(x 2 ) = 2 x 3 = 5 f(x 3 ) = 0 x 4 = 8 f(x 4 ) = 3 x 5 = 9 f(x 5 ) = 3. Na této síti interpolujte funkci f pomocí lineární spline funkce φ. Řešení. Nejdříve spočteme jednotlivé diference h 0 = x 1 x 0 = 2 h 1 = x 2 x 1 = 1 h 2 = x 3 x 2 = 1 h 3 = x 4 x 3 = 3 h 4 = x 5 x 4 = 1
134 5.6 Interpolace kubickými spline funkcemi 127 a jednotlivé části hledané interpolační funkce φ zkonstruujeme pomocí předpisu (5.15) φ 0 = f(x 0 ) + f(x 1) f(x 0 ) h 0 (x x 0 ) = 3x φ 1 = f(x 1 ) + f(x 2) f(x 1 ) h 1 (x x 1 ) = 2x + 10 φ 2 = f(x 2 ) + f(x 3) f(x 2 ) h 2 (x x 2 ) = 2x + 10 φ 3 = f(x 3 ) + f(x 4) f(x 3 ) h 3 (x x 3 ) = x 5 φ 4 = f(x 4 ) + f(x 5) f(x 4 ) h 4 (x x 4 ) = 3. Pak výsledná interpolační funkce má tvar 3 x 1 pro x 1, 3) 2 2 2x + 10 pro x 3, 5) φ(x) = x 5 pro x 5, 8) 3 pro x 8, 9. Výsledná funkce je vykreslena na obrázku f(x) x Obr. 5.8: Příklad interpolace lineární spline funkcí. 5.6 Interpolace kubickými spline funkcemi Lineární spline představený v předchozí kapitole sice řeší problém zvyšujícího se stupně polynomu se zvyšujícím se počtem uzlů interpolace, avšak výsledná interpolační funkce díky nediferencovatelnosti v uzlech interpolace není hladká, ačkoliv
135 128 Interpolace bychom to v řadě případů očekávali. V takovém případě je možné využít spline funkcí vyšších řádů, tj. takových, které jsou počástech kvadratické, kubické, kvintické atp. V takovém případě se dá zajistit i určitá hladkost výsledné interpolační funkce. Jedním s nejčastěji používaných splinů je kubický spline. V následujícím textu si tento spline odvodíme. Definice Nechť jsou dány dvojice (x i, f i ), i = 0,..., n a nechť f(x i ) = f i. Funkci φ(x) nazýváme kubickou spline funkcí jestliže 1. φ C 2 ( a, b ) 2. φ je kubický polynom na x i, x i+1, i = 0,..., n 1 3. φ(x i ) = f i, i = 0,..., n Poznámka Z definice je patrné, že kubická spline funkce φ není určena jednoznačně. Abychom jednoznačně určili interpolační funkci a její části na jednotlivých intervalech φ(x) := n 1 φ i (x) i=0 φ i (x) := a i + b i x + c i x 2 + d i x 3 na x i, x i+1 je nezbytné pro jednotlivé intervaly určit 4n neznámých a i, b i, c i, d i, i = 0, 1,..., n 1. Z interpolačních podmínek φ(x i ) = f i, i = 0,..., n dostáváme n+1 rovnic. Ze spojitosti φ, φ, φ v bodech interpolace x i, i = 1,..., n 1 dostáváme dalších 3(n 1) = 3n 3 rovnic. Celkem tedy máme 4n neznámých a 4n 2 rovnic. Dvě podmínky tedy musíme dodat. Například 1. φ (a) = f 0, φ (b) = f n 2. φ (a) = f 0, φ (b) = f n 3. φ (a) = 0, φ (b) = 0 (tzv. přirozený kubický spline) Tyto podmínky nazýváme okrajové podmínky.
136 5.6 Interpolace kubickými spline funkcemi Konstrukce spline funkce Na každém intervalu interpolace budeme hledat kubický spline ve tvaru φ i (x) = a i + b i (x x i ) + c i (x x i ) 2 + d i (x x i ) 3, i = 0,..., n 1 (5.16) φ i je tedy polynom prvního stupně a tudíž φ je funkce po částech lineární a spojitá neboť φ C 2 ( a, b ). Označme φ (x i ) := M i, i = 0,..., n jako i-tý moment spline funkce. Můžeme sestavit interpolaci po částech lineárními funkcemi (viz 5.5) φ i (x) = φ i (x i ) x i+1 x h i + φ i (x i+1 ) x x i h i, x x i, x i+1, i = 0,..., n 1. φ x i+1 x x x i i (x) = M i + M i+1 h i h i Integrováním φ i dostáváme φ i(x) = φ (x i+1 x) 2 (x x i ) 2 i (x)dx = M i + M i+1 + A i 2h i 2h i a následně φ i (x) = φ i(x)dx = M i (x i+1 x) 3 6h i + M i+1 (x x i ) 3 6h i + A i (x x i ) + B i. tedy a Z podmínek interpolace plyne φ i (x i ) = f(x i ), φ i (x i+1 ) = f(x i+1 ), i = 0,..., n 1, φ i (x i ) = M i h 2 i 6 + B i = f(x i ) φ i (x i+1 ) = M i+1 h 2 i 6 + A ih i + B i = f(x i+1 ). Řešením této soustavy 2 rovnic o 2 neznámých A i, B i dostáváme B i = f(x i ) M i h 2 i 6 A i = f(x i+1 f(x) h i h i 6 (M i+1 M i ).
137 130 Interpolace Poznámka Pomocí M i lze jednoznačně spočítat všechny funkce φ i, tzn. můžeme určit a i, b i, c i, d i následujícími předpisy a i = φ i (x i ) = f(x i ) b i = φ h i(x i ) = M i i 2 i = f(x i+1) f(x i ) h i c i = 1 2 φ i (x i ) = 1M 2 i d i = 1 6 φ i (x + i ) = M i+1 M i 6h i 2M i+m i+1 6 h i (5.17) kde φ i (x + i ) je derivace φ i zprava v x i. Nyní stačí pouze určit momenty φ (x i ), i = 0,..., n. K tomu využijeme spojitost φ v x i, i = 1,..., n 1, tzn. φ i 1(x i ) = φ i(x + i ), i = 1,..., n 1. Vyjádříme si příslušné jednostrané derivace φ i 1(x i ) = f(x i) f(x i 1 ) h i 1 + h i 1 3 M i + h i 1 6 M i 1, φ i(x + i ) = f(x i+1) f(x i ) h i h i 3 M i h i 6 M i+1. Dosazením do podmínek spojitosti φ dostaneme rovnice h i 1 6 M i 1 + h i 1+h i 3 M i + h i 6 M i+1 = f(x i+1) f(x i ) h i f(x i) f(x i 1 ) h i 1, i = 1,..., n 1 Čtenář si určitě všimnul, že se jedná o n 1 rovnic pro n + 1 neznámých. Pro jednoznačnost řešení je proto doplníme libovolnou okrajovou podmínkou. Označíme-li dále g i = λ i = 6 h i 1 + h i h i 1 h i 1 + h i, h i h i 1 + h i = 1 λ i = μ i, (5.18) ( f(xi+1 ) f(x i ) h i f(x i) f(x i 1 ) h i 1 ). (5.19) Dostáváme třídiagonální soustavu lineárních rovnic, jejíž řešením jsou hledané momenty kubického splinu. 2M 1 +μ 1 M 2 = g 1 λ 1 f 0 λ 2 M 1 +2M 2 +μ 2 M 3 = g 2 λ n 2 M n 3 +2M n 2 +μ n 1 M n 1 = g n 2 λ n 1 M n 2 +2M n 1 = g n 1 μ n 1 f n (5.20).
138 5.6 Interpolace kubickými spline funkcemi 131 Lemma Nechť f C 4 ( a, b ), K je konstanta taková, že při dělení a, b na h i, i = 0, 1,..., n 1 platí max h i min h i K. Nechť φ je kubická spline funkce pro funkci f a nechť φ splňuje okrajové podmínky. Pak pro x a, b a j = 0, 1, 2, 3 platí f (j) (x) φ (j) (x) CKh 4 j, kde h = max h i, C je konstanta, která nezávisí na x ani na dělení a, b. Algoritmus 23 Input: x 0,...,x n, f(x 0 ),...,f(x n ), f (x 0 ),f (x n ) INTERPOLACE KUBICKÝMI SPLINE FUNKCEMI 1: for i := 0,...,n 1do 2: h i := x i+1 x i 3: end for 4: for i := 0,...,n 1do 5: λ i := h i /(h i + h i+1 ) 6: µ i := 1 λ i 7: g i := 6/(h i 1 + h i )((f(x i+1 ) f(x i ))/h i (f(x i ) f(x i 1 ))/h i 1 ) 8: end for 9: M je nulová matice typu (n 1) (n 1) 10: mje nulový vektor dimenze n 1 11: [ M] 1,1 := 2, [ M] 1,2 := µ 1 12: [ m] 1 := g 1 λ 1 f (x 0 ) 13: for i := 2,...,n 2do 14: [ M] i,i 1 := λ i 15: [ M] i,i := 2 16: [ M] i,i+1 := µ i 17: end for 18: [ M] n 1,n 1 := 2, [ M] n 1,n 2 := λ n 1 19: [ m] n 1 := g n 1 µ n 1 f (x n ) 20: [M 1,...,M n 1 ] T := mjeřešení soustavy Mm = m 21: for i := 0,...,n 1do 22: a i := f(x i ) 23: b i := (f(x i+1 f(x i ))/h i h i (2M i + M i+1 )/6 24: c i := (1/2)M i 25: d i := (M i+1 M i )/(6h i ) 26: end for Output: a 0,...,a n, b 0,...,b n, c 0,...,c n, d 0,...,d n
139 132 Interpolace Příklad Interpolujte funkci f pomocí přirozené interpolace kubickými spline funkcemi na zadaných bodech a příslušných funkčních hodnotách x 0 = 1, f(x 0 ) = 1 x 1 = 2, f(x 1 ) = 3 x 2 = 3, f(x 2 ) = 2 x 3 = 4, f(x 3 ) = 3 x 4 = 5, f(x 4 ) = 4. Řešení. Nejprve je potřeba si všimnout, že zadané uzly jsou ekvidistatní, tj. h 0 = h 1 = h 2 = h 3 = 1. To nám vcelku zjednoduší výpočet. Nejdříve spočteme λ 1, λ 2, λ 3, μ 1, μ 2, μ 3 dle předpisu (5.18) h λ 1 = 0 h 0 +h 1 = 1, μ 2 1 = 1 λ 1 = 1 2 h λ 2 = 1 h 1 +h 2 = 1, μ 2 2 = 1 λ 1 = 1 2 h λ 3 = 2 h 2 +h 3 = 1, μ 2 3 = 1 λ 1 = 1 2 a dosadíme do předpisu pomocných proměnných (5.19) g 1 = 6 h 0 +h 1 ( f(x2 ) f(x 1 ) h 1 f(x 1) f(x 0 ) h 0 ) = 9 g 2 = 6 h 1 +h 2 ( f(x3 ) f(x 2 ) h 2 f(x 2) f(x 1 ) h 1 ) = 6 g 3 = 6 h 2 +h 3 ( f(x4 ) f(x 3 ) h 3 f(x 3) f(x 2 ) h 2 ) = 0. Pak lze sestavit soustavu (5.20) (jelikož se jedná o přirozený spline, tak f 0 = f 4 = = M 0 = M 4 = 0) 2M 1 +μ 1 M 2 = g 1 λ 1 f 0 λ 2 M 1 +2M 2 +μ 2 M 3 = g 2 λ 3 M 2 +2M 3 = g 3 μ 3 f 4 2M 1 + 1M 2 2 = 9 1 M M 2 + 1M 2 3 = 6 1 M M 3 = 0 Řešením soustavy jsou hledané momenty M 0 = 0, M 1 = , M 2 = 33 7, M 3 = 33 28, M 4 = 0, které lze následně dosadit do předpisů koeficientů pro kubické polynomy (5.17) na jednotlivých intervalech a 0 = f(x 0 ) = 1 a 2 = f(x 2 ) = 2 b 0 = f(x 1) f(x 0 ) h 0 2M 0+M 1 h 6 0 = 165 b 56 2 = f(x 3) f(x 2 ) h 2 2M 2+M 3 h 6 2 = 3 8 c 0 = 1 2 M 0 = 0 c 2 = 1 2 M 2 = d 0 = M 1 M 0 6h 0 = d 2 = M 3 M 2 6h 2 = a 1 = f(x 1 ) = 3 a 3 = f(x 3 ) = 3 b 1 = f(x 2) f(x 1 ) h 1 2M 1+M 2 h 6 1 = 3 b 28 3 = f(x 4) f(x 3 ) h 3 2M 3+M 4 h 6 3 = c 1 = 1 2 M 1 = c 3 = 1 2 M 3 = d 1 = M 2 M 1 6h 1 = d 3 = M 4 M 3 6h 3 =
140 5.6 Interpolace kubickými spline funkcemi 133 Tedy výsledná interpolační funkce (5.16) má předpis = (x 1) (x )3 pro x 1, 2 = (x 2) φ(x) (x )2 + 97(x 56 2)3 pro x (2, 3 = (x 3) (x )2 55(x 56 3)3 pro x (3, 4 = (x 4) (x )2 + 11(x 56 4)3 pro x (4, f(x) x Obr. 5.9: Příklad interpolace kubickými spline funkcemi.
141 134 Kapitola 6 Aproximace Z S V Průvodce studiem J Obdobně jako v případě interpolace se problematika aproximace funkcí zabývá metodami nalezení jednodušších funkcí, které jsou dosatečným přiblížením (aproximací) funkce jiné. V případě aproximačních metod však nebudeme vyžadovat ani splnění interpolačních podmínek, tzn. že výsledná aproximační funkce nemusí dokonce procházet známými funkčními hodnotami funkce aproximované. V této kapitole se seznámíme s principy teorie aproximací funkcí a se ze základnímí aproximačními metodami. Aproximace si klade za cíl nahradit danou funkci f z prostoru funkcí F nějakou jednodušší aproximační funkcí φ z prostoru aproximačních funkcí Φ. Na rozdíl od interpolační funkce však nevyžadujeme, aby se aproximační funkce φ shodovala v předem daných bodech x i, i = 0,..., m s původní funkcí f (viz Obrázek 6.1). Za podprostor Φ si obvykle vybíráme konečnědimenzionální podprostory funkcí, neboť se výsledné aproximační funkce dají dobře vyjádřit jako lineární kombinace vektorů báze. Typicky jsou to pak prostory polynomů, konečněrozměrné prostory trigonometrických funkcí apod. Je zřejmé, že chyba aproximace bude závislá především na volbě tohoto prostoru. Důležitou otázkou v aproximační úloze je tedy otázka míry vzdálenosti aproximační funkce φ od původní funkce f. Čím je tato vzdálenost menší, tím zřejmě lepší aproximační vlastnosti získáváme. Za tímto účelem nám dobře poslouží prostory funkcí se skalárním součinem (f, g) a normou f = (f, f) indukovanou tímto skalárním součinem. Míru vzdálenosti f od φ pak můžeme měřit metrikou ρ(f, φ) = f φ = (f φ, f φ) kde f F a φ Φ.
142 f(x) interpolace aproximace Obr. 6.1: Porovnání interpolačního polynomu s lineární aproximační funkcí. Pro hledanou aproximační funkci φ * Φ pak požadujeme, aby splňovala vlastnost ρ(f, φ * ) ρ(f, φ) pro φ Φ, tj. f φ * f φ pro φ Φ. (tj. Velmi často se v aproximačních úlohách volí za prostor funkcí F prostor L 2 (a, b) b a f 2 (x)dx < + ) a za prostor aproximačních funkcí Φ můžeme například brát prostor všech polynomů stupně nejvýše n. Na prostoru L 2 (a, b) zavádíme skalární součin (f, g) 2 = b a f(x)g(x)dx a normu f 2 = b f 2 (x)dx 1 2. Definujeme-li metriku pro vzdálenost funkcí a ρ(f, φ) ρ 2 (f, φ) = f φ 2,
143 136 Aproximace pak aproximační úlohu můžeme předepsat jako minilalizační úlohu { Najdi φ * Φ takové, že f φ * 2 2 f φ 2. (6.1) 2 pro φ Φ. Všimněme si, že místo normy f φ 2 jsme použili v minimalizační úloze (6.1) její kvadrát f φ 2 2. Tento tvar nemá žádný vliv na výsledek minimalizační úlohy a přitom je mnohem vhodnější pro úpravy minimalizované funkce neboť zatímco tak f φ 2 = (f φ, f φ) 2, f φ 2 2 = (f φ, f φ). Pokud je tedy funkce f zadána pouze na diskrétní síti {x i, i = 0,..., m}, dostáváme funkci f ve tvaru m + 1 rozměrného aritmetického vektoru funkční hodnot (f 0,..., f m ) R m, kde f i f(x i ), i = 0,..., m. Množinu funkcí definovaných na konečných množinách bodů pak můžeme ztotožnit s vektorovým prostorem aritmetických vektorů R m+1, na kterém zavedeme skalární součin a normu ve tvaru (f, g) 2,m := ( m m f i g i, f 2,m := i=0 Původní aproximační úloha má pak tvar { Najdi φ * R m+1 tak, že f φ * 2 2,m f φ 2 2,m pro φ R m+1. i=0 f 2 i ) (6.2) V obou těchto případech (6.1) a (6.2) se metoda aproximace nazývá metoda nejmenších čtverců. Její název vychází z geometrické interpretace této metody v diskrétním případě. Za aproximační polynom se vybírá ten polynom, jehož součet čtverců odchylek od hodnot f i je nejmenší. Nejlépe lze princip metody pochopit z Obrázku 6.2. Z výše uvedeného je patrné, že výsledný aproximační polynom závisí na volbě metriky pro vzdálenost funkcí. Změnou normy resp. skalárního součinu tak můžeme dostat jiné aproximační funkce, jejichž aproximační vlastnosti se budou lišit v závislosti na metrice. Kromě metody nejmenších čtverců se pro aproximace taktéž často používá tzv. stejnoměrná aproximace, kdy za normu f volíme f := max f(x), kdef C( a, b ). x a,b
144 6.1 Metoda nejmenších čtverců 137 f 2 f 0 f 1 x 0 x 1 x 2 Obr. 6.2: Metoda nejmenších čtverců minimalizuje obsah čtverců. Pokud si za třídu aproximačních funkcí vezmeme opět prostor všech polynomů stupně nejvýše n, pak aproximační úloha má tvar { Najdi φ * Φ takové, že min φ max x a,b f(x) φ(x). Pokud funkce f je opět známa pouze na konečné množině bodů, můžeme volit normu f,m := max i=0,...,m f i a aproximační úloha má tvar { Najdi φ * Φ takové, že min max f(x φ i) φ(x i ). i=0,...,m Pokud se zamyslíme nad rozdílem mezi metodou nejmenších čtverců a stejnoměrnou aproximací, tak výsledná vzdálenost aproximační funkce nepřesáhne určitou mez, danou právě normou f φ *, zatímco v případě metody nejmenších čtverců takováto mez není garantována, ale za to funkce φ * se přibližuje k funkci v průměru po celé délce intervalu, na které aproximuje. 6.1 Metoda nejmenších čtverců V předchozím textu jsme již definovali metodu nejmenších čtverců jako minimalizaci kvadrátu Eukleidovské normy chyby aproximace. Řekněme, že prostor Φ má uspořádanou bázi (φ 0,..., φ n ). Pak φ Φ platí φ = c 0 φ c n φ n,
145 138 Aproximace kde c 0,..., c n R jsou souřadnice funkce φ v dané bázi. Budeme se tedy snažit nalézt takové c * 0,..., c * n R, že pro c 0,..., c n R. f c * 0φ 0... c * nφ n 2 2 f c 0 φ 0... c n φ n 2 2 Dostáváme tedy minimalizační úlohu min ρ 2 (f, c 0,..., c n ) 2 c 0,...,c n s ρ 2 (f, c 0,..., c n ) 2 = (f c 0 φ 0... c n φ n, f c 0 φ 0... c n φ n ) 2. Pro tuto úlohu si můžeme předepsat nutnou podmínku existence minima ve tvaru Tedy a ρ 2 2(c 0,..., c n ) c k ρ 2 2(c 0,..., c n ) = (f, f) 2 2 Nutná podmínka má tedy tvar = 0, k = 0,..., n n c i (f, φ i ) 2 + i=0 ρ 2 2(c 0,..., c n ) c k = 2(f, φ k ) n c i (φ i, φ k ) 2 = (f, φ k ) 2, i=0 n i=0 n c i c j (φ i, φ j ) 2 j=0 n c i (φ i, φ k ) 2 = 0. i=0 k = 0,..., n což představuje soustavu lineárních rovnic s neznámými c 0,..., c n. Tyto rovnice se nazývají normální rovnice a jejich maticový zápis vypadá následovně Ac = b (φ 0, φ 0 ) 2 (φ 0, φ 1 ) 2... (φ 0, φ n ) 2 (φ 1, φ 0 ) 2 (φ 1, φ 1 ) 2... (φ 1, φ n ) 2 A = = [(φ i, φ j )], b = (φ n, φ 0 ) 2 (φ n, φ 1 ) 2... (φ n, φ n ) 2 (f, φ 0 ) 2 (f, φ 1 ) 2. (f, φ n ) 2 Postačující podmínkou existence minima je pak positivní definitnost Hessiánu D 2 ρ 2 2(c 0,..., c n ), což je právě matice A. Tato matice se nazývá Grammova a je o ní známo, že je symetrická a positivně definitní pokud φ 0,..., φ n jsou nezávislé, což v našem případě platí (neboť tvoří bázi prostoru Φ)..
146 6.1 Metoda nejmenších čtverců 139 Aproximační funkce nalezená touto metodou tedy má požadované minimalizační vlastnosti. V diskrétním případě získáváme stejné normální rovnice, ve kterých se pouze vyskytuje jiný skalární součin. Konkrétně A = [(φ i, φ j ) 2,m ], b = [(f, φ i ) 2,m ], kde (f, g) 2,m = m f i g i. i=0 Poznámka 6.1. Je nutné poznamenat, že pro velká n je matice A zkonstruovaná výše uvedeným předpisem velmi špatně podmíněná pro běžné polynomiální báze jako je báze φ i (x) = x i. To nás přivádí k využití ortogonálních systémů v aproximaci nejmenších čtverců (viz další podkapitola 6.2). Algoritmus 24 Input: f, (ϕ 0,...,ϕ n ) METODA NEJMENŠÍCH ČTVERCŮ 1: for i := 0,...,n do 2: for j := 0,...,ndo 3: [A] i,j := (ϕ i,ϕ j ) 4: end for 5: [b] i := (f,ϕ i ) 6: end for 7: [c 0,...,c n ] T := cje řešení soustavy Ac = b Output: c 0,...,c n Příklad 6.2. Nechť funkce f : R R je zadána v bodech f(0) = 1 f(2) = 2 f(3) = 1 Aproximujte tuto funkci polynomem prvního stupně p P 1 metodou nejmenších čtverců. Řešení. Budeme tedy hledat polynom p ve tvaru p(x) = c 0 + c 1 x. V ideálním případě by hledaná funkce interpolovala dané body, tedy body by ležely na přímce a míra vzdálenosti by byla nulová. To by ovšem znamenalo, že
147 140 Aproximace hledané koeficienty řeší soustavu sestavenou pro hledání interpolačního polynomu (viz Příklad 5.3) Ac = b, kde A = x 0 0 x 1 0 x 0 1 x 1 1 x 0 2 x 1 2 = , b = f(x 0 ) f(x 1 ) f(x 2 ) = 1 2 1, c = Samozřejmě, tato soustava nemá řešení (protože body na přímce neleží, řádky nejsou lineárně závislé). Můžeme však nalézt co nejlepší řešení, tj. takové, aby chyba řešení err(c) := Ac b byla co nejmenší. Ve smyslu nejmenších čtverců budeme uvažovat co nejmenší chybu s kvadrátem, tj. Nejdříve upravme c = arg min Ac b 2. Ac b 2 = (Ac b, Ac b) = c T A T Ac 2c T A T b + b T b. Jelikož minimum je nezávislé na konstantě b T b, lze minimalizační úlohu přepsat do tvaru min 1 2 ct A T Ac c T A T b. Nutná podmínka minima (jedná se o kvadratickou funkci s symetrickou positivně definitní maticí, viz Věta 3.24) má tvar A T Ac = A T b. [ c0 Tedy místo původní interpolační soustavy budeme řešit tuto soustavu. [ ] 1 0 [ ] [ ] A T A = =, A T b = 2 = Konkrétním řešením je c 0 = 1.5, c 1 = 0.5. Porovnání zadaných bodů a aproximační funkce je vykresleno na Obrázku 6.3. Tento spůsob řešení odpovídá výše uvedené teorii. Zvolíme-li standardní bázi vektorového prostoru P 1, tj. (φ 0, φ 1 ), kde φ 0 = x 0 φ 1 = x 1, c 1 ]. [ 2 1 ]
148 6.1 Metoda nejmenších čtverců Obr. 6.3: Příklad řešení, aproximace lineární funkcí. pak odpovídající Grammova matice má tvar 2 [ ] (φ0, φ 0 ) 2 (φ 0, φ 1 ) 2 φ 0 (x i ).φ 0 (x i ) = i=0 (φ 1, φ 0 ) 2 (φ 1, φ 1 ) 2 2 φ 1 (x i ).φ 0 (x i ) i=0 2 φ 0 (x i ).φ 1 (x i ) i=0 2 φ 1 (x i ).φ 1 (x i ) i=0 [ ] 0 = = i=0 [ a pravá strana normální rovnice 2 [ ] (f, φ0 ) 2 f(x i ).φ 0 (x i ) [ ] = i=0 1.0 (f, φ 1 ) 2 2 = ( 1) f(x i ).φ 1 (x i ) ( 1).3 1 = = ] [ 2 1 ]. Příklad 6.3. Pro funkci f(x) := cos(x) nalezněte na intervalu 0, π aproximaci polynomem třetího stupně φ(x) pomocí metody nejmenších čtverců. Řešení. Hledaná funkce je polynom třetího stupně φ(x) := c 0 + c 1 x + c 2 x 2 + c 3 x 3, tedy úkolem je nalézt konstanty c 0, c 1, c 2, c 3 R. Uvažujme standardní bázi vektorového prostoru polynomů nejvýše třetího stupně φ 0 (x) := 1 φ 2 (x) := x 2 φ 1 (x) := x φ 3 (x) := x 3
149 142 Aproximace a sestavme normální rovnice. Za tímto účelem bude nutno spočítat dané skalární součiny. (φ 0, φ 0 ) 2 = (φ 1, φ 1 ) 2 = (φ 2, φ 2 ) 2 = (φ 3, φ 3 ) 2 = (φ 0, φ 1 ) 2 = (φ 0, φ 2 ) 2 = (φ 0, φ 3 ) 2 = (φ 1, φ 2 ) 2 = (φ 1, φ 3 ) 2 = (φ 2, φ 3 ) 2 = (φ 0, f) 2 = (φ 1, f) 2 = (φ 2, f) 2 = (φ 3, f) 2 = π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π 0 π dx = [x] π 0 = π [ ] π x x x dx = [ ] π x 2 x 2 x dx = [ ] π x 3 x 3 x dx = [ ] π x 1 x dx = [ ] π 1 x 2 x dx = [ ] π 1 x 3 x dx = [ ] π x x 2 x dx = [ ] π x x 3 x dx = [ ] π x 2 x 3 dx = x 6 6 = π3 3 = π5 5 = π7 7 = π2 2 0 = π3 3 = π4 4 = π4 4 = π5 5 = π6 6 1 cos(x) dx = [sin(x)] π 0 = 0 x cos(x) dx = [x sin(x) + cos(x)] π 0 = π x 2 cos(x) dx = [x 2 sin(x) + 2x cos(x) 2 sin(x)] π 0 = 2π x 3 cos(x) dx = [x 3 sin(x) + 3x 2 cos(x) 6x sin(x) 6 cos(x)] π 0 = 12 3π 2 Pak soustava normálních rovnic má tvar π π 2 2 π 2 π π 3 π π 4 π π 3 3 π 4 4 π 5 5 π 6 6 π 4 4 π 5 5 π 6 6 π 7 7 c 0 c 1 c 2 c 3 = Tuto soustavu lze řešit numericky (viz kapitola 3) 0 2 2π 12 3π 2 c 0. = , c1. = , c2. = , c3. =
150 6.2 Ortogonální systémy funkcí 143 Zbývá dosadit řešení do předpisu hledaného polynomu a získáme aproximační funkci φ(x) = x x x 3. Porovnání zadané funkce f a aproximační funkce φ je vykresleno na Obrázku f(x) 10 ϕ(x) Obr. 6.4: Příklad řešení, aproximace metodou nejmenších čtverců. 6.2 Ortogonální systémy funkcí V poznámce 6.1 jsme upozornili na skutečnost, že volba standardních polynomických bází jako je φ i = x i vede na velmi špatně podmíněné soustavy normálních rovnic. Této situaci se dá elegantně vyhnout pokud za bázi zvolíme ortogonální systém funkcí. Nejprve si tedy připomeňme, co rozumíme pod pojmem ortogonální systém funkcí. Definice 6.4. Nechť je dán vektorový prostor Φ se skalárním součinem (f, g), f, g Φ. Říkáme, že množina {φ 0,..., φ b } Φ je ortogonální, jestliže { = 0 (φ i, φ j ) 0 pro i j pro i = j Zobecněme skalární součin (f, g) 2 na prostoru L 2 (a, b) následovně b (f, g) 2,ω = f(x)g(x)ω(x)dx, a
151 144 Aproximace kde ω(x) je tzv. váhová funkce, x (a, b) : ω(x) > 0. Pro f, g R m+1 pak zobecňujeme Eukleidův skalární součin následovně m (f, g) 2,ω,m = f i g i ω i, i=0 kde ω i > 0, i = 0,..., m. Uveďme příklady některých ortogonálních systémů: Příklad 6.5. a) spojitý případ Funkce φ j (x) = cos jx, j = 0, 1,... tvoří na 0, π ortogonální systém s ω(x) 1 b) diskrétní případ Funkce φ j (x) = cos jx, j = 0, 1,..., m tvoří na síti bodů x i = 0,..., m s ω(x) 1 ortogonální systém = 2i+1 π, i = m+1 2 Příklad 6.6. Čebyševovy polynomy a) Polynomy T j (x) = cos(jarccosx), j = 0, 1,... tvoří na intervalu 1, 1 ortogonální systém s ω(x) = (1 x 2 ) 1 2. Tyto polynomy můžeme taktéž získat rekurentním vzorcem T 0 (x) 1, T 1 (x) = x, T j+1 (x) = 2xT j (x) T j 1 (x) b) Polynomy T j (x) = cos(jarccosx), j = 0, 1,..., m jsou ortogonální na síti x i = = cos ( ) 2i+1 π m+1 2, i = 0,..., m s ωi 1 Příklad 6.7. Legendrovy polynomy Polynomy P 0 (x) 1, P j (x) = 1 2 j j! d j dx j [ (x 2 1) j], j = 1, 2,... tvoří na 1, 1 ortogonální systém s ω(x) 1. Tyto polynomy je taktéž možno získat rekurentním vzorcem P 0 (x) 1, P 1 (x) = x, P j+1 (x) = 2j + 1 j + 1 xp j(x) j j + 1 P j 1(x). Poznámka 6.8. Polynomy v Příkladech 6.6 a 6.7 lze rozšířit z intervalu 1, 1 na interval a, b prostřednictvím transformace y = x + 1 (b a) + a, x 1, 1. 2
152 6.2 Ortogonální systémy funkcí 145 Lemma 6.9. Nechť funkce φ 0,..., φ n jsou ortogonální. Pak řešení normálních rovnic má tvar c i = (f, φ i), i = 0,..., n. (φ i, φ i ) Důkaz. Vyplývá přimo z vlastností ortogonality, tj. (φ i, φ j ) pro i j c 0 (φ i, φ 0 ) + + c i (φ i, φ i ) + + c n (φ i, φ n )+ = (f, φ i ) c i = (f, φ i) (φ i, φ i ) Z uvedeného Lemattu 6.9 tedy plyne, že při použití ortogonálního bázového systému funkcí není potřeba řešit soustavu normálních rovnic, neboť její matice je diagonální a řešení tudíž můžeme vypočíst přímo dosazením do rovnic c i = (f, φ i) (φ i, φ i ). Tento postup pochopitelně zcela eliminuje jakýkoliv vliv numerické nestability na hledání aproximační funkce.
153 146 Kapitola 7 Numerická derivace a integrace Z S V Průvodce studiem J Výpočet derivace a integrálu je další velmi hojně používanou matematickou úlohou. Sami víme, že se však v případě velmi složitých funkcí může jednat o velice náročnou úlohu. Proto mnohdy nezbývá, nežli využít numerických metod k jejich vyčíslení. V následující kapitole se proto seznámíme se základními numerickými metodami, které umožní najít jejich aproximace. Numerická derivace i integrace je založena na prosté myšlence nahradit původní derivovanou funkci či integrovanou funkci interpolačním polynomem a poté derivovat resp. integrovat tento polynom. Pochopitelně čím přesnější bude interpolační polynom, tím přesnější aproximaci derivace či integrálu dostaneme. Jak je známo z teorie interpolace, její přesnost můžeme řídit vhodnou volbou rozmístění interpolačních uzlů. Toho se pak dá využít i při přesnějším vyhodnocení numerické derivace či integrálu. 7.1 Numerická derivace Jak již bylo zmíněno, numerická derivace spočívá v derivování interpolačního polynomu nahrazujícího derivovanou funkci f. K tomuto účelu tedy použijeme Newtonův interpolační polynom f(x) N n (x) = f[x 0 ] + f[x 0, x 1 ](x x 0 ) f[x 0,..., x n ](x x 0 )... (x x n ) První derivace pak může být numericky vypočítána následovně f (x) N n = f[x 0, x 1 ] + f[x 0, x 1, x 2 ] [(x x x 0)(x x 1 )] f[x 0,..., x n ] [(x x x 0)... (x x n 1 )]
154 7.1 Numerická derivace 147 Označíme-li chybu interpolace kde Pak chyba první derivace je E n+1 (x) = f (n+1) (ξ) (n + 1)! e(x) e(x) = (x x 0 )... (x x n ) ξ x 0, x n. E n+1(x) = f (n+1) (ξ) (n + 1)! d dx e(x). Předpis pro k-tou numerickou derivaci funkce f pak má tvar (x) = f[x 0,..., x k ] dk [(x x dx k 0 )... (x x k 1 )] f[x 0,..., x n ] dk [(x x dx k 0 )... (x x n 1 )] a její chyba má tvar E n+1(x) (k) = f (n+1) (ξ) d k e(x). (n + 1)! dxk Pro výpočet numerické derivace pak obvykle volíme ekvidistantní síť uzlů, tj. N (k) n x i+1 x i = h, i = 0,..., n 1. Pak například pro volbu x 1 = x získáváme interpolační body x 0 = x h x 1 = x x 2 = x + h... Uveďme tedy několik základních formulí pro numerickou derivaci včetně jejich chyby: Vzorce pro první derivaci 1. Stupeň interpolačního polynomu n = 1 Pro volbu x 0 = x x 1 = x + h dostáváme následující formuli pro numerickou derivaci f f(x + h) f(x) (x) = 1 h 2 hf (ξ) ξ x, x + h, h > 0 Volbu x 0 a x 1 můžeme však provést i následovně x 0 = x h x 1 = x. Pak dostáváme následující vzorec pro první derivaci f (x) = f(x) f(x h) h hf (ξ) ξ x h, x, h > 0
155 148 Numerická derivace a integrace 2. Stupeň interpolačního polynomu n = 2 Nejpřirozenější volbou pro uzly interpolace se v případě kvadratického interpolačního polynomu jeví x 0 = x h x 1 = x x 2 = x + h. f f(x + h) f(x h) (x) = 1 2h 6 hf (ξ) ξ x h, x + h, h > 0 Velmi často se stává, že je nutné počítat i jednostranné derivace. V takovém případě můžeme volit x 0 = x resp. x 0 = x 2h x 1 = x + h x 1 = x h x 2 = x + 2h x 2 = x. Derivováním příslušných interpolačních polynomů pak dostáváme následující vzorce pro derivaci f (x) = 3f(x)+4f(x+h) f(x+2h) + 1 2h 3 h2 f (ξ) ξ x, x + 2h, h > 0 f (x) = 3f(x) 4f(x h)+f(x 2h) + 1 2h 3 h2 f (ξ) ξ x 2h, x, h > 0 Vzorce pro druhé derivace 1. Stupeň interpolačního polynomu n = 2 f (x) = f(x+h) 2f(x)+f(x h) 1 h 2 12 h2 f IV (ξ) ξ x h, x + h f (x) = f(x+2h) 2f(x+h)+f(x) hf (ξ) ξ x, x + 2h h 2 f (x) = f(x) 2f(x h)+f(x 2h) hf (ξ) ξ x 2h, x h 2 2. Stupeň interpolačního polynomu n = 3 f (x) = 12f(x) 30f(x ± h) + 24f(x ± 2h) 6f(x ± 3h) 6h 2 + O(h 3 ) Poznámka 7.1. Je-li stupeň interpolačního polynomu shodný s řádem derivace (tj. n = k) pak f (k) (x) k!f[x 0,..., x n ] f (k) (x) Δk f 0 h k Poznámka 7.2. Ze vzorců je patrné, že čím menší je h tím je vzorec přesnější. Na druhé straně však vždy dělíme h a pokud je h příliš malé, roste zaokrouhlovací chyba. Optimální volba h opt je zobrazena na Obrázku 7.1.
156 7.1 Numerická derivace 149 Obr. 7.1: Volba optimální diskretizace. Obr. 7.2: Příklad - detekce hran. Příklad 7.3. Navrhněte jednoduchý gradientní algoritmus pro detekci hran na černobílém Obrázku 7.2. Řešení. Obrázek bude v počítači reprezentován jako dvourozměrné pole jasových hodnot v jednotlivých bodech (viz Obrázek 7.3). Náš algoritmus nejprve spočítá změny jasové funkce ve směrech x, y v jednotlivých obrazových bodech a pokud bude v těchto bodech změna dostatečná, pak se jedná o hranu. Jelikož změna funkce je definována gradientem, bude nutno spočítat numerický gradient. Využijeme-li předpis pro numerickou derivaci jednorozměrné reálné funkce f f(x + h) f(x) (x) h a aplikujeme-li jej v obou směrech naší obrazové funkce, získáme předpis f x (x, y) f(x + 1, y) f(x, y) f y (x, y) f(x, y + 1) f(x, y).
157 150 Numerická derivace a integrace Obr. 7.3: Reprezentace obrazu v počítači. Pak velikost změny je dána velikostí gradientu, tj. e(x, y) = (f x (x, y)) 2 + (f y (x, y)) 2. Následně prahováním určíme pouze relevantní body, t.j. budeme uvažovat pouze body s dostatečnou velikostí změny jasové funkce (jinak řečeno body [x, y] pro které e(x, y) > σ, kde σ R + je pevně vhodně zvolená konstanta nebo-li práh). Výsledek lze pozorovat na Obrázku 7.4. Obr. 7.4: Řešení - detekce hran. Ačkoliv tento jednoduchý algoritmus vypadá na první pohled účinně, při komplikovanějších obrázcích je těžké určit vhodný práh (viz Obrázek 7.5). Od algoritmu využívajícího informace o jasové funkci z dvou sousedících bodů však ani nelze očekávat uspokojivější výsledky. Více informací o zpracování a analýze obrazu lze nalézt například v [17]. 7.2 Newtonovy-Cotesovy vzorce Nejjednodušší numerická metoda pro numerickou integraci vychází z integrace Lagrangeova interpolačního polynomu na ekvidistantní síti bodů.
Numerická matematika 1
Numerická matematika 1 Obsah 1 Řešení nelineárních rovnic 3 1.1 Metoda půlení intervalu....................... 3 1.2 Metoda jednoduché iterace..................... 4 1.3 Newtonova metoda..........................
Numerické řešení nelineárních rovnic
Numerické řešení nelineárních rovnic Mirko Navara http://cmp.felk.cvut.cz/ navara/ Centrum strojového vnímání, katedra kybernetiky FEL ČVUT Karlovo náměstí, budova G, místnost 104a http://math.feld.cvut.cz/nemecek/nummet.html
Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
Interpolace, ortogonální polynomy, Gaussova kvadratura
Interpolace, ortogonální polynomy, Gaussova kvadratura Petr Tichý 20. listopadu 2013 1 Úloha Lagrangeovy interpolace Dán omezený uzavřený interval [a, b] a v něm n + 1 různých bodů x 0, x 1,..., x n. Nechť
Posloupnosti a řady. 28. listopadu 2015
Posloupnosti a řady Přednáška 5 28. listopadu 205 Obsah Posloupnosti 2 Věty o limitách 3 Řady 4 Kritéria konvergence 5 Absolutní a relativní konvergence 6 Operace s řadami 7 Mocninné a Taylorovy řady Zdroj
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci
FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY Dana Černá http://www.fp.tul.cz/kmd/ Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci OBSAH A CÍLE SEMINÁŘE: Opakování a procvičení vybraných
PŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
Numerické řešení diferenciálních rovnic
Numerické řešení diferenciálních rovnic Omezení: obyčejné (nikoli parciální) diferenciální rovnice, Cauchyho počáteční úloha, pouze jedna diferenciální rovnice 1. řádu 1/1 Numerické řešení diferenciálních
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
Numerické řešení nelineárních rovnic
Numerické řešení nelineárních rovnic Mirko Navara http://cmp.felk.cvut.cz/ navara/ Centrum strojového vnímání, katedra kybernetiky FEL ČVUT Karlovo náměstí, budova G, místnost 104a http://math.feld.cvut.cz/nemecek/nummet.html
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech
Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech 1. července 2008 1 Funkce v R n Definice 1 Necht n N a D R n. Reálnou funkcí v R n (reálnou funkcí n proměnných) rozumíme zobrazení
Numerická matematika Písemky
Numerická matematika Písemky Bodování Každá písemka je bodována maximálně 20 body. Celkem student může získat za písemky až 40 bodů, pro udělení zápočtu musí získat minimálně 20 bodů. Písemka č. 1 Dva
Aplikovaná numerická matematika
Aplikovaná numerická matematika 1. Úvod do ANM doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních programů
Aplikovaná numerická matematika
Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 38 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 2 3 4 5 6 2 / 38 2 / 38 čárkou Definition 1 Bud základ β N pevně dané číslo β 2, x bud reálné číslo s
Čebyševovy aproximace
Čebyševovy aproximace Čebyševova aproximace je tzv hledání nejlepší stejnoměrné aproximace funkce v daném intervalu Hledáme funkci h x, která v intervalu a,b minimalizuje maximální absolutní hodnotu rozdílu
Numerická stabilita algoritmů
Numerická stabilita algoritmů Petr Tichý 9. října 2013 1 Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá
10 Funkce více proměnných
M. Rokyta, MFF UK: Aplikovaná matematika II kap. 10: Funkce více proměnných 16 10 Funkce více proměnných 10.1 Základní pojmy Definice. Eukleidovskou vzdáleností bodů x = (x 1,...,x n ), y = (y 1,...,y
Matematika I A ukázkový test 1 pro 2014/2015
Matematika I A ukázkový test 1 pro 2014/2015 1. Je dána soustava rovnic s parametrem a R x y + z = 1 x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a a) Napište Frobeniovu větu (existence i počet řešení). b)
Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky
Matematika III Řady Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská Ústav matematiky Přednášky ZS 202-203 Obsah Číselné řady. Součet nekonečné řady. Kritéria konvergence 2 Funkční řady. Bodová konvergence.
Matematika I A ukázkový test 1 pro 2011/2012. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a
Matematika I A ukázkový test 1 pro 2011/2012 1. Je dána soustava rovnic s parametrem a R x y + z = 1 a) Napište Frobeniovu větu. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a b) Vyšetřete počet řešení soustavy
Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011
Iterační metody řešení soustav lineárních rovnic Michal Čihák 27. prosince 2011 Přímé metody řešení soustav lineárních rovnic V přednáškách z lineární algebry jste se seznámili s několika metodami řešení
Úlohy nejmenších čtverců
Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.
Maturitní témata z matematiky
Maturitní témata z matematiky G y m n á z i u m J i h l a v a Výroky, množiny jednoduché výroky, pravdivostní hodnoty výroků, negace operace s výroky, složené výroky, tabulky pravdivostních hodnot důkazy
stránkách přednášejícího.
Předmět: MA 4 Dnešní látka Iterační metoda Jacobiova iterační metoda Gaussova-Seidelova iterační metoda Superrelaxační metoda (metoda SOR) Metoda sdružených gradientů Četba: Text o lineární algebře v Příručce
Co je obsahem numerických metod?
Numerické metody Úvod Úvod Co je obsahem numerických metod? Numerické metody slouží k přibližnému výpočtu věcí, které se přesně vypočítat bud nedají vůbec, nebo by byl výpočet neúměrně pracný. Obsahem
Věta o dělení polynomů se zbytkem
Věta o dělení polynomů se zbytkem Věta. Nechť R je okruh, f, g R[x], přičemž vedoucí koeficient polynomu g 0 je jednotka okruhu R. Pak existuje jediná dvojice polynomů q, r R[x] taková, že st(r) < st(g)
DRN: Kořeny funkce numericky
DRN: Kořeny funkce numericky Kořenem funkce f rozumíme libovolné číslo r splňující f(r) = 0. Fakt. Nechť f je funkce na intervalu a, b. Jestliže f(a) f(b) < 0 (tj. f(a) a f(b) mají opačná znaménka) a f
a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.
Výpočet vlastních čísel a vlastních vektorů S pojmem vlastního čísla jsme se již setkali například u iteračních metod pro řešení soustavy lineárních algebraických rovnic. Velikosti vlastních čísel iterační
LEKCE10-RAD Otázky
Řady -ekv ne ŘADY ČÍSEL 1. limita posloupnosti (operace založená na vzdálenosti bodů) 2. supremum nebo infimum posloupnosti (operace založená na uspořádání bodů). Z hlavních struktur reálných čísel zbývá
Základy matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Riemannův určitý integrál
Riemannův určitý integrál 1. Motivační příklad Příklad (Motivační příklad pro zavedení Riemannova integrálu). Nechť,. Vypočtěme obsah vybarvené oblasti ohraničené grafem funkce, osou a svislými přímkami
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
Kapitola 13 Kvadratické formy Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru f(x 1,..., x n ) = a ij x i x j, kde koeficienty a ij T. j=i Kvadratická forma v n proměnných
Řešení nelineárních rovnic
Řešení nelineárních rovnic Metody sečen (sekantová a regula falsi) Máme dva body x 1 a x mezi nimiž se nachází kořen Nový bod x 3 volíme v průsečíku spojnice bodů x 1, f x 1 a x, f x (sečny) s osou x ERRBISPAS
Funkce jedn e re aln e promˇ enn e Derivace Pˇredn aˇska ˇr ıjna 2015
Funkce jedné reálné proměnné Derivace Přednáška 2 15. října 2015 Obsah 1 Funkce 2 Limita a spojitost funkce 3 Derivace 4 Průběh funkce Informace Literatura v elektronické verzi (odkazy ze STAGu): 1 Lineární
Parciální derivace a diferenciál
Parciální derivace a diferenciál Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_143_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
Moderní numerické metody
Moderní numerické metody Sbírka příkladů doc. RNDr. Jaromír Baštinec, CSc. RNDr. Michal Novák, Ph.D. ÚSTAV MATEMATIKY Moderní numerické metody 1 Obsah 1 Soustavy lineárních rovnic 7 2 Řešení jedné nelineární
Studijní text pro obor G+K Katedra matematiky Fakulta stavební ROVNICE. Doc. RNDr. Milada Kočandrlová, CSc.
Studijní text pro obor G+K Katedra matematiky Fakulta stavební České vysoké učení technické OBYČEJNÉ DIFERENCIÁLNÍ ROVNICE Doc. RNDr. Milada Kočandrlová, CSc. Lektorovali: RNDr. Milan Kočandrle, CSc.,
I. 7. Diferenciál funkce a Taylorova věta
I. 7. Diferenciál funkce a Taylorova věta 343 I. 7. Diferenciál funkce a Taylorova věta Věta 26. Funkce f má v bodě x 0 diferenciál (je diferencovatelná v x 0 ) právě tehdy, když existuje vlastní derivace
Numerické řešení nelineárních rovnic
Numerické řešení nelineárních rovnic Mirko Navara http://cmp.felk.cvut.cz/~navara/ Centrum strojového vnímání, katedra kybernetiky FEL ČVUT Karlovo náměstí, budova G, místnost 104a http://math.feld.cvut.cz/nemecek/nummet.html
Parciální derivace a diferenciál
Parciální derivace a diferenciál Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
Kombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
Definice 1.1. Nechť je M množina. Funkci ρ : M M R nazveme metrikou, jestliže má následující vlastnosti:
Přednáška 1. Definice 1.1. Nechť je množina. Funkci ρ : R nazveme metrikou, jestliže má následující vlastnosti: (1 pro každé x je ρ(x, x = 0; (2 pro každé x, y, x y, je ρ(x, y = ρ(y, x > 0; (3 pro každé
Matematika 1 Jiˇr ı Fiˇser 19. z aˇr ı 2016 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 19. z aˇr ı / 19
Matematika 1 Jiří Fišer 19. září 2016 Jiří Fišer (KMA, PřF UP Olomouc) KMA MAT1 19. září 2016 1 / 19 Zimní semestr KMA MAT1 1 Úprava algebraických výrazů. Číselné obory. 2 Kombinatorika, základy teorie
MATURITNÍ TÉMATA Z MATEMATIKY
MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické
11. přednáška 10. prosince Kapitola 3. Úvod do teorie diferenciálních rovnic. Obyčejná diferenciální rovnice řádu n (ODR řádu n) je vztah
11. přednáška 10. prosince 2007 Kapitola 3. Úvod do teorie diferenciálních rovnic. Obyčejná diferenciální rovnice řádu n (ODR řádu n) je vztah F (x, y, y, y,..., y (n) ) = 0 mezi argumentem x funkce jedné
Petr Hasil. Prvákoviny c Petr Hasil (MUNI) Úvod do infinitezimálního počtu Prvákoviny / 57
Úvod do infinitezimálního počtu Petr Hasil Prvákoviny 2015 c Petr Hasil (MUNI) Úvod do infinitezimálního počtu Prvákoviny 2015 1 / 57 Obsah 1 Úvod Funkce Reálná čísla a posloupnosti Limita a spojitost
úloh pro ODR jednokrokové metody
Numerické metody pro řešení počátečních úloh pro ODR jednokrokové metody Formulace: Hledáme řešení y = y() rovnice () s počáteční podmínkou () y () = f(, y()) () y( ) = y. () Smysl: Analyticky lze spočítat
1 Báze a dimenze vektorového prostoru 1
1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější
s velmi malými čísly nevýhodou velký počet operací, proto je mnohdy postačující částečný výběr
1. Úvod 1.1. druhy chyb: ch. matematického modelu rozdíl mezi idealizovaným a reálným problémem ch. numerické metody výsledkem nepřesné řešení ch. zaokrouhlovací vystupují současaně 1.. chyba absolutní
NUMERICKÉ METODY. Problematika num. řešení úloh, chyby, podmíněnost, stabilita algoritmů. Aproximace funkcí.
NUMERICKÉ METODY. Problematika num. řešení úloh, chyby, podmíněnost, stabilita algoritmů. Aproximace funkcí. RNDr. Radovan Potůček, Ph.D., K-15, FVT UO, KŠ 5B/11, Radovan.Potucek@unob.cz, tel. 443056 -----
Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady.
Číselné řady Definice (Posloupnost částečných součtů číselné řady). Nechť je číselná posloupnost. Pro všechna položme. Posloupnost nazýváme posloupnost částečných součtů řady. Definice (Součet číselné
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.
Předmět: MA4 Dnešní látka: Od okrajových úloh v 1D k o. ú. ve 2D Laplaceův diferenciální operátor Variačně formulované okrajové úlohy pro parciální diferenciální rovnice a metody jejich přibližného řešení
Derivace funkce. Přednáška MATEMATIKA č Jiří Neubauer
Přednáška MATEMATIKA č. 9-11 Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz Šotová, J., Doudová, L. Diferenciální počet funkcí jedné proměnné Motivační příklady
Gymnázium Jiřího Ortena, Kutná Hora
Předmět: Náplň: Třída: Počet hodin: Pomůcky: Cvičení z matematiky algebra (CZMa) Systematizace a prohloubení učiva matematiky: Číselné obory, Algebraické výrazy, Rovnice, Funkce, Posloupnosti, Diferenciální
Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda
Předmět: MA 4 Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda Četba: Text o lineární algebře v Příručce přežití na webových
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
Kapitola 5 Vektorové prostory 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 operací sčítání a násobení
Matematická analýza pro informatiky I.
Matematická analýza pro informatiky I. 10. přednáška Diferenciální počet funkcí více proměnných (II) Jan Tomeček jan.tomecek@upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci
Funkce komplexní proměnné a integrální transformace
Funkce komplexní proměnné a integrální transformace Fourierovy řady I. Marek Lampart Text byl vytvořen v rámci realizace projektu Matematika pro inženýry 21. století (reg. č. CZ.1.07/2.2.00/07.0332), na
1. Obyčejné diferenciální rovnice
& 8..8 8: Josef Hekrdla obyčejné diferenciální rovnice-separace proměnných. Obyčejné diferenciální rovnice Rovnice, ve které je neznámá funkcí a v rovnici se vyskytuje spolu se svými derivacemi, se nazývá
1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:
Opakování středoškolské matematiky Slovo úvodem: Tato pomůcka je určena zejména těm studentům presenčního i kombinovaného studia na VŠFS, kteří na středních školách neprošli dostatečnou průpravou z matematiky
Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...
Kapitola 1 Úvod 1.1 Značení N... přirozená čísla (1, 2, 3,...). Z... celá čísla ( 3, 2, 1, 0, 1, 2,...). Q... racionální čísla ( p, kde p Z a q N) q R... reálná čísla C... komplexní čísla 1.2 Výroky -
Typy příkladů na písemnou část zkoušky 2NU a vzorová řešení (doc. Martišek 2017)
Typy příkladů na písemnou část zkoušky NU a vzorová řešení (doc. Martišek 07). Vhodnou iterační metodou (tj. metodou se zaručenou konvergencí) řešte soustavu: x +x +4x 3 = 3.5 x 3x +x 3 =.5 x +x +x 3 =.5
Numerické metody a statistika
Numerické metody a statistika Radek Kučera VŠB-TU Ostrava 016-017 ( ) Numerické metody a statistika 016-017 1 / Numerické integrování ( ) Numerické metody a statistika 016-017 / Geometrický význam integrálu
Aplikovaná numerická matematika - ANM
Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových
Numerická matematika Banka řešených příkladů
Numerická matematika Banka řešených příkladů Radek Kučera, Pavel Ludvík, Zuzana Morávková Katedra matematiky a deskriptivní geometrie Vysoká škola báňská Technická Univerzita Ostrava K D M G ISBN 978-80-48-894-6
Derivace a monotónnost funkce
Derivace a monotónnost funkce Věta : Uvažujme funkci f (x), která má na intervalu I derivaci f (x). Pak platí: je-li f (x) > 0 x I, funkce f je na intervalu I rostoucí. je-li f (x) < 0 x I, funkce f je
Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách
Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách Ústní zkouška z oboru Náročnost zkoušky je podtržena její ústní formou a komisionálním charakterem. Předmětem bakalářské zkoušky
Úvodní informace. 17. února 2018
Úvodní informace Funkce více proměnných Přednáška první 17. února 2018 Obsah 1 Úvodní informace. 2 Funkce více proměnných Definiční obor Limita a spojitost Derivace, diferencovatelnost, diferenciál Úvodní
Primitivní funkce a Riemann uv integrál Lineární algebra Taylor uv polynom Extrémy funkcí více prom ˇenných Matematika III Matematika III Program
Program Primitivní funkce a Riemannův integrál Program Primitivní funkce a Riemannův integrál Lineární algebra Program Primitivní funkce a Riemannův integrál Lineární algebra Taylorův polynom Program Primitivní
Matematická analýza pro informatiky I. Limita posloupnosti (I)
Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz
1 Polynomiální interpolace
Polynomiální interpolace. Metoda neurčitých koeficientů Příklad.. Nalezněte polynom p co nejmenšího stupně, pro který platí p() = 0, p(2) =, p( ) = 6. Řešení. Polynom hledáme metodou neurčitých koeficientů,
Drsná matematika III 6. přednáška Obyčejné diferenciální rovnice vyšších řádů, Eulerovo přibližné řešení a poznámky o odhadech chyb
Drsná matematika III 6. přednáška Obyčejné diferenciální rovnice vyšších řádů, Eulerovo přibližné řešení a poznámky o odhadech chyb Jan Slovák Masarykova univerzita Fakulta informatiky 23. 10. 2006 Obsah
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
Matematický seminář. OVO ŠVP Tématický celek Učivo ŠVP Integrace Mezipředmětové vztahy. jejich soustavy. Spojitost funkce v bodě. Limita funkce v bodě
Řeší s porozumněním rovnice s parametrem Rovnice, nerovnice a jejich soustavy Řovnice, nerovnice a jejich soustavy Třetí, 24 hodin Zvolí vhodnou metodu řešení rovnice nebo nerovnice Vysvětlí zvolený způsob
Význam a výpočet derivace funkce a její užití
OPAKOVÁNÍ ZÁKLADŮ MATEMATIKY Metodický list č. 1 Význam a výpočet derivace funkce a její užití 1. dílčí téma: Výpočet derivace přímo z definice a pomocí základních vzorců. K tomuto tématu je třeba zopakovat
7. Aplikace derivace
7. Aplikace derivace Verze 20. července 2017 Derivace funkce se využívá při řešení úloh technické praxe i teorie. Uvedeme několik z nich: vyčíslení hodnot funkce, výpočet limity, vyšetřování průběhu funkce
Arnoldiho a Lanczosova metoda
Arnoldiho a Lanczosova metoda 1 Částečný problém vlastních čísel Ne vždy je potřeba (a někdy to není ani technicky možné) nalézt celé spektrum dané matice (velké řídké matice). Úloze, ve které chceme aproximovat
Soustavy nelineárních rovnic pomocí systému Maple. Newtonova metoda.
Úvod Soustavy nelineárních rovnic pomocí systému Maple. Newtonova metoda. Mnoho technických problémů vede na řešení matematických úloh, které se následně převedou na úlohy řešení soustav nelineárních rovnic
Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014. 1. Obor reálných čísel
Mgr. Ladislav Zemánek Maturitní okruhy Matematika 2013-2014 1. Obor reálných čísel - obor přirozených, celých, racionálních a reálných čísel - vlastnosti operací (sčítání, odčítání, násobení, dělení) -
ŘADY KOMPLEXNÍCH FUNKCÍ
ŘADY KOMPLEXNÍCH FUNKCÍ OBECNÉ VLASTNOSTI Řady komplexních čísel z n byly částečně probírány v kapitole o číselných řadách. Definice říká, že n=0 z n = z, jestliže z je limita částečných součtů řady z
Diferenciální rovnice
Obyčejné diferenciální rovnice - studijní text pro cvičení v předmětu Matematika - 2. Studijní materiál byl připraven pracovníky katedry E. Novákovou, M. Hyánkovou a L. Průchou za podpory grantu IG ČVUT
0.1 Úvod do matematické analýzy
Matematika I (KMI/PMATE) 1 0.1 Úvod do matematické analýzy 0.1.1 Limita a spojitost funkce Lineární funkce Lineární funkce je jedna z nejjednodušších a možná i nejpoužívanějších funkcí. f(x) = kx + q D(f)
LDF MENDELU. Simona Fišnarová (MENDELU) LDR druhého řádu VMAT, IMT 1 / 22
Lineární diferenciální rovnice druhého řádu Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)
i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice
I. Funkce dvou a více reálných proměnných 1. Úvod Značení: V textu budeme používat označení: N pro množinu všech přirozených čísel; R pro množinu všech reálných čísel; R n pro množinu všech uspořádaných
PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.
PRIMITIVNÍ FUNKCE V předchozích částech byly zkoumány derivace funkcí a hlavním tématem byly funkce, které derivace mají. V této kapitole se budou zkoumat funkce, které naopak jsou derivacemi jiných funkcí
Otázky k ústní zkoušce, přehled témat A. Číselné řady
Otázky k ústní zkoušce, přehled témat 2003-2004 A Číselné řady Vysvětlete pojmy částečný součet řady, součet řady, řadonverguje, řada je konvergentní Formulujte nutnou podmínku konvergence řady a odvoďte
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Maturitní otázky z předmětu MATEMATIKA
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu MATEMATIKA 1. Výrazy a jejich úpravy vzorce (a+b)2,(a+b)3,a2-b2,a3+b3, dělení mnohočlenů, mocniny, odmocniny, vlastnosti
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Derivace funkcí více proměnných
Derivace funkcí více proměnných Pro studenty FP TUL Martina Šimůnková 16. května 019 1. Derivace podle vektoru jako funkce vektoru. Pro pevně zvolenou funkci f : R d R n a bod a R d budeme zkoumat zobrazení,
Matematika (KMI/PMATE)
Úvod do matematické analýzy Funkce a její vlastnosti Funkce a její vlastnosti Veličina Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Funkce a její
0.1 Úvod do matematické analýzy
Matematika I (KMI/PMATE) 1 0.1 Úvod do matematické analýzy 0.1.1 Pojem funkce Veličina - pojem, který popisuje kvantitativní (číselné) vlastnosti reálných i abstraktních objektů. Příklady veličin: hmotnost
Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora
Předmět: Náplň: Třída: Počet hodin: Pomůcky: Cvičení z matematiky Systematizace a prohloubení učiva matematiky 4. ročník 2 hodiny Učebna s dataprojektorem, PC, grafický program, tabulkový procesor Číselné
Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...
Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................
Úvod do problematiky numerických metod. Numerické metody. Ústav matematiky. 6. února 2006
Numerické metody Doc. RNDr. Libor Čermák, CSc. RNDr. Rudolf Hlavička, CSc. Ústav matematiky Fakulta strojního inženýrství Vysoké učení technické v Brně 6. února 2006 Obsah Úvod do problematiky numerických