FAKULTA STAVEBNÍ MATEMATIKA IV STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA



Podobné dokumenty
FAKULTA STAVEBNÍ MATEMATIKA NUMERICKÉ METODY STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA

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

Aplikovaná numerická matematika - ANM

Co je obsahem numerických metod?

Numerická matematika 1

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

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

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

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

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

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

0.1 Úvod do lineární algebry

Numerická matematika Písemky

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

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

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

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

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

s velmi malými čísly nevýhodou velký počet operací, proto je mnohdy postačující částečný výběr

- funkce, které integrujete aproximujte jejich Taylorovými řadami a ty následně zintegrujte. V obou případech vyzkoušejte Taylorovy řady

0.1 Úvod do lineární algebry

Čebyševovy aproximace

Matematika B101MA1, B101MA2

Operace s maticemi. 19. února 2018

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

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

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

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

NUMERICKÉ METODY. Josef Dalík

Semestrální písemka BMA3 - termín varianta A13 vzorové řešení

Interpolace, ortogonální polynomy, Gaussova kvadratura

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

Soustavy linea rnı ch rovnic

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

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

Aplikovaná numerická matematika

Soustavy lineárních rovnic a determinanty

Globální matice konstrukce

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

Numerická stabilita algoritmů

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

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

(Cramerovo pravidlo, determinanty, inverzní matice)

IB112 Základy matematiky

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

Úlohy nejmenších čtverců

Kombinatorická minimalizace

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

Základy matematické analýzy

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

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

Libovolnou z probraných metod najděte s přesností na 3 desetinná místa kladný kořen rovnice. sin x + x 2 2 = 0.

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

Princip řešení soustavy rovnic

Cvičení 5 - Inverzní matice

Numerické metody a programování. Lekce 4


Numerické řešení diferenciálních rovnic

Gymnázium Jiřího Ortena, Kutná Hora

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

1 Linearní prostory nad komplexními čísly

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

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Řešení nelineárních rovnic

Numerické metody a programování

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

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

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

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

Limita a spojitost funkce

Operace s maticemi

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

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

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

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

8 Matice a determinanty

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

MATLAB a numerické metody

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Matematika III. Miroslava Dubcová, Daniel Turzík, Drahoslava Janovská. Ústav matematiky

metoda Regula Falsi 23. října 2012

1 Vektorové prostory.

Numerické metody a programování. Lekce 7

1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:

Aplikovaná numerická matematika

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

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

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

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

9. přednáška 26. listopadu f(a)h < 0 a pro h (0, δ) máme f(a 1 + h, a 2,..., a m ) f(a) > 1 2 x 1

Požadavky a podmínky zkoušky z Numerických metod I (2NU)

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

pouze u některých typů rovnic a v tomto textu se jím nebudeme až na

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

10 Funkce více proměnných

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

PŘEDNÁŠKA 2 POSLOUPNOSTI

Hledání extrémů funkcí

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

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STAVEBNÍ doc RNDr Josef Dalík, CSc MATEMATIKA IV NUMERICKÁ ANALÝZA STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA

Typeset by L A TEX 2ε c Josef Dalík 2008 dalikj@fcevutbrcz

Obsah 1 Předmluva 5 2 Úvod 6 21 Co je to numerická analýza? 6 22 Co je to chyba? 7 3 Chyby v numerických výpočtech 8 31 Záznam čísel v paměti počítače 8 32 Chyby, ovlivňující výsledky numerických výpočtů 9 4 Jedna rovnice pro jednu neznámou 12 41 Metody pro určení počáteční aproximace 13 42 Metoda prosté iterace 16 43 Efektivní zpřesňující metody 19 431 Newtonova metoda (linearizace) 19 432 Geometrický význam Newtonovy metody 20 433 Analýza chyby Newtonovy metody 20 434 Fourierovy podmínky 21 435 Modifikace Newtonovy metody 22 5 Normy matic a vektorů 23 6 Řešení systémů lineárních rovnic přímými metodami 27 61 Gaussova eliminace s (částečným) výběrem hlavních prvků 30 62 LU rozklad matice 30 63 Výpočet matice inverzní 31 64 Speciální matice 32 641 Symetrické pozitivně definitní matice 33 642 Řídké matice 34 65 Číslo podmíněnosti matice 35 7 Řešení systémů lineárních rovnic iterací 39 71 Jacobiova metoda 40 72 Gaussova Seidelova metoda 41 73 Relaxační metody 42 3

8 Řešení systémů nelineárních rovnic 45 81 Metoda prosté iterace 46 82 Newtonova metoda 48 9 Aproximace funkce 51 91 Úloha Lagrangeovy interpolace 52 911 Interpolační polynomy 52 912 Interpolační kubické splajny 56 92 Úloha Hermiteovy interpolace 60 921 Hermiteův interpolační polynom 60 922 Hermiteovy kubické interpolační splajny 62 93 Diskrétní metoda nejmenších čtverců (MNČ) 63 10 Numerický výpočet derivace 70 11 Počáteční problémy pro ODR (obyčejné diferenciální rovnice) 73 12 Aproximace řešení okrajových úloh pro ODR 2 řádu metodou sítí 85 121 Klasická formulace úlohy 85 122 Fyzikální význam 85 123 Existence přesného řešení 86 124 Standardní metoda sítí 86 13 Numerická integrace 92 131 Obdélníkové, lichoběžníkové a Simpsonovo pravidlo 92 132 Gaussova kvadratura 95 133 Rombergova metoda 98 134 Integrace funkcí dvou proměnných 100 14 Aproximace řešení okrajových úloh pro ODR metodou konečných prvků (MKP) 104 141 Okrajová úloha pro ODR 2 řádu 105 142 Okrajová úloha pro ODR 4 řádu 116 4

1 Předmluva Tato studijní opora je určena studentům předmětu Matematika IV navazujícího magisterského studijního programu Stavební inženýrství jako úplný podklad pro přednášky, cvičení i pro samostatnou práci Numerické metody umožňují přibližné řešení mnoha prakticky důležitých úloh, které je v současné době široce využíváno v technických a přírodních vědách, v ekonomii, medicíně, společenských vědách a v oblasti správy společnosti V důsledku rozvoje numerických metod a rychlého růstu výkonnosti i přístupnosti počítačů vznikla řada univerzálních programových systémů, schopných efektivně a s uživatelským komfortem řešit většinu základních typů těchto tzv numerických úloh Jde například o systémy MATLAB, Mathematica, MAPLE, na aproximaci řešení okrajových úloh pro diferenciální rovnice orientované systémy ANSYS, ALEPH, COMSOL, FLUENT, český systém pro automatické projektování stavebních konstrukcí NEXIS a další Tyto systémy jsou stále častěji využívány pro řešení numerických úloh na úkor univerzálních programovacích jazyků Cílem této studijní opory je učební text, který studentům umožní pochopení základních numerických úloh a myšlenek, na nichž jsou založeny algoritmy jejich řešení Ve své praxi budou potom schopni posoudit použitelnost numerických metod pro řešení technických problémů a efektivně používat zmíněných programových systémů i jejich budoucích zdokonalení Studenti mohou uvedeného cíle dosáhnout tím snáze, čím lepší jsou jejich znalosti elementárních funkcí, lineární algebry, diferenciálního a integrálního počtu, které lze získat v bakalářském studijním programu Stavební inženýrství Předkládaný text je inovací skripta Dalík: Numerické metody, které bylo na Fakultě stavební využíváno po dobu 20 let Pokusil jsem se jej zjednodušit tím, že používám co nejméně matematických pojmů a výklad doprovázím rozsáhlejšími komentáři K těmto i jiným úpravám jsem byl inspirován klasickými učebnicemi jako [12] nebo [9], [10] Výklad jsem zjednodušil a provedl jsem obsahové změny, vyvolané zkušenostmi z výuky, z aplikací numerických metod a ze studia literatury, zejména skript [4] (doporučuji jako zajímavý doplněk tohoto textu), [7], [5] a [3] Je mou milou povinností poděkovat svému kolegovi Mgr Otto Přibylovi za zpracování obrázků a za pomoc při grafické úpravě textu V Brně dne 24 11 2008 5 Josef Dalík

2 Úvod 21 Co je to numerická analýza? V dnešní době je použití matematických prostředků pro řešení problémů nenahraditelné nejen v tradičních technických a přírodních vědách, ale i v ekonomii, medicíně, společenských vědách a ve veřejné správě Z mnoha charakteristik pojmu numerická analýza lze považovat za nejvýstižnější tuto: Předmětem numerické analýzy je zprostředkovat využití rozsáhlého a sofistikovaného teoretického aparátu, vytvořeného abstraktní matematikou pro řešení praktických problémů Zdůvodnění této charakteristiky vyplyne z analýzy obecného schematu řešení problémů matematickými prostředky, které sestává z kroků 1 4 : Krok 1 Formulovat daný problém: Jde zpravidla o úlohu získat objektivní poznatky o konkrétním technickém, přírodním, ekonomickém nebo společenském procesu Příklad 21 Určete deformaci tělesa, najděte vektor toku kapaliny nebo plynu, vytvořte výhled hospodaření podniku, chování společenské skupiny Krok 2 Vytvořit matematický model: Přesný matematický popis podstatných vztahů určujících daný proces Příklad 22 Počáteční nebo okrajová úloha pro diferenciální rovnici, funkcionál, systém rovnic nebo nerovnic, určitý integrál Tyto modely jsou studovány různými matematickými disciplínami s cílem získat co nejvíce poznatků o jejich řešení, tj o neznámé funkci, vektoru, jedné číselné hodnotě apod Výsledkem jsou zásadní informace o daném modelu jako existence nebo jednoznačnost řešení, jeho kvalitativní vlastnosti a výjimečně též popis přesného řešení Vzhledem ke složitosti prakticky důležitých modelů však s tím, že přesné řešení modelu lze popsat, nelze počítat Místo snahy o nalezení přesného řešení se proto pozornost soustřed uje na algoritmy pro konstrukci tzv aproximací přesného řešení Krok 3 Vytvořit numerický problém (diskretizaci), charakterizovaný jednoznačně určenou konečnou množinou vstupních dat, konečnou množinou výstupních dat a konečnou posloupností kroků, které daná vstupní data transformují na 6

výstupní data (algoritmem) Krok 4 Výpočet konkrétních výstupních dat pro daná vstupní data Numerická metoda je způsob, jak matematickým modelům přiřazovat diskretizace, jak je zjednodušovat a jak transformovat daná vstupní data na data výstupní Numerická analýza je matematický obor, jehož cílem je navrhovat nové numerické metody, studovat existující numerické metody a navrhovat vhodné struktury vstupních dat (preprocessing) a výstupních dat (postprocessing) Kvalita numerické metody je zpravidla určena její výpočtovou složitostí (efektivitou), přesností výsledné vypočtené aproximace, velikostí třídy matematických modelů, na něž lze numerickou metodu úspěšně aplikovat (robustností) 22 Co je to chyba? Řešíme-li konkrétní problém, pak v každém z kroků 1 4 vzniká chyba jiného druhu : Rozdíl mezi reálným procesem a přesným řešením matematického modelu nazýváme chybou modelu, přesným řešením matematického modelu a numerické úlohy (diskretizace) nazýváme chybou numerické metody (chybou diskretizace), přesným řešením numerické úlohy (diskretizace) a skutečně vypočteným výsledkem nazýváme zaokrouhlovací chybou Intuitivní význam chyby jako omylu (přehlédnutí) je nutno též vzít v úvahu Její vliv na kvalitu řešení problému klesá, když časový plán řešení je úměrný náročnosti úlohy, řešitelé jsou dobře odborně připraveni, pracují v dobrých podmínkách atd Při řešení technických úloh se chyby všech uvedených typů vyskytují současně a celková chyba je v jistém smyslu jejich součtem Postup řešení úlohy je efektivní, když velikost chyb všech typů je zhruba stejně velká Například není rozumné hledat velmi přesnou diskretizaci modelu, který je jen hrubým popisem daného reálného procesu V tomto textu se budeme zabývat chybami numerických metod a v důležitých případech i chybami zaokrouhlovacími Protože se budeme věnovat jen problému diskretizace nejčastěji se vyskytujících typů matematických modelů nebo jejich částí, chyby modelů předmětem našeho zájmu nebudou 7

3 Chyby v numerických výpočtech Pro výpočetní postupy numerické analýzy je typické, že místo s přesnou číselnou hodnotou ˆx počítáme s přibližnou hodnotou x Číslu x říkáme aproximace čísla ˆx Rozdíl e x = ˆx x se nazývá (absolutní) chyba aproximace x Číslo ε(x), o kterém je známo, že ˆx x < ε(x) je odhad (absolutní) chyby Tato nerovnost se symbolicky zapisuje ve tvaru ˆx = x ± ε(x), který se nazývá neúplné číslo Číslo e x /x = (ˆx x)/x (pro x 0) se nazývá relativní chyba aproximace x Číslo δ(x), o němž je známo, že (ˆx x)/x δ(x) je odhad relativní chyby Relativní chyba a její odhad se často udávají v procentech Příklad 31 Číslo x = 3,14 je aproximací Ludolfova čísla ˆx = π = 3,141592653 Absolutní chyba aproximace x je e x = 0,001592653 a jejím odhadem je například číslo ε(x) = 0,002, nebot e x ε(x) Relativní chyba aproximace x je e x /x = 0,000507214 Za odhad relativní chyby lze zvolit číslo δ(x) = 0,0006 Platí totiž e x /x δ(x) 31 Záznam čísel v paměti počítače I při úvahách o chybách je nutno vycházet ze skutečnosti, že výpočetní postupy numerické analýzy jsou navrhovány se zřetelem k jejich implementaci na počítači V paměti počítače jsou reálná čísla zaznamenávána jedním z níže uvedených způsobů a), b) a) Zápis čísel v pohyblivé řádové čárce je založen na záznamu libovolného reálného čísla ĉ v semilogaritmickém tvaru zn(ĉ) mantisa 2 exponent, kde zn(ĉ) je znaménko čísla ĉ V počítačích, vyvíjených po roce 1985 jsou čísla v pohyblivé čárce zaznamenávána téměř výhradně v souladu s normou IEEE níže popsaným způsobem a1) a a2) 8

a1) Jednoduchá přesnost Zde mantisa = (1, c 1 c 2 c 23 ) 2 = 1 + c 1 2 + + c 23 2 23 je tzv normalizovaná mantisa ve dvojkové soustavě, tj c 1,, c 23 jsou libovolné dvojkové číslice 0 nebo 1 a exponent může nabývat hodnot od -126 do 127 Zaznamenaná přibližná hodnota c vznikne převedením přesné hodnoty ĉ do dvojkové soustavy a zaokrouhlením na 24 dvojkových číslic Při tomto zaokrouhlení může vzniknout relativní chyba ve výši nejvýše 1, 2 10 7 Proto říkáme, že toto zobrazení je s přesností na 7 platných desítkových číslic V paměti počítače zaujímá znaménko 1 bit, mantisa 23 bitů a exponent 8 bitů Tedy nejmenší kladné číslo, které lze takto v paměti počítače zobrazit je 2 126 = 1,2 10 38 a největší kladná zobrazitelná hodnota je (2 2 23 )2 127 = 3,4 10 38 Číslo 0 se zobrazuje tak, že všech 32 bitů záznamu je obsazeno nulami Z tohoto popisu plyne, že nenulová čísla, jejichž absolutní hodnota je menší, než 2 126 = 1,2 10 38 nebo větší, než (2 2 23 )2 127 = 3,4 10 38, nelze do paměti korektně uložit Je tedy třeba se vyvarovat počítání s takto příliš malými a příliš velkými čísly Dojde-li ke zkreslení hodnoty v prvním nebo druhém případě, mluvíme o podtečení nebo o přetečení a2) Dvojnásobná přesnost Záznam čísla v paměti zaujímá 64 bitů, lze ukládat čísla, jejichž absolutní hodnota je přibližně v rozsahu od 2,2 10 308 do 1,8 10 308 a zobrazení je přibližně s relativní přesností 2,2 10 16, tedy na 16 platných desítkových číslic b) Zápis čísel v pevné řádové čárce V tomto případě jsou všechna čísla zaznamenávána s konstantním počtem desetinných míst V pevné řádové čárce jsou například zaznamenávána čísla typu integer v řadě univerzálních programovacích jazyků Zde je počet desetinných míst roven nule Příklad 32 Lze snadno ukázat, že záznam čísla ĉ = 1/3 v pohyblivé řádové čárce s jednoduchou přesností je c = +(1, 0101010101010101010101) 2 2 2 = 0,33333331346 a například záznam čísla ĉ v pevné řádové čárce s konstantním počtem 3 desetinných míst je c = 0,333 32 Chyby, ovlivňující výsledky numerických výpočtů Výsledky numerických výpočtů ovlivňují : 9

a) Chyby vstupních dat Již vstupní číselné údaje jsou zatíženy chybou, například chybou měření nebo zaokrouhlovací chybou, vzniklou v případných předcházejících výpočtech Další chyby vznikají při ukládání vstupních dat do paměti počítače, jak je vysvětleno v odstavci 31 b) Zaokrouhlovací chyby během výpočtu Z odstavce 31 je zřejmé, že ke vzniku chyby z důvodu zaokrouhlení (zaokrouhlovací chyby) dochází prakticky po provedení každé aritmetické operace Zaokrouhlovací chyby jsou tedy v numerických výpočtech všudypřítomné a jde jen o to, aby se jejich velikost neúměrně nezvětšila Algoritmy, v nichž je kumulativní velikost zaokrouhlovacích chyb omezená, se nazývají stabilní Následující příklad ukazuje, že stability algoritmu může být dosaženo vhodnou organizací výpočtu Příklad 33 Čísla y i = 1 0 x i x + 5 dx počítejte pro i = 0, 1,, 8 Zaokrouhlujte na 3 desetinná místa Řešení Výpočet bude efektivní, když využije tohoto rekurzivního vztahu: y i + 5y i 1 = 1 0 x i + 5x i 1 dx = x + 5 1 tj y i = 1/i 5y i 1 pro i = 1,, 8 Tedy, vypočteme-li y 0 = 1 0 0 x i 1 x + 5 1 x + 5 dx = x i 1 = 1 0 i, 1 x + 5 dx = [ln x + 5 ]1 0 = 0,182 a použijeme-li rekurzivního vztahu postupně pro hodnoty y 1, y 2,, dostaneme tento výsledek: y 1 = 1 5y 0 = 0,090 y 2 = 1/2 5y 1 = 0,050 y 3 = 1/3 5y 2 = 0,083 y 4 = 1/4 5y 3 = -0,165 Protože zřejmě hodnoty y i jsou všechny kladné, vypočtená hodnota y 4 je nesmyslná Algoritmus je nestabilní z tohoto důvodu: Na začátku jsme nahradili přesnou hodnotu ŷ 0 = ln 1, 2 = 0,182322 aproximací y 0 = 0,182 s chybou e 0 = 0,000322 Pomineme-li jiné zdroje chyby, vidíme, že při každém použití rekurzivní formule se chyba vynásobí číslem -5, takže e 1 = -0,00161, 10

e 2 = 0,00805, e3 = -0,04025 a e4 = 0,20125 Je zřejmé, že pro indexy i = 4, 5,, hodnoty chyb zcela znehodnotí vypočtené hodnoty y i Užijeme-li odvozeného rekurzivního vztahu pro výpočet y i 1, tj ve tvaru y i 1 = (1/i y i )/5, pak se chyba předchozí aproximace y i v každém kroku pětkrát zmenšuje, takže její vliv klesá Z definice integrálů y i je zřejmé, že jejich kladné hodnoty se s rostoucím indexem i zmenšují a vzájemně se k sobě přibližují Proto je rozumné položit y 10 = y9 Ze vztahu y 9 = (0, 1 y9 )/5 pak dostaneme y 9 = 0, 017 Nyní aplikace upraveného rekurzivního vztahu poskytne y 8 = (1/9 y 9 )/5 = 0,019, y 7 = (1/8 y 8 )/5 = 0,021, y 0 = 0,182, což jsou vesměs hodnoty, vzniklé z přesných hodnot ŷ i zaokrouhlením na 3 desetinná místa Příklad 33 ilustruje nebezpečí spočívající v násobení přibližných hodnot velkými čísly nebo ekvivalentně jejich dělení malými čísly Účelem Př 34 je zdůraznit, že při operaci odečítání dvou přibližně stejně velkých čísel dochází k nárůstu relativní chyby Příklad 34 Kvadratická rovnice x 2 56x + 1 = 0 má kořeny ˆx 1 = 28 + 783 a ˆx 2 = 28 783 Zaokrouhlíme-li 783 na 3 desetinná místa, tj položíme-li 783 = 27,982 ± 0,0005, pak dostaneme ˆx 1 = 55,982 ± 0,0005 a ˆx 2 = 0,018 ± 0,0005 Tedy aproximace kořenů jsou x 1 = 55,982, x 2 = 0,018 a odhad chyby je v obou případech ε = 0,0005 Vidíme, že v aproximaci kořene x 2 jsou platné jen dvě číslice, přestože jsme stále počítali s čísly s pěti platnými číslicemi Odhady relativních chyb pak jsou ˆx 1 x 1 x 1 0,0005 55,982 = 0,000009, 11 ˆx 2 x 2 x 2 0,0005 0,018 = 0,028

Obecný postup, jak se vyhnout odečítání dvou přibližně stejných čísel, je použití Taylorovy věty V našem případě položíme f(x) = x a dostaneme 28 783 = ( 783 784) = f (784)( 1) = [ˆx 2 = 0,01786284] Cvičení 1 2 784 = 1 56 = 0,017857 1 Zaokrouhlením na 3 desetinná místa najděte aproximaci e přesné hodnoty Eulerova čísla ê = 2,718281828459 Najděte co nejmenší odhad absolutní i relativní chyby {e = 2,718, ε(e) = 0,0003, δ(x) = 0,00012} 2 Pro y i = 1 0 xi /(x+10)dx najděte rekurzivní vztah mezi y i a y i+1 a užijte jej pro stabilní výpočet hodnot y 0, y 1,, y 6 {Rekurzivní vztah: y i = (1/(i + 1) y i+1 ) /10 a pro y 7 = 0 lze spočítat y 6 = 0,014, y 5 = 0,015, y 4 = 0,018, y 3 = 0,023, y 2 = 0,031, y 1 = 0,047 a y 0 = 0,095 Všechny vypočtené hodnoty s výjimkou y 6 jsou shodné s přesnými hodnotami, zaokrouhlenými na 3 desetinná místa} 3 Řetězec +(1, 00100100100100100100101) 2 2 3 představuje záznam čísla 1/7 v paměti počítače v pohyblivé řádové čárce s jednoduchou přesností Určete přesnou hodnotu tohoto záznamu na 10 platných číslic a porovnejte ji s přesnou hodnotou 1/7 {Hodnota záznamu je 0,1428571492, 1/7 = 0,1428571428} 4 Jedna rovnice pro jednu neznámou Uvažme reálnou funkci f, definovanou na některém intervalu I R Úlohou je najít číslo x I, pro něž platí f(x) = 0 (1) Číslo ˆx s touto vlastností se nazývá kořen rovnice (1) Budeme předpokládat, že kořen rovnice (1) vůbec nelze z dané rovnice vypočítat, tj nelze jej vyjádřit pomocí vzorce, nebo jej lze vyjádřit vzorcem příliš složitým V těchto případech je nutné (nebo efektivní) počítat kořen pomocí některé numerické metody, spočívající v tom, že se v jednotlivých krocích výpočtu postupně získávají stále přesnější aproximace hledaného kořene Některé z těchto metod jsou stabilní To znamená, že pro zajištění toho, že vypočtené aproximace se k hledanému kořenu skutečně přibližují stačí zadat interval o němž 12

je známo, že v něm alespoň jeden kořen leží Jiné metody vyžadují zadání počáteční aproximace dostatečně blízko kořene; za to je potom výpočet efektivní, tj vypočtené aproximace se ke kořenu přibližují velmi rychle Je vhodné nejprve určit hrubou počáteční aproximaci stabilní metodou a tuto potom zpřesnit metodou efektivní Budeme předpokládat, že daná funkce f má na intervalu I spojité všechny derivace, které budeme potřebovat a hledaný kořen ˆx je jednonásobný, tj f (ˆx) 0 41 Metody pro určení počáteční aproximace Představu o počtu kořenů a jejich hrubé počáteční aproximace lze v mnoha případech získat graficky Příklad 41 Určete přibližně všechny kořeny rovnice f(x) e x 2x 2 = 0 (2) Řešení Protože grafy funkcí e x a 2x+2 lze snadno schematicky nakreslit, je výhodné napsat rovnici (2) ve tvaru e x = 2x + 2 Z Obr 1 lze odhadnout, že rovnice má kořeny ˆx = 0,8 a ŷ = 1,5 Přesnější informaci lze Obrázek 1: Počáteční aproximace kořenů získat výpočtem několika hodnot funkce f, například v bodech z níže uvedené tabulky Z jejího posledního sloupce lze usoudit, že ˆx (-0,8; -0,7) a ŷ (1,5; 1,7) Úsudky tohoto typu jsou založeny na skutečnosti, že spojitá 13

funkce f má na intervalu (a, b) alespoň jeden kořen, jakmile f(a) f(b) < 0 x e x 2x + 2 f(x) -0,8 0,4493 0,4 > 0-0,7 0,4966 0,6 < 0 1,5 4,4817 5,0 < 0 1,7 5,4739 5,4 > 0 Na opakovaném použití tohoto tvrzení jsou založeny níže uvedené metody půlení a regula falsi Obě jsou použitelné, je-li zadán interval (a 0, b 0 ) s vlastností f(a 0 ) f(b 0 ) < 0 V obou se konstruuje posloupnost intervalů (a 0, b 0 ) (a 1, b 1 ) s vlastností f(a i ) f(b i ) < 0 pro i = 1, 2, Interval (a i, b i ) se najde takto: V intervalu (a i 1, b i 1 ) se vybere bod x i Jestliže f(x i ) = 0, je x i hledaný kořen a výpočet končí Jestliže f(x i ) 0, pak vzhledem k předpokladu f(a i 1 ) f(b i 1 ) < 0 platí právě jedna z podmínek f(a i 1 ) f(x i ) < 0, f(x i ) f(b i 1 ) < 0 V prvním případě položíme a i = a i 1, b i = x i a ve druhém a i = x i, b i = b i 1 Metoda půlení (intervalu) Za bod x i se volí střed intervalu (a i 1, b i 1 ) Konvergence metody půlení je pomalá Na začátku víme, že alespoň jeden kořen ˆx leží v intervalu (a 0, b 0 ) Položíme tedy ˆx = x 1 ± d 0, kde d 0 = (b 0 a 0 )/2 je odhad chyby Po i krocích víme, že alespoň jeden kořen leží v intervalu (a i, b i ) o velikosti Položíme tedy b i a i = (b i 1 a i 1 )/2 = = (b 0 a 0 )/2 i ˆx = x i+1 ± d i, kde d i = (b i a i )/2 = (b 0 a 0 )/2 i+1 je odhad chyby Tedy i kroků metody půlení zmenší odhad chyby 2 i krát Podmínka ukončení Pro dané malé kladné číslo ε řekneme, že rovnice je vyřešena s chybou menší než ε, jakmile d i < ε Pak ˆx = x (i+1) ± d i 14

Příklad 42 Pro získání jedné platné číslice aproximace kořene je třeba odhad chyby zmenšit desetkrát Kolik kroků metody půlení je k tomu zapotřebí? Řešení Je třeba najít nejmenší celé číslo i s vlastností 10 2 i Protože 10 = 2 3,3, je zisk jedné platné číslice aproximace kořene zaručen po 4 (v průměru po 3,3) krocích Příklad 43 Určete, kolik kroků metody půlení je třeba provést pro aproximaci kořene ŷ rovnice (2) z intervalu (1,5, 1,7) s chybou, menší než 0,005 a tuto aproximaci najděte Řešení Pro a 0 = 1,5, b 0 = 1,7 je x 1 = 1,6, d 0 = 0,1 a kořen ŷ = 1,6 ± 0,1 Hledáme index i tak, aby d i = (b 0 a 0 )/2 i+1 0,005 To je ekvivalentní s 40 2 i+1 a tato podmínka je splněna pro i 5 Výpočet 5 kroků metody půlení je zaznamenán v tabulce: i a i 1 f(a i 1 ) b i 1 f(b i 1 ) x i f(x i ) 1 1,5 < 0 1,7 > 0 1,6 < 0 2 1,6 < 0 1,7 > 0 1,65 < 0 3 1,65 < 0 1,7 > 0 1,675 < 0 4 1,675 < 0 1,7 > 0 1,6875 > 0 5 1,675 < 0 1,6875 > 0 1,68125 > 0 6 1,675 < 0 1,68125 > 0 1,678125 Našli jsme tedy kořen ŷ = 1,678125 ± 0,003125 Metoda regula falsi Bod x i z intervalu (a i 1, b i 1 ) se vybírá jako průsečík přímky procházející body (a i 1, f(a i 1 )) a (b i 1, f(b i 1 )) s osou x, tj b i 1 a i 1 x i = a i 1 f(a i 1 ) f(b i 1 ) f(a i 1 ) Z grafické ilustrace výpočtu metodou regula falsi na Obr 2 je patrné, že rychlost konvergence závisí na charakteru funkce f Jestliže se graf f(x) příliš neliší od přímky, konverguje metoda velmi rychle viz Obr 2 (a) Jinak může být konvergence i velmi pomalá, jak je patrné z Obr 2 (b) Obr 2 rovněž ilustruje skutečnost, že zpravidla délka intervalu (a i, b i ) nekonverguje k nule pro i rostoucí k nekonečnu Proto se pro metodu regula falsi doporučuje jiná podmínka ukončení než pro metodu půlení Podmínka ukončení Zvolí se malý parametr δ > 0 a za aproximaci kořene se bere první bod x i s vlastností f(x i ) δ 15

Obrázek 2: Ilustrace rychlosti konvergence metody regula falsi Příklad 44 Metodou regula falsi aproximujte kořen ŷ rovnice (2) z Př 41 Položte ŷ = x i jakmile f(x i ) 0, 5 10 3 Řešení Tabulka ukazuje, že výsledku je dosaženo již po dvou krocích i a i 1 b i 1 f(a i 1 ) f(b i 1 ) x i f(x i ) 1 1,5 1,7-0,518311 0,073947 1,675029-0,011108 2 1,675029 1,7-0,011108 0,073947 1,678290-0,000191 42 Metoda prosté iterace Řešit rovnici (1) iterací znamená převést ji na ekvivalentní úlohu najít pevný bod funkce F, tj bod x splňující x = F (x), (3) zvolit počáteční (nultou) aproximaci x 0 a vytvořit posloupnost postupných aproximací (iterační posloupnost) (x i ) i=0 podle předpisu x i+1 = F (x i ) pro i = 0, 1, Má-li iterační posloupnost limitu ˆx, pak za předpokladu spojitosti F platí ˆx = lim i x i = lim i x i+1 = lim i F (x i ) = F ( lim i x i ) = F (ˆx), takže ˆx je pevný bod zobrazení F Základní otázkou tedy je, zda pro danou funkci F a danou počáteční aproximaci x 0 iterační posloupnost konverguje 16

Je dobře známá tato vlastnost funkcí F, zaručující konvergenci: Zobrazení F se nazývá kontrakce na intervalu a, b s koeficientem α, jestliže F (x) a, b pro všechna x a, b, 0 α < 1 a F (x) F (y) α x y pro všechna x, y a, b Otázky existence a jednoznačnosti pevného bodu a rychlosti konvergence iterační posloupnosti zodpovídá toto tvrzení Věta o kontrakci Jestliže F je kontrakce na intervalu a, b s koeficientem α, pak (a) v intervalu a, b existuje jediný pevný bod ˆx funkce F, (b) ˆx je limitou posloupnosti postupných aproximací (x i ) i=0 pro libovolně zvolenou počáteční aproximaci x 0 a, b, (c) x i ˆx α i x 0 ˆx pro i = 1, 2, Důkaz (a) EXISTENCE PEVNÉHO BODU: Z F (a) a, b plyne a F (a) a analogicky platí F (b) b Tedy (a F (a))(b F (b)) 0 Odtud a ze spojitosti funkce x F (x) plyne, že v intervalu a, b existuje řešení rovnice x F (x) = 0 JEDNOZNAČNOST PEVNÉHO BODU: Jestliže ˆx = F (ˆx) a ŷ = F (ŷ) pro ˆx, ŷ a, b, pak platí ˆx ŷ = F (ˆx) F (ŷ) α ˆx ŷ Tato nerovnost může být splněna jen v případě, že ˆx = ŷ (c) Pro libovolný bod x 0 z intervalu a, b a pro i 1 je x i ˆx = F (x i 1 ) F (ˆx) α x i 1 ˆx α i x 0 ˆx (b) Z (c) a z 0 α < 1 plyne 0 x i ˆx α i x 0 ˆx Odtud a z α i x 0 ˆx 0 pro i plyne x i ˆx 0 pro i Jednoduchý praktický způsob, jak zjistit, zda daná funkce F je kontrakce v blízkosti kořene rovnice (3), poskytuje tato skutečnost: Věta 1 Předpokládejme, že ˆx je pevný bod funkce F, δ > 0, α splňuje podmínku 0 α < 1 a F (x) α pro všechna x (ˆx δ; ˆx + δ) Pak F je kontrakce s koeficientem α na intervalu I = ˆx δ; ˆx + δ Důkaz Jsou-li x, y I libovolná, pak F (x) F (y) = F (ξ)(x y) α x y 17

podle Lagrangeovy věty o přírůstku funkce Bod ξ leží mezi body x, y a tedy F (ξ) α Odtud pro libovolné x I plyne F (x) ˆx = F (x) F (ˆx) α x ˆx αδ < δ Tedy F (x) I Při řešení rovnice (1) prostou iterací se daná rovnice převede na ekvivalentní tvar (3), zvolí se nultá aproximace x 0 a počítají se aproximace x i+1 = F (x i ) pro i = 0, 1, Podmínka ukončení: Položíme x = x i+1 jakmile x i+1 x i ε pro předem zadané malé kladné číslo ε Příklad 45 Metodou prosté iterace určete všechny kořeny rovnice (2) s chybou, menší než ε = 0,5 10 3 Zaokrouhlujte na 3 desetinná místa Řešení Podle Př 41 má tato rovnice kořeny ˆx = -0,8 a ŷ = 1,5 Za účelem řešení iterací je přirozené převést danou rovnici na ekvivalentní tvary (a) x = e x /2 1 F 1 (x) pro všechna reálná čísla x (b) x = ln(2x + 2) F 2 (x) pro všechna x > 1 Protože F 1(x) = e x /2 < 1 právě když x < ln 2 = 0,69 a F 2(x) = 1/(x + 1) < 1 právě když x > 0, předpoklady Věty 1 splňuje funkce F 1 v okolí kořene ˆx a F 2 v okolí ŷ Budeme tedy počítat podle předpisů x 0 = -0,8, x i+1 = e x i /2 1 a y 0 = 1,5, y i+1 = ln(2y i + 2) Průběh a výsledky výpočtů jsou uvedeny v tabulce i 0 1 2 3 4 5 6 7 x i -0,8-0,775-0,770-0,768-0,768 y i 1,5 1,609 1,652 1,669 1,675 1,677 1,678 1,678 Poznámka 1 (Zpřesnění extrapolací Aitkenův 2 proces) Leží-li aproximace (prvek iterační posloupnosti) x i blízko kořene ˆx, pak platí e i+1 = ˆx x i+1 = F (ˆx) F (x i ) = F (ξ)(ˆx x i ) = F (ˆx)e i a analogicky e i+2 = F (ˆx)e i+1 Eliminací F (ˆx) z těchto identit (tento obrat se nazývá extrapolace) vznikne e i+1 e i = e i+2 e i+1 = ˆx x i+1 ˆx x i = ˆx x i+2 ˆx x i+1 18

Vyjádřením ˆx z této rovnice obdržíme ˆx = x i+2 (x i+2 x i+1 ) 2 x i+2 2x i+1 + x i = x i+2 ( x i+1) 2 2 x i Příklad 46 Zpřesněním aproximací y 0, y 1, y 2 kořene ŷ z Př 45 Aitkenovým 2 procesem je hodnota 1,680, která je mnohem blíže kořene 1,678, než aproximace y 3 = 1,669 Poznámka 2 Steffensenova metoda je založena na opakovaném použití Aitkenova 2 procesu: x 0 se zvolí a pro i = 0, 1, se postupně počítá x 3i+1 = F (x 3i ), x 3i+2 = F (x 3i+1 ) a x 3i+3 = x 3i+2 ( x 3i+1) 2 2 x 3i Ověřte, že výpočet kořene ŷ z Př 45 Steffensenovou metodou vyžaduje 5 kroků (aproximace s indexy 4 a 5 se po zaokrouhlení na 3 desetinná místa shodují) oproti 7 krokům z Př 45 43 Efektivní zpřesňující metody Základní metodou tohoto typu je Newtonova metoda Další zpřesňující metody budou prezentovány jako modifikace Newtonovy metody 431 Newtonova metoda (linearizace) Předpokládejme, že aproximace x i leží blízko kořene ˆx rovnice f(x) = 0 Potom podle Taylorovy věty existuje bod ξ mezi x i a ˆx tak, že 0 = f(ˆx) = f(x i ) + f (x i )(ˆx x i ) + f (ξ) (ˆx x i ) 2 (4) 2 Z (4) lze vyjádřit ˆx ve tvaru ˆx = x i f(x i) f (x i ) K(ˆx x i) 2 pro K = f (ξ) 2f (x i ) (5) Zanedbáme-li poslední člen v (5) a nahradíme-li ˆx aproximací x i+1, vznikne x i+1 = x i f(x i) f (x i ) (jeden krok Newtonovy metody) (6) Příklad 46 Newtonovou metodou aproximujte kořen ˆx rovnice f(x) e x 2x 2 = 0 Položte x 0 = 1,5 pro srovnání s Příkladem 44 19

Řešení Počítáme tedy x 0 = 1, x i+1 = x i ex i 2x i 2 e x i 2 Z výsledků shrnutých v níže uvedené tabulce je vidět, že přesnosti na 6 desetinných míst je dosaženo po 4 krocích a aproximace x 4 = x 5 jsou přesné na 10 desetinných míst V tabulce jsou tučně vyznačeny platné číslice aproximací Jejich počet se provedením každého kroku zdvojnásobuje Níže uvedená analýza přesnosti Newtonovy metody zdůvodňuje tuto skutečnost i x i 0 1,5 1 1,708854097 2 1,679069171 3 1,678347406 4 1,678346990 5 1,678346990 432 Geometrický význam Newtonovy metody y [x i, f(x i )] ˆx x i+1 x i x y = f(x) Místo nulového bodu funkce Obrázek f(x) se 3 hledá nulový bod lineární funkce f(x i ) + f (x i )(x x i ), která je linearizací funkce f(x) ve smyslu z Obr 3 Přesné řešení této linearizované rovnice označíme x i+1, takže f(x i ) + f (x i )(x i+1 x i ) = 0 (7) 433 Analýza chyby Newtonovy metody Odečteme-li (7) od (4), získáme identitu ˆx x i+1 = K ˆx x i 2 Pro srovnání, metoda půlení splňuje podmínku ε i+1 1 2 ε i 20

pro odhady chyb a prostá iterace splňuje ˆx x i+1 α ˆx x i pro vhodné α < 1 Tedy aproximace Newtonovy metody se blíží k nule podstatně rychleji, než aproximace získané metodou půlení nebo prostou iterací za předpokladu, že chyba ˆx x i je malá Na druhé straně, Newtonova metoda i) konverguje lokálně, tj jen tehdy, když známá aproximace x i je blízko k přesnému řešení, ii) potřebuje větší hladkost funkce f (existenci první derivace), iii) v každém kroku potřebuje vypočítat hodnoty f(x i ) a f (x i ) Řekneme, že iterační metoda je řádu r, když odhady chyby ε i splňují podmínku ε i+1 C (ε i ) r a C je ohraničenou funkcí argumentu ε i pro malé kladné hodnoty ε i Z předchozích úvah plyne, že Newtonova metoda je řádu 2 a metoda půlení i prosté iterace jsou řádu 1 434 Fourierovy podmínky Z Obr 4 je zřejmé, že jsou-li splněny podmínky a) f, f, f jsou spojité na intervalu a, b a f(a) f(b) < 0, b) f, f nemění znaménka v a, b a f (x) 0 x a, b, pak Newtonova metoda konverguje ke kořenu ˆx (a, b) pro x 0 = { a když f(a) f (a) > 0 b když f(b) f (b) > 0 y a x 2 x 1 b = x 0 x y = f(x) Obrázek 4 21

435 Modifikace Newtonovy metody a) Zvolíme-li nultou aproximaci x 0 a vypočítáme x 1 Newtonovou metodou, pak metoda sečen je založena na aproximaci f (x i ) = f(x i) f(x i 1 ) x i x i 1 Po dosazení do předpisu (6) vznikne jeden krok metody sečen: x i+1 = x i f(x i)(x i x i 1 ) f(x i ) f(x i 1 ) V každém kroku této metody stačí spočítat jen hodnotu f(x i ) Je známo, že řád této metody je r = 1618 = (1 + 5)/2 b) Druhá modifikace Newtonovy metody spočívá v aproximaci takže f (x i ) = f(x i + f(x i )) f(x i ), f(x i ) x i+1 = x i f 2 (x i ) f(x i + f(x i )) f(x i ) po dosazení do (6) Řád této metody je r = 2 Cvičení 1 Určete počet k kořenů rovnice sin x 0, 4(x+1) 2 +0, 5 = 0 a odhadněte jejich přibližné hodnoty Najděte k disjunktních intervalů malé délky, z nichž v každém leží právě jedno řešení {k = 2, ˆx (-0,4; -0,2), ŷ (0,6; 0,8)} 2 Určete počet kořenů rovnice e x + (x + 1) 2 5 = 0, najděte co nejmenší intervaly, v nichž leží právě jeden kořen a užijte jich pro aproximaci každého kořene a) metodou půlení s chybou menší než ε = 0,005, b) metodou regula falsi s chybou menší než δ = 0,0005 {Rovnice má 2 kořeny ˆx (-3,3; -3,2), ŷ (0,7; 0,8) Řešení a) ˆx = -3,228125, ŷ = 0,715625, b) ˆx = -3,227173, ŷ = 0,717646} 3 Ověřte, že rovnice f(x) e x x 2 x 1 = 0 má kořen v intervalu (1,7; 1,8) Najděte ekvivalentní rovnici ve tvaru x = F (x) takovou, že F je na intervalu 1,7; 1,8 kontrakce Aproximujte kořen z intervalu (1,7; 1,8) prostou iterací s počáteční aproximací x 0 = 1,75 s chybou 22

menší než ε = 0,001 {f(1,7) f(1,8) = -0,00112, takže f má kořen v (1,7; 1,8) f(x) = 0 je ekvivalentní s x = F (x) pro F (x) = ln(x 2 +x+1) a F (x) = (2x + 1)/(x 2 + x + 1) < (2 1,8 + 1)/(1,7 2 + 1,7 + 1) = 0,8586762075 < 1 pro x (1,7; 1,8) Položíme-li x 0 = 1,75 a počítáme x i+1 = ln(x 2 i + x i + 1), pak kořen je přibližně roven x 14 = 1,791952 s požadovanou přesností} 4 Úlohu ze cvičení 3 aproximujte Steffensenovou metodou s chybou menší než ε = 0,0005 {Přibližné řešení je x 5 = 1,793894} 5 Najděte graficky hrubé aproximace všech kořenů rovnice x 4 + 50x 2 50x 1000 = 0 Všechny tyto aproximace zpřesněte Newtonovou metodou s chybou menší než 0, 5 10 8 {ˆx = -3,606758962, ŷ = 4,225109667} 6 Označme ˆx přesné řešení rovnice f(x) = 0 Newtonova metoda je metoda prosté iterace, která hledá pevný bod funkce F (x) = x f(x)/f (x) Jaká je hodnota F (ˆx)? {F (ˆx) = 0} 7 Najděte všechny kořeny každé z rovnic 1 x e 2x = 0, x ln x 1 = 0 Newtonovou metodou s maximální možnou přesností {Kořeny první rovnice jsou 0 a 0,7968121300 Druhá rovnice má kořen 1,763222834} 8 Určete počet k kořenů rovnice x 3 + 2x 2 + 10x 20 = 0 a aproximujte každý z nich s chybou menší, než ε = 0,5 10 6 první i druhou modifikací Newtonovy metody {Existuje jeden kořen, ležící v intervalu (1; 2) Pro x 0 = 1,5 dostaneme požadovanou přesnost pro x 6 = 1,3688081 první modifikací Newtonovy metody a x 4 = 1,3688084 druhou modifikací Newtonovy metody} 5 Normy matic a vektorů Norma matic (a ve speciálním případě norma vektorů) je číslo, charakterizující velikost prvků matice (vektoru) Využijeme jí v několika situacích, 23

například při hledání odhadů chyb řešení systémů lineárních rovnic V této kapitole se seznámíme se základními pravidly počítání s normami Každé zobrazení, které libovolné matici A s n řádky a m sloupci (matici A typu (n, m)) přiřazuje reálné číslo A a má vlastnosti (N1) (N2) (N3) A 0 a A = 0 A = O αa = α A A + B A + B (trojúhelníková nerovnost) a v případě m = n (N4) AB A B pro všechny matice A, B typu (n, m) a pro každé reálné číslo α se nazývá norma matic Symbolem O je označena nulová matice (všechny prvky matice O jsou rovny nule) Symbolem a ij, b ij, budeme značit prvek v i tém řádku a j tém sloupci matice A, B, Prvek vektoru x, y, z R n, tj matice typu (n, 1), v i tém řádku budeme značit x i, y i, Budeme pracovat s normami matic, které k libovolné matici A typu (n, m) přiřadí číslo n A 1 = max a ij (maximum sloupcových součtů) 1 j m i=1 m A = max a ij (maximum řádkových součtů) 1 i n j=1 1/2 n m A F = a 2 ij (Frobeniova norma) i=1 j=1 Ve speciálním případě vektoru x R n mluvíme o normě vektorů Výše uvedené konkrétní příklady nabudou těchto jednoduchých forem: x 1 = n i=1 x i, x = max 1 i n x i, x 2 = ( n ) 1/2 x 2 i i=1 Každá z uvedených norem matic společně s odpovídající normou vektorů splňuje tuto podmínku souhlasnosti: Ax A x pro všechny matice A a vektory x 24

Podmínka souhlasnosti znamená, že norma matic je dostatečně velká Normy matic 1 a jsou navíc mezi těmito velkými normami ty nejmenší Splňují totiž podmínku A = max x o Ax x Symbolem o je označen nulový vektor Protože pravá strana této identity závisí jen na normě vektorů, lze tuto identitu chápat jako přiřazení čísla A k matici A pomocí normy vektorů Lze ukázat, že toto přiřazení je norma matic Nazývá se přidružená k dané normě vektorů Skalární součin vektorů je každé zobrazení, : R n R n R s vlastnostmi (S1) x, x 0 a x, x = 0 x = o (S2) x, y = y, x (S3) x, y + z = x, y + x, z (S4) αx, y = α x, y Nejdůležitější a dobře známý příklad skalárního součinu je x, y = x 1 y 1 + + x n y n Uvedeme a ověříme dvě důležitá obecná tvrzení o skalárním součinu I Schwarzova nerovnost Pro libovolný skalární součin a pro všechna x, y R n platí x, y 2 x, x y, y Důkaz Pro x = o je x, x = 0 podle (S1) a x, y = 0 podle (S3), takže tvrzení platí V případě x o je x, x > 0 a užitím (S1) (S4) lze ověřit, že x, y y 0 y x, y x x, = x, x x, x Výsledná nerovnost je ekvivalentní s x, y 2 x, x y, y x, x y, y x, y 2 (8) x, x II Norma vektorů vytvořená skalárním součinem Pro libovolný skalární součin je x = x, x (9) norma vektorů na R n 25

Důkaz Vlastnosti (N1) a (N2) jsou bezprostředními důsledky (S1), (S2) a (S4) Vlastnost (N3) plyne ze Schwarzovy nerovnosti tímto způsobem: Cvičení x + y 2 = x + y, x + y = x, x + 2 x, y + y, y x 2 + 2 x y + y 2 = ( x + y ) 2 1 Vypočtěte normy x 1, x a x 2 vektoru x = [1, 2, 3, 4, 2] { x 1 = 12, x = 4, x 2 = 5,83} 2 Dokažte, že libovolný vektor x R n splňuje nerovnosti 3 Pro matici A = x x 2 n x 2 7 3 1 2 4 0 5 8 { A 1 = 13, A = 15, a A F = 13, 115} vypočtěte A 1, A a A F 4 Rozhodněte, zda předpis A = max i=1,,n,j=1,,m a ij pro libovolnou matici A typu (n, m) je norma matic {Předpis [ splňuje ] podmínky (N1), 1 1 (N2), (N3), ale (N4) nesplňuje: Položte A = = B v (N4)} 1 1 5 (Podmínka souhlasnosti) Ověřte, že pro matici A = 1 3 4 1 0 2 1 2 1 a vektor x = [1, 1, 1] platí Ax 1 A 1 x 1, Ax A x a Ax 2 A F x 2 { Ax 1 = 9 27 = A 1 x 1, Ax = 8 = A x, Ax 2 = 8,062 10,536 = A F x 2 } 6 Všimněte si, že ve Cv 5 platí Ax = A x Podobně k matici 2 0 2 B = 4 2 1 najděte vektor y tak, aby By = B y 0 4 1 {Protože B = 4 + 2 + 1 = ( 4)( 1) + ( 2)( 1) + 1 = ( 4)y 1 + ( 2)y 2 + 1y 3 pro vektor y = [ 1, 1, 1] a y = 1, platí By = 7 = B y } 26

7 (Norma matic je přidružená k normě vektorů ) Zobecněním úvahy ze Cv 6 popište pro libovolnou matici A typu (n, m) vektor x R m takový, že Ax = A x {Jestliže A = m j=1 a kj, pak x j = 1 pro a kj 0 a x j = 1 pro a kj < 0} 8 Dokažte, že x, y 2 = x, x y, y právě když x = o nebo y = αx pro α R {Jestliže x = o nebo y = αx, pak x, y 2 = x, x y, y lze ověřit dosazením Jestliže x, y 2 = x, x y, y, pak x = o nebo x o a všechny výrazy v (8) jsou rovny nule Tedy dle (S1) platí y = αx pro α = x, y / x, x } 6 Řešení systémů lineárních rovnic přímými metodami Pro danou regulární matici A řádu n a daný vektor b R n hledáme vektor x R n splňující rovnice a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 a n1 x 1 + a n2 x 2 + + a nn x n = b n (10) Užitím operace násobení matic lze systém rovnic (10) zapsat ve tvaru Ax = b (11) Protože matice soustavy A je regulární, existuje ke každému vektoru pravých stran b jediný vektor řešení x Zabývejme se nejprve jednoduchým případem, kdy matice A je horní trojúhelníková Pak má systém (10) tvar a 11 x 1 + a 12 x 2 + + a 1,n 1 x n 1 + a 1n x n = b 1 a 22 x 2 + + +a 2,n 1 x n 1 + a 2n x n = b 2 a n 1,n 1 x n 1 + a n,n 1 x n = b n 1 a nn x n = b n (12) a v důsledku regularity matice A jsou všechny hlavní prvky a 11, a 22,, a nn různé od nuly, takže složky vektoru x lze vypočítat v opačném pořadí: x n = b n /a nn 27

x n 1 = (b n 1 a n,n 1 x n )/a n 1,n 1 x 2 = (b 2 a 23 x 3 a 2n x n )/a 22 x 1 = (b 1 a 12 x 2 a 13 x 3 a 1n x n )/a 11 Podstatnou charakteristikou složitosti tohoto algoritmu, který se nazývá zpětný chod, je počet operací * a / : 1 + 2 + + n = n(n + 1) 2 n2 2 Přímý chod je jistý přirozený algoritmus transformace systému (10) na systém tvaru (12) opakovanou aplikací ekvivalentní operace přičtení m ji násobku i-té rovnice k jiné, j-té rovnici Jednoduchá aplikace tohoto algoritmu je uvedena v Př 61 Příklad 61 x 1 + 4x 2 + 3x 3 = 1 m 21 = ( 2) m 31 = ( 1) 2x 1 + 5x 2 + 4x 3 = 4 x 1 3x 2 2x 3 = 5 3x 2 2x 3 = 2 m 32 = ( 7 3 ) 7x 2 5x 3 = 4 1 3 x 3 = 2 3 Koeficienty m ji se nazývají multiplikátory Níže je uvedeno schematické znázornění rozšířené matice soustavy v i té fázi přímého chodu a 11 a 12 a 1n b 1 a (1) 22 a (1) 2n b (1) 2 a (i 1) ii a (i 1) ji a (i 1) ni a (i 1) in a (i 1) jn a i 1 nn b (i 1) i b (i 1) j b (i 1) n Toto schematické znázornění usnadňuje pochopení algoritmu přímého chodu, zapsaného názorně pomocí jazyka na bázi PASCALu: for i from 1 to n 1 do 28

for j from i + 1 to n do end do end do m ji := a ji /a ii b j := b j + m ji b i for k from i to n do end do a jk := a jk + m ji a ik Z tohoto popisu lze snadno odvodit charakteristiku složitosti, tj počet operací * a / v přímém chodu : n 1 n i=1 j=i+1 (2 + n i + 1) = n 1 i=1 (n i)(3 + n i) = 3[(n 1) + (n 2) + + 1] + (n 1) 2 + (n 2) 2 + + 1 = 3 2 n(n 1) + 2n3 3n 2 + n n3 6 3 Algoritmus Gaussovy eliminace se skládá z těchto kroků : Krok 1 Přímý chod ( Krok 2 Zpětný chod ( n 3 /3 operací) n 2 /2 operací) Systém rovnic (10) lze řešit Gaussovou eliminací právě když matice [ ] A (1) = [a 11 ], A (2) a11 a = 12,, A (n) = A a 21 a 22 jsou regulární Př 62 ukazuje, že splnění těchto předpokladů není zárukou úspěšného numerického řešení úlohy (10) Gaussovou eliminací Příklad 62 Řešme systém rovnic x 1 + x 2 + x 3 = 1 0,0001x 2 + x 3 = 1 x 2 + x 3 = 0 tak, že výsledek každé operace zaokrouhlíme na 4 platné číslice Výsledkem přímého chodu je systém s horní trojúhelníkovou maticí 1 1 1 1 0,0001 1 1-9999 -10000 29

a zpětný chod poskytne aproximaci 0 x = 0 1, zatímco přesné řešení je ˆx = 1 10000/9999 10000/9999 Vysvětlení: Protože ˆx 3 = 10000/9999 = 1,00010001, je x 3 = 1 a příslušná zaokrouhlovací chyba je ˆx 3 x 3 = 1/9999 Tato chyba se při výpočtu aproximace x 2 dělí malým hlavním prvkem 0,0001, neboli se násobí číslem 10 000 Vidíme, že Gaussova eliminace ztrácí stabilitu v případech, kdy matice soustavy má v absolutní hodnotě malé hlavní prvky Proto jsou navrženy modifikace, jejichž cílem je takový výběr hlavních prvků, aby jejich absolutní hodnoty byly co největší S nejčastěji používanou z těchto modifikací se seznámíme 61 Gaussova eliminace s (částečným) výběrem hlavních prvků V každé fázi i = 1, 2,, n 1 nejprve najdeme a (i 1) ji = max i k n a (i 1) ki a v případě j i provedeme výměnu i té rovnice s rovnicí j tou Viz Obr 5 i j 0 i Obrázek 5 Gaussova eliminace s výběrem hlavních prvků řeší problém (10) pro všechny regulární matice soustavy A a pro všechny vektory pravých stran b 62 LU rozklad matice Dolní trojúhelníková matice L s jednotkami v hlavní diagonále a horní trojúhelníková matice U tvoří LU rozklad čtvercové matice A, je-li A součinem matic L a U, tj když A = LU 30

Lze snadno ověřit, že pro každou čtvercovou matici A řádu n, pro niž jsou matice A (1), A (2),, A (n) regulární, platí A = LU, kde L = 1 m 21 1 m n1 m n2 1, U = a 11 a 12 a 1n a (1) 22 a (1) 2n a (n 1) nn LU rozklad matice A je tedy výsledkem přímého chodu v tom smyslu, že matice L je vytvořena z jednotek a ze všech multiplikátorů, použitých v přímém chodu Gaussovy eliminace a matice U je horní trojúhelníková matice, na niž přímý chod matici A transformuje Řešíme-li systém rovnic Ax = b a známe LU rozklad A = LU, pak Ax = b LUx = b Označíme-li y = Ux, můžeme úlohu Ax = b řešit v těchto dvou krocích 1 Ly = b 2 Ux = y Složitost (počet operací * a / ) tohoto algoritmu sestávajícího ze dvou zpětných chodů je přibližně n 2 /2 + n 2 /2, což je (zejména pro velký řád n) podstatně menší, než složitost n 3 /3 + n 2 /2 Gaussovy eliminace 63 Výpočet matice inverzní a) Je-li matice A regulární, pak matice X je inverzní k A, jestliže AX = E, podrobněji a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn x 11 x 1j x 1n x 21 x 2j x 2n 1 0 0 0 1 0 = x n1 x nj x nn 0 0 1 Tato maticová rovnost je ekvivalentní se soustavou n systémů rovnic Ax (j) = e (j) pro j = 1,, n, (13) kde x (j) případně e (j) je j tý sloupcový vektor matice X případně E 1 4 3 Příklad 63 Pro matici A = 2 5 4 najděte matici inverzní 1 3 2 31

A 1 současným řešením tří systémů rovnic (13) Gaussovou eliminací 1 4 3 1 0 0 2 5 4 0 1 0 1-3 -2 0 0 1-3 -2-2 1 0-7 -5-1 0 1-1 11 3 3-7 3 1 Tři zpětné chody poskytnou inverzní matici A 1 = 2 1 1 8 5 2 11 7 3 Složitost tohoto algoritmu je nepodstatně větší, než složitost jednoho přímého chodu a n zpětných chodů Tedy počet operací * a / při výpočtu matice inverzní je nepodstatně větší, než n 3 /3 + n n 2 /2 n 3 b) Jordanova metoda spočívá v transformaci matice A nejen na horní trojúhelníkovou matici jako v případě a), ale na jednotkovou matici V tomto tvaru je pro každý z n současně vyřešených systémů vektor řešení roven modifikovanému vektoru pravých stran, takže matice n vektorů pravých stran je rovna matici A 1 Příklad 64 Systém rovnic s horní trojúhelníkovou maticí, který je výsledkem eliminace z Př 63, transformujte na systém rovnic s jednotkovou maticí 1 4 3 1 0 0-3 -2-2 1 0-1 3 11 3-7 3 1 1 4 0 34-21 9-3 0-24 15-6 1-11 7-3 1 0 0 2-1 1 1 0 8-5 2 1-11 7-3 Výsledná matice pravých stran je právě matice A 1, uvedená v Př 63 64 Speciální matice V této kapitole se seznámíme s několika třídami speciálních matic, které se často vyskytují při řešení technických problémů a s příslušnými modifikacemi algoritmu Gaussovy eliminace 32

641 Symetrické pozitivně definitní matice Čtvercová matice A řádu n se nazývá symetrická pozitivně definitní (SPD), když je symetrická a pro všechny vektory x R n, x o platí x Ax > 0 Pro symetrickou matici A platí tato tvrzení a), b) a) Matice A je SPD, právě když všechny hlavní prvky a 11, a (1) 22,, a (n 1) nn jsou kladné b) Všechny matice A k = jsou symetrické a (k) k+1,k+1 a (k) k+1,n a (k) n,k+1 a (k) n,n vzniklé v přímém chodu, Na rozdíl od definice SPD poskytuje vlastnost a) algoritmus pro rozhodnutí, zda daná symetrická matice je SPD Vlastnosti a), b) říkají, že systémy rovnic s SPD maticí lze řešit Gaussovou eliminací tak, že ve všech maticích A k stačí spočítat jen prvky v a nad hlavní diagonálou Dále lze pro SPD matice vylepšit tvrzení o LU rozkladu: Je-li A SPD matice, pak existuje horní trojúhelníková matice U s kladnými prvky v hlavní diagonále taková, že A = U U (14) Toto vyjádření se nazývá Choleského rozklad matice A Postupným porovnáváním prvků matic na obou stranách níže rozepsané a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn = u 11 u 12 u 22 u 1n u 2n u nn u 11 u 12 u 1n u 22 u 2n u nn identity (14) pro indexy (1, 1), (1, 2),, (1, n),(2, 2),, (2, n),, (n, n) vznikne tato konstrukce matice U: 1 u 11 = a 11 a u 1j = a 1j /u 11 pro j = 2,, n 2 Pro i = 2,, n 1 : u ii = pro j = i + 1,, n 3 u nn = a nn n 1 k=1 u2 kn, a ii i 1 k=1 u2 ki a u ij = ( a ij i 1 k=1 u kiu kj ) /uii 33

642 Řídké matice jsou matice, v nichž je většina prvků rovna nule Systémy rovnic s maticemi tohoto typu se vyskytují v řadě důležitých aplikací, zejména při řešení okrajových úloh pro parciální diferenciální rovnice Systémy rovnic s řídkými maticemi jsou řešitelné mnohem efektivněji, než srovnatelně rozsáhlé systémy rovnic s tzv plnými maticemi Přímé metody jsou vhodné zejména pro řešení systémů rovnic se speciálními řídkými maticemi, tzv pásovými maticemi Čtvercová matice A řádu n se nazývá pásová, existují-li přirozená čísla p a q taková, že j < i p = a ij = 0 a j > i + q = a ij = 0 pro i = 1,, n Pak se číslo p + 1 + q nazývá šířka pásu Schema na Obr 6 ilustruje způsob, jak přímý chod Gaussovy eliminace a ekvivalentně LU rozklad zachovává pásovost matice A A = p q = p q = LU Obrázek 6 Pásová matice s parametry p = 1 = q se nazývá třídiagonální Explicitní popis algoritmu řešení systémů rovnic s třídiagonální maticí je velmi užitečný Užijeme-li značení třídiagonální matice A a jejího LU rozkladu z Obr 7 (matice U má nad hlavní diagonálou stejné prvky jako A), pak srovnáním prvku a 1 c 1 b 2 a 2 = cn 1 b n a n 1 β 2 1 Obrázek 7 α 1 c 1 β n 1 α 2 cn 1 α n a 1 s prvkem součinu LU získáme α 1 = a 1 Z analogického vyjádření prvku b k obdržíme β k = b k /α k 1 a z vyjádření a k vznikne α k = a k β k c k 1 pro k = 2,, n Tedy algoritmus řešení systému rovnic Ax = d LU rozkladem třídiagonální matice A a dvěma zpětnými chody je složen z těchto tří kroků: 34

Krok 1 (Výpočet LU rozkladu matice A) α 1 = a 1 a β k = b k /α k 1, α k = a k β k c k 1 pro k = 2,, n Krok 2 (Řešení Ly = d) y 1 = d 1 a y k = d k β k y k 1 pro k = 2,, n Krok 3 (Řešení Ux = y) x n = y n /α n a x k = (y k c k x k+1 )/α k pro k = n 1, n 2,, 1 Lze snadno ověřit, že tento algoritmus provádí 5n 4 násobících operací ( * a / ) Tedy řešení systémů rovnic s třídiagonální maticí je řádově rychlejší, než Gaussova eliminace pro systémy s plnými maticemi, která potřebuje provést přibližně n 3 /3 násobících operací 65 Číslo podmíněnosti matice Uvažujme o řešení problému (11) za ideálního předpokladu, že prvky matice A jsou dány přesně a při řešení nevznikají zaokrouhlovací chyby Zadáme-li tedy vektor pravých stran přesně, získáme přesné řešení, tj Aˆx = ˆb (15) Zadáme-li aproximaci b vektoru pravých stran, získáme aproximaci řešení, tj Ax = b (16) Za těchto podmínek budeme studovat závislost chyby vektoru řešení e x na chybě vektoru pravých stran e b Dosadíme-li do (15) vyjádření ˆx = x + e x a ˆb = b + eb, obdržíme A(x + e x ) = b + e b Odtud a z (16) vznikne Ae x = e b (17) Označíme-li normu vektorů i přidruženou normu matic pak z (16) a z (N4) plyne b A x Z (17) obdržíme e x = A 1 e b a odtud e x A 1 e b Vynásobením těchto dvou nerovností vznikne e x b A A 1 e b x 35

a vydělením obou stran číslem x b dospějeme k nerovnosti e x x A A 1 e b b (18) Tato nerovnost říká, že relativní chyba řešení na levé straně je ohraničena součinem čísla podmíněnosti C(A) = A A 1 matice A a relativní chyby pravé strany Protože je přidružená norma, je A = max x o ( Ax / x ) a A 1 = max x o A 1 x x = ( min x o kde y = A 1 x Tedy číslo podmíněnosti ) 1 ( x = min A 1 x y o C(A) = max x o ( Ax / x ) min y o ( Ay / y ) ) 1 Ay, y udává poměr mezi maximálním a minimálním nárůstem normy vektoru při jeho násobení maticí A Z této úvahy je zřejmé, že pro všechny matice A je C(A) 1 Protože jednotková matice E má vlastnost Ex = x pro všechny vektory x, je C(E) = 1 Matice A, jejichž číslo podmíněnosti je malé, se nazývají dobře podmíněné a matice s vlastností C(A) 1 se nazývají špatně podmíněné Vzhledem k nerovnosti (18) je nutno očekávat, že řešení systémů rovnic se špatně podmíněnou maticí budou velmi nepřesná Tento nedostatek nelze odstranit výběrem lepší metody řešení systému rovnic, ale jen tím, že se řešení špatně podmíněných soustav vyhneme Například tak, že pro řešení dané úlohy použijeme jinou numerickou metodu, která vede na systém lineárních rovnic s maticí dobře podmíněnou Nerovnosti jako (18) poskytují i odhad chyby řešení v důsledku chyb koeficientů matice soustavy Viz [11], 2618 Příklad 65 Při výpočtu vertikálních posuvů v 1 a v 2 bodů 1 a 2 z Obr 8 vznikne systém rovnic [ 1 1 1 1 + a 2 /(4l 2 ) ] [ v1 v 2 ] 36 = ql 2 /(Ea 2 ) [ 1 0,375 ]

Obrázek 8: Vyznačení bodů 1 a 2 nosníku s posuvy v 1 a v 2 Například pro a/l = 1/30 je matice soustavy A = [ 1 1 1 1,000278 ] a A 1 = 1 [ 1,000278 1 0,000278 1 1 Odtud plyne C(A) = A A 1 = 2,000278 2 /0,000278 = 14329,5, takže systém je špatně podmíněný To je důvodem skutečnosti, že při zaokrouhlování mezivýsledků na 6 desetinných míst je vypočtený výsledek [ v1 v 2 ] = ql 2 /(Ea 2 ) Cvičení 1 Systém rovnic [ 4947,043 4946,043 ] 1 2 3 1 3 2 1 1 2 Přesné řešení je ql 2 /(Ea 2 ) x 1 x 2 x 3 = 2 8 8 ] [ 4951 4950 ] řešte Gaussovou eliminací a najděte LU rozklad matice A {Řešením je vektor x = 1 1 2 3 [7/3, 7/3, 5/3] a LU rozklad A je 1 1 5 1 } 1 1/5 1 24/5 1 0 3 2 5 1 3 2 1 1 2 2 0 4 1 2 x 1 x 2 x 3 1 8 4 4 2 Systém rovnic = řešte Gaussovou x 4 eliminací s výběrem hlavních prvků Zaokrouhlujte na 4 platné číslice {x = [1, 288, 1, 273, 0, 3453, 0, 3741] } 37