Numerická matematika
Transkript
Numerická matematika
Numerická matematika J. Felcman Univerzita Jana Evangelisty Purkyně v Ústí nad Labem KNM PRESS 2004 . PRAHA iv PŘEDMLUVA 1. přednáška 1. [email protected] • Tel. 47528 4386 • KI č. dv. 541 2. Numerická matematika - anotace • Studijní program B1802 - Aplikovaná informatika Studijní obor Informační systémy KI 0027 2.IS ZS 2/2 Zk/Z (44 stud.) • Studijní program M7504 - Učitelství pro střední školy Studijní obor Výpočetní technika pro SŠ KI 0026 2.FY VT SŠ ZS 2/2 -/Z (12 stud.) 2.MA VT SŠ 3. Požadavky ke zkoušce • státnice (prospěl s vyznamenáním) • sylabus 4. Tituly • Ph.D. (projekt + angličtina) • RNDr. • Mgr. • Bc 5. Studium v zahraničí - ERASMUS 6. Ceny udělované studentům 7. SVOČ 8. Hodnocení učitelů - srozumitelnost 9. Náhrada • 20.10. 2004 (Uni Braunschweig) • 27.10. 2004 (Uni Braunschweig) • 03.11. 2004 (Uni Braunschweig) • 10.11. 2004 (Uni Braunschweig) • 17.11. 2004 (Svátek) 10. Zkouška (15. prosince 2004) část písemná část ústní Práce na tomto textu byla částečně podporována Grantovou agenturou České Republiky (projekty č. 201/02/0684 a 101/01/0938), Grantovou agenturou Univerzity Karlovy (projekt č. 275/2001/B-MAT/MFF) a Ministerstva školství, v vi PŘEDMLUVA mládeže a tělovýchovy České republiky (projekt č. MSM113200007). Děkuji panu Michalu Zerolovi, studentu Matematicko-fyzikální fakulty UK v Praze, který napsal v LATEXu tento učební text a přispěl tak podstatnou měrou k jeho realizaci. Praha, září 2004 J. F. PŘEDMLUVA vii Numerická matematika a optimalizace B1802 AI-IS, M7504 USŠ-VT ZS 2004/2005 22.09. 2004 Reálné situace, modely, diskretizace, počítačová realizace (fólie) Náměty do cvičení: Zdroje chyb v numerické matematice 29.09. 2004 Aproximace funkcí, interpolace, aproximace pomoci metody nejmenších čtverců, Lagrangeova báze, existence a jednoznačnost Lagrangeova interpolačního polynomu, chyba Lagrangeovy interpolace, Náměty do cvičení: Newtonova báze, monomiální báze, Vandermondova matice a determinant, vyčíslení Lagrangeova interpolačního polynomu v jediném bodě (Aitkenovo-Nevilleovo schéma), Hornerovo schéma, počet operací při vyčíslení hodnoty polynomu. OBSAH Úvod 1 1 Aproximace funkcí v IR 1.1 Lagrangeův interpolační polynom 1.1.1 Chyba Lagrangeovy interpolace 1.2 Kubický spline 1.2.1 Konstrukce přirozeného kubického spline 2 4 5 6 7 2 Numerická integrace funkcí 2.1 Newtonovy-Cotesovy vzorce 2.2 Rombergova kvadratura 2.3 Gaußova kvadratura 12 12 14 15 3 Metody řešení nelineárních rovnic 3.1 Newtonova metoda 3.1.1 Důkaz konvergence Newtonovy metody 3.2 Metoda postupných aproximací 3.3 Kořeny polynomu 3.3.1 Hornerovo schema 18 18 19 21 21 22 4 Soustavy lineárních rovnic 4.1 Podmíněnost matic 4.2 Gaußova eliminace 4.2.1 Pivotace 4.3 Gaußova eliminace jako faktorizační metoda 4.4 LU rozklad v obecném případě 4.4.1 Vliv zaokrouhlovacích chyb 4.5 Choleského rozklad 4.6 QR rozklad 24 24 26 26 27 29 30 30 31 5 Iterační metody řešení soustav lineárních rovnic 5.1 Klasické iterační metody 32 33 6 Výpočet vlastních čísel matic 6.1 Mocninná metoda výpočtu dominantního vlastního čísla 36 36 7 Numerická integrace soustav obyčejných diferenciálních rovnic 7.1 Formulace problému 7.2 Jednokrokové metody 38 38 38 Bibliografie 41 ix x Index OBSAH 42 ÚVOD Numerická analýza: Studium algoritmů (jednoznačně definovaná konečná posloupnost aritmetických a logických operací) pro řešení problémů spojité matematiky. L.N. Trefethen, Bulletin IMA 1993 Numerická matematika: realizace matematických modelů na počítači Fyzikální realita → matematický model → numerické řešení, t.j. realizace matematického modelu na počítači. Validation (solving the right equations) – verification (solving the equations right) Literatura k přednášce: (Quarteroni, 2000), (Ueberhuber, 2000), (Kinkel, 2000), (Segethová, 2000) Předpokládané znalosti: Rolleova věta, definice normy funkce, definice seminormy, vlastní čísla, Geršgorinovy kruhy, ostře diagonálně dominantní matice, báze lineárního vektorového prostoru, . . . 1 1 APROXIMACE FUNKCÍ V IR 2. přednáška Jedna ze základních úloh numerické matematiky: aproximace dané funkce f jinou funkcí ϕ Zadání aproximované funkce - analyticky, nebo je k dispozici • tabulka hodnot (xi , fi ), xi , fi ∈ IR, i = 0, . . . , n, n ∈ IN, fi = f (xi ) (viz obr. 1.0.1) • tabulka hodnot derivací do určitého řádu v uzlech xi Pro funkci f definovanou na uzavřeném intervalu [a, b] uvažujeme dělení intervalu [a, b] a = x0 < x1 , . . . < xn = b, n ∈ Z + = {0, 1, . . .} a nazýváme ho sítí. xi , i = 0 . . . , n nazýváme uzly (ekvidistantní, je-li xi = a + ih, kde h ∈ IR je krok sítě.) Poznámka 1.1 Pojem síť se používá obecně v N -rozměrném prostoru, viz např. (Feistauer et al., 2003, page . . .): Let Ω ⊂ IRN be a domain. If N = 2, then by Ωh we denote a polygonal approximation of Ω. This means that the boundary ∂Ωh of Ωh consists of a finite number of closed simple piecewise linear curves. For N = 3, Ωh will denote a polyhedral approximation of Ω. For N = 3 we set Ωh = Ω. The system Dh = {Di }i∈J , where J ⊂ Z + = {0, 1, . . .} is an index set and h > 0, will be called a finite volume mesh in Ωh , if Di , i ∈ J, are closed line segments or closed polygons or polyhedrons, if N = 1 or N = 2 or 3, respectively, with mutually disjoint interiors such that [ Ωh = Di . i∈J The elements Di ∈ Dh are called finite volumes. Two finite volumes Di , Dj ∈ Dh are either disjoint or their intersection is formed by a common part of their boundaries ∂Di and ∂Dj . If ∂Di ∩∂Dj contains at least one straight segment or a plane manifold, if N = 2 or 3, respectively, then we call Di and Dj neighbouring finite volumes (or simply neighbours). Požadavky na aproximující funkci ϕ (A) jednoduchý tvar, snadno vyčíslitelná ∗ polynom {1, x, x2 , x3 , . . .} ∗ trigonometrický polynom {1, sin x, cos x, sin 2x, cos 2x, . . .} ∗ racionální funkce ∗ exponenciální funkce aebx 2 APROXIMACE FUNKCÍ V IR 3 5 4 3 2 1 0 1 2 3 4 5 Obr. 1.0.1. Interpolační polynom nabývající v daných uzlech předepsaných hodnot 3 2.5 2 1.5 1 0.5 0 1 2 3 4 Obr. 1.0.2. Proložení přímky třemi body (ve smyslu nejmenších čtverců) (B) ϕ(j) (xi ) = f (j) (xi ), derivací v uzlech) ∀i = 0, . . . , n, j = 0, . . . , ci (rovnost hodnot, event. (C) kϕ − f k ‘malá’, kde k · k značí normu Poznámka 1.2 Od požadavku (B) někdy upouštíme (proložit třemi body přímku - viz obr. 1.0.2) Nejčastější způsoby aproximace 1. Interpolace - k funkci f sestrojíme funkci ϕ z jisté třídy M splňující (B) 2. Aproximace metodou nejmenších čtverců - k funkci f sestrojíme funkci ϕ z jisté třídy M splňující (B) ve smyslu nejmenších čtverců • diskrétní případ 4 APROXIMACE FUNKCÍ V IR n X i=0 n X ¡ ¢2 ¡ ¢2 wi f (xi ) − ϕ(xi ) = min wi f (xi ) − ψ(xi ) ψ∈M i=0 kde wi > 0, i = 0, . . . , n jsou zadaná čísla, zvaná váhy. Název ‘nejmenší čtverce’ je patrný z následujícího příkladu: Příklad 1.3 Pro dané dělení intervalu [a, b] a dané váhy wi uvažujme normu funkce f danou vztahem v u n uX ¡ ¢2 wi f (xi ) kf k := t i=0 ϕ ∈ M se hledá tak, že kf − ϕk2 = min kf − ψk2 ψ∈M • spojitý případ Z Z b ¡ ¢2 w(x) f (x) − ϕ(x) dx = min ψ∈M a a b ¡ ¢2 w(x) f (x) − ψ(x) dx w je váhová funkce (skoro všude kladná v [a, b], w ∈ L2 (a, b). Definice pojmu ‘skoro všude’ a prostoru L2 (a, b) viz např. (Feistauer et al., 2003, strana . . .).) 3. Čebyševova (stejnoměrná) aproximace max |ϕ(x) − f (x)| ≤ max |ψ(x) − f (x)| [a,b] [a,b] pro všechny funkce ψ ∈ M, kde M je zvolená množina funkcí. 1.1 Lagrangeův interpolační polynom Hledáme polynom Ln stupně nejvýše n (píšeme Ln ∈ Πn - prostor polynomů stupně nejvýše n) takový že Ln (xi ) = f (xi ) i = 0, . . . , n (1.1.1) xi - navzájem různé uzly, obecně neekvidistantní Věta 1.4 Nechť x0 , . . . , xn jsou navzájem různé uzly. Pak existuje právě jeden interpolační polynom Ln ∈ Πn : Ln (xi ) = f (xi ) i = 0, . . . , n Důkaz 1. Existence Uvažujme polynomy li (x) = (x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn ) (xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn ) (tzv. Lagrangeovy polynomy) Platí LAGRANGEŮV INTERPOLAČNÍ POLYNOM α) li (x) ∈ Πn β) li (xj ) = δij = Položme 1, 0, 5 i = j, (Kroneckerovo delta) i 6= j. Ln (x) = n X f (xi )li (x) i=0 2. Jednoznačnost Nechť L1n , L2n ∈ Πn splňují (viz (1.1.1)) L1n (xi ) = L2n (xi ) = f (xi ) ∀i = 0, . . . , n L1n − L2n ∈ Πn , který má (n + 1) kořenů. Podle Základní věty algebry je L1n − L2n nulový polynom. 2 Poznámka 1.5 ωn+1 (x) = (x − x0 ) . . . (x − xn ) ωn+1 (x) ℓi (x) = ′ (xi ) (x − xi ) · ωn+1 kde čárka označuje derivaci. 1.1.1 Chyba Lagrangeovy interpolace Věta 1.6 Nechť f ∈ C n+1 (I), kde I je nejmenší interval obsahující x0 , . . . , xn , x∗ a x0 , . . . , xn jsou navzájem různé uzly, . Nechť Ln ∈ Πn je Lagrangeův interpolační polynom pro funkci f . Pak ∃ ξ ∈ I f (x∗ ) − Ln (x∗ ) = f (n+1) (ξ) · ωn+1 (x∗ ) (n + 1)! (chyba Lagrangeovy interpolace v bodě x∗ ) Důkaz Pro x∗ = xi je důkaz zřejmý. Pro x∗ 6= xi uvažujme funkci : kde t ∈ IR. Platí: F (x) = f (x) − Ln (x) − t · ωn+1 (x) F (xi ) = 0 Pro vhodnou volbu ∀ i = 0, . . . , n f (x∗ ) − Ln (x∗ ) ωn+1 (x∗ ) ∗ platí F (x ) = 0. F má tedy n + 2 nulových bodů (uzly xi a bod x∗ ). Podle Rolleovy věty: t := F′ má n + 1 nulových bodů 6 APROXIMACE FUNKCÍ V IR .. . F (n+1) má 1 nulový bod, označme ho ξ F (n+1) (ξ) = 0 = f (n+1) (ξ) − 0 − t · (n + 1)! Á ωn+1 (x∗ ) (n + 1)! (kde jsme využili toho, že (n + 1)-ní derivace Ln je nulová a (n + 1)-ní derivace ωn+1 je (n + 1)!) f (x∗ ) − Ln (x∗ ) = f (n+1) (ξ) · ωn+1 (ξ) (n + 1)! 2 Zkušební otázka 1.1 Chyba Lagrangeovy interpolace 1.2 Kubický spline Definice 1.7 Nechť je dáno dělení intervalu [a, b], a = x0 , x1 , . . . , xn = b (xi navzájem různé). Řekneme, že funkce ϕ : [a, b] → IR je kubický spline, jestliže • ϕ′′ je spojitá (∈ C 2 [a, b]) • ϕ|[xi ,xi+1 ] je kubický polynom, pro i = 0, 1, . . . , n − 1 Poznámka 1.8 Kubický spline dobře aproximuje funkci, která popisuje tvar s minimální energií. Poznámka 1.9 Spline - elastické pravítko používané při stavbě lodí Poznámka 1.10 Kubický spline je speciálním případem spline k-tého řádu pro k = 3. Důvodem častého použití kubického spline je fakt, že lidské oko je schopné rozlišit ještě změny 2. derivace. Poznámka 1.11 Popíšeme-li tvar pružné laťky funkcí y = f (x), potom E(y) = Z a b y ′′ (x) £ ¤3/2 dx 1 + (y ′ (x))2 měří její ohybovou energii. Lať se deformuje tak, že je tato energie minimální (Hamiltonův princip). Dá se ukázat, že mezi všemi funkcemi z C 2 [a, b] aproximuje kubický spline ϕ :: ϕ(xi ) = f (xi ) velmi dobře funkci y ∗ , pro kterou se nabývá minima E(y): miny E(y) = E(y ∗ ). KUBICKÝ SPLINE 7 Věta 1.12 Nechť f ∈ C 2 [a, b]. Pak pro každý kubický spline ϕ splňující ϕ(xi ) = f (xi ) i = 0, . . . , n platí 2 kϕk ≤ kf k , kde kuk := Z b a 2 |u′′ (x)| dx, jestliže je splněna některá z následujících třech podmínek: (a) (b) (c) ϕ′′ (a) = 0 = ϕ′′ (b) ϕ′ (a) = f ′ (a) a ϕ′ (b) = f ′ (b) ϕ′ (a) = ϕ′ (b) a ϕ′′ (a) = ϕ′′ (b) (1.2.1) Poznámka 1.13 (Pozor, k.k ve větě 1.12 neznačí normu, ale pouze seminormu v Sobolevově prostoru H 2 (a, b), která se obvykle značí |.|H 2 (a,b) , detaily viz např. (Feistauer et al., 2003, page . . .)) Důkaz Viz cvičení. 2 Důsledek 1.14 Ve všech třech případech (a), (b), (c) je kubický spline určen jednoznačně. 1.2.1 Konstrukce přirozeného kubického spline 3. přednáška Značení: fi := f (xi ) ϕi := ϕ|[xi ,xi+1 ] hi := xi+1 − xi ∀i = 0, . . . , n ∀i = 0, . . . , n − 1 ∀i = 0, . . . , n − 1 Kubický polynom ϕi je na intervalu [xi , xi+1 ] určen čtyřmi koeficienty. Počet intervalů je n, celkem máme tedy pro určení ϕ počet stupňů volnosti 4n. Pro tyto stupně volnosti sestavíme příslušné rovnice. Počet neznámých Počet rovnic 4 × počet intervalů ϕ(xi ) = f (xi ), i = 0, . . . , n spojitost ϕ v xi , i = 1, . . . , n − 1 spojitost ϕ′ v xi , i = 1, . . . , n − 1 spojitost ϕ′ v xi , i = 1, . . . , n − 1 4n n+1 n−1 n−1 n−1 4n − 2 Počet rovnic je o dvě menší než počet neznámých. Doplníme je proto některou z podmínek (1.2.1), (a)–(b). Uvažujme např. podmínku (1.2.1), (a), tj. podmínku nulových druhých derivací v krajních bodech. Takový spline nazýváme přirozeným kubickým splinem. Pro určení přirozeného kubického splinu hledáme ϕi ve vhodném tvaru. Ukazuje se, že efektivní metoda není založena na vyjádření ϕi (x) = ai x3 + bi x2 + ci x + di (NEVHODNÉ viz cvičení) 8 APROXIMACE FUNKCÍ V IR ϕ′′i (( Mi ( ((( ( r ( (( ((( ( Mi+1 r (( ( xi xi+1 Obr. 1.2.1. Přímka ϕ′′i ani na vyjádření ϕi (x) = ai (x−xi )3 +bi (x−xi )2 +ci (x−xi )+di (MÉNĚ VHODNÉ viz cvičení) ale na vyjádření pomocí tzv. momentů, což jsou hodnoty druhé derivace ϕ v uzlech. Označme je Mi : Mi := ϕ′′ (xi ), i = 0, . . . , n a předpokládejme, že tyto momenty známe. Později ukážeme, jak je určit. Platí ϕi − kubický polynom ϕ′i − parabola ϕ′′i − přímka Z předpokladu spojitosti druhé derivace ϕ v uzlech dostáváme Mi = ϕ′′i (xi ) Mi+1 = ϕ′′i (xi+1 ) Je tedy ϕ′′i přímka, procházející body (xi , Mi ) a (xi+1 , Mi+1 ) (viz obr. 1.2.1). ϕ′′i (x) = (x − xi ) · Mi+1 Mi · (x − xi+1 ) + xi+1 − xi xi − xi+1 ϕ′′i (x) = − Mi Mi+1 · (x − xi+1 ) + · (x − xi ) hi hi Integrací odvodíme ϕ′i (x) = − Mi+1 Mi · (x − xi+1 )2 + · (x − xi )2 + Ai 2hi 2hi KUBICKÝ SPLINE ϕi (x) = − Mi+1 Mi · (x − xi+1 )3 + · (x − xi )3 + Ai (x − xi ) + Bi 6hi 6hi vhodný rozpis integrační konstanty ↑ 9 (1.2.2) Ve vyjádření ϕi ve tvaru (1.2.2) nejprve určíme koeficienty Ai , Bi , i = 0, . . . , n − 1 pomocí momentů a potom sestavíme rovnice pro momenty. Využijeme k tomu podmínky ϕi (xi ) = fi ϕi (xi+1 ) = fi+1 , i = 0, . . . , n − 1 (Dvě rovnice pro dvě neznámé Ai , Bi , i = 0, . . . , n − 1.) Dostaneme ϕi (xi ) = Mi 2 · hi + Bi = fi 6 Mi 2 · hi 6 Mi 2 Mi+1 2 · hi + Ai hi + fi − · hi = fi+1 ϕi (xi+1 ) = 6 6 fi+1 − fi Mi − Mi+1 → Ai = + · hi hi 6 Rovnice pro momenty sestavíme ekvivalentním vyjádřením podmínky spojitosti derivace kubického spline v uzlech: → Bi = fi − ϕ′i−1 (xi ) = ϕ′i (xi ), i = 1, . . . , n Připomeňme si tvar ϕ′i ϕ′i (x) = − Mi+1 Mi · (x − xi+1 )2 + · (x − xi )2 + Ai 2hi 2hi resp. ϕ′i−1 ϕ′i−1 (x) = − Mi Mi−1 · (x − xi )2 + · (x − xi−1 )2 + Ai−1 2hi−1 2hi−1 S využitím vyjádření pro Ai , resp. Ai−1 pomocí momentů dostaneme fi − fi−1 Mi−1 − Mi Mi · h2 + + · hi−1 2hi−1 i−1 hi−1 6 Mi fi+1 − fi Mi − Mi+1 =− · h2i + 0 + + · hi = ϕ′i (xi ) 2hi hi 6 ϕ′i−1 (xi ) = 0 + Protože konstruujeme přirozený kubický spline, je M0 = ϕ′′ (x0 ) = 0 = ϕ′′ (xn ) = Mn a dostáváme tak n − 1 rovnic (i = 1, . . . , n − 1) pro neznáme momenty M1 , M2 , . . . , Mn−1 . Tyto rovnice lze přepsat ve tvaru 10 APROXIMACE FUNKCÍ V IR ¶ µ hi−1 hi hi fi − fi−1 fi+1 − fi hi−1 hi hi−1 Mi−1 + − + − + ·Mi + Mi+1 = − 6 2 6 2 6 6 hi−1 hi {z } | | {z } gi hi−1 +hi 3 Maticový zápis vede na soustavu s třídiagonální maticí. h0 +h1 3 .. . h1 6 .. .. . . .. .. . . hi−1 6 .. . hi−1 +hi 3 .. . hi 6 .. .. . . .. .. . . hn−1 6 .. . hn−1 +hn 3 M1 .. . Mi−1 Mi Mi+1 . . . g 1 .. . gi−1 = gi gi+1 . . . Mn−1 gn−1 Příklad 1.15 Pro ekvidistantní dělení s krokem h má matice soustavy tvar 4 1 ... ... ... h 1 4 1 6 .. .. .. . . . 1 4 Při vyšetřování řešitelnosti této soustavy lze využít následující definici a větu z algebry: Definice 1.16 Řekněme, že matice A typu n × n, n ≥ 2 je ostře diagonálně dominantní (ODD), jestliže |aii | > n X j=1,j6=i |aij | ∀i = 1, . . . , n Věta 1.17 Nechť A ∈ IRn×n je ODD. Pak A je nesingulární. Důkaz pomocí Geršgorinových kruhů, viz (Quarteroni, 2000, page . . .). A je nesingulární ⇔ detA 6= 0 ⇔ rovnice det(A−λI) = 0 nemá kořen λ = 0 ⇔ nula není vlastním číslem matice A. Nechť λ je vlastní číslo matice A Ax = λx Ay = λy X j6=i0 x , kxk := max |xi | i kxk |yi | ≤ 1, ∃i0 :: |yi0 | = 1 y := ai0 j yj + ai0 i0 yi0 = λyi0 KUBICKÝ SPLINE 11 ¯X ¯ ¯ ai0 j yj ¯ = |λ − ai0 i0 ||yi0 | j6=i0 ¯X ¯ |λ − ai0 i0 | ≤ ¯ ai0 j ¯ j6=i0 ¯X ¯ (Geršgorinův kruh o středu ai0 i0 a poloměru ¯ ai0 j ¯) j6=i0 Kdyby λ = 0 bylo vlastním číslem ¯X ¯ |ai0 i0 | ≤ ¯ ai0 j ¯ Spor s ODD j6=i0 λ = 0 tedy není vlastní číslo a matice A je nesingulární. 2 Matice soustavy rovnic pro momenty je ODD, soustava je tedy podle výše uvedené věty jednoznačně řešitelná a protože matice soustavy je třídiagonální, lze pro řešení použít např. Gaußovu eliminaci. 2 NUMERICKÁ INTEGRACE FUNKCÍ Cíl: Ih (f ) = Z a 2.1 b f (x) dx ≈ n X αi f (xi ) (2.0.1) i=0 Newtonovy-Cotesovy vzorce Z a Z a b f (x) dx ≈ Z b Ln (x) dx = a li (x) }| { (x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn ) dx = f (xi ) (xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn ) i=0 n Z b X (2.1.1) ℓi (x) dx f (xi ) i=0 | a {z } z n bX αi Tento vzorec nazýváme pro ekvidistantní uzly Newton-Cotesův. subst. x = a + th αi := Z b n Y a j=0,j6=i xi = a + ih Z n (x − xj ) b−a n Y dx = (xi − xj ) n 0 j=0,j6=i (t − j) dt (i − j) (2.1.2) Z konstrukce Lagrangeovy interpolace Ln funkce f ∈ Πn plyne, že Ln (x) = f (x), a tedy N-C vzorec je přesný pro polynomy stupně nejvýše n. To nás vede k následující definici. Pn Definice 2.1 Řekněme, že kvadraturní formule i=0 αi f (xi ) má (algebraický) řád n ∈ IN , jestliže Z b n X αi p(xi ) ∀p ∈ Πn a (2.1.3) p(x) dx = a i=0 ∃ polynom p̃(x) stupně n + 1, pro který platí Z b n X αi p̃(xi ) p̃(x) dx 6= a i=0 12 (2.1.4) NEWTONOVY-COTESOVY VZORCE 13 Zkušební otázka 2.1 Řád kvadraturní formule Lemma 2.2 Je-li kvadraturní formule symetrická, t.j. b − xn−i = xi − a αi = αn−i a je-li řádu alespoň n, n sudé, pak je její řád alespoň n + 1. Lemma 2.3 Newtonův-Cotesův vzorec je symetrická kvadraturní formule. Důsledek 2.4 Pro n sudé je řád N-C vzorce ≥ n + 1. Zkušební otázka 2.2 Odvoďte Newtonův-Cotesův vzorec Lemma 2.5 (Odhad chyby lichoběžníkového pravidla) Nechť f ∈ C 2 [a, b]. Označme Th (f ) N-C vzorec pro n = 1. Pak ∃ ξ ∈ [a, b], Rb t.ž. (při značení I(f ) = a f (x) dx) I(f ) − Th (f ) = − f ′′ (ξ) h3 · 2 6 (2.1.5) Lemma 2.6 (Odhad chyby Simpsonova pravidla) Nechť f ∈ C 3 [a, b]. Označme Sh (f ) N-C vzorec pro n = 2. Pak ∃ ξ ∈ [a, b], t.ž. h5 (2.1.6) I(f ) − Sh (f ) = − · f ′′′ (ξ) 90 Definice 2.7 (zbytek kvadraturního vzorce) Eh (f ) = I(f ) − Ih (f ), (H = Z xi+1 xi Ih (f ) = H b−a , h= m n n X αi f (xi ) i=0 m, n ∈ IN ) f (x) dx ≈ Ihi (f ) = n X αji f (xj ) j=0 Věta 2.8 (složené N-C vzorce) Nechť f ∈ C n+1 [a, b]. pak pro složené N − C vzorce platí I(f ) − Ih (f ) ≤ Chn+1 (2.1.7) Důkaz plyne z odhadu chyby Lagrangeova interpolačního polynomu Zkušební otázka 2.3 Odhady chyb N-C vzorců 2 14 NUMERICKÁ INTEGRACE FUNKCÍ 2.2 Rombergova kvadratura Rb Výpočet a f (x) dx pomocí lichoběžníkového pravidla. b−a m h=H H= Věta 2.9 (Eulerova-Maclaurinova) Nechť f ∈ C 2N +2 [a, b], h = b−a n , n ∈ IN . Potom pro složené lichoběžníkové pravidlo (označíme ho CTh (f )) platí: CTh (f ) = p(h2 ) + O(h2N +2 ) 2 (2.2.1) 4 2N = I(f ) + a1 h + a2 h + · · · + aN h + O(h Z b f (x) dx = I(f ) kde p ∈ ΠN , p(0) = 2N +2 ) (2.2.2) a p = p(t) = a0 + a1 t + · · · + aN t Důkaz viz Stör Numerische Mathematik I 2 Rombergova kvadratura: konstruujeme lineární kombinaci vzorců CTh (f ) pro vhodné h tak, abychom získali vzorec, který je přesnější v následujícím smyslu: CTh (f ) = I(f ) + a1 h2 + O(h4 ) / − 1 h2 + O(h4 ) /4 CT h (f ) = I(f ) + a1 2 4 4CT h (f ) − CTh (f ) 2 = I(f ) + O(h4 ) 3 CTh (f ) = I(f ) + a1 h2 + a2 h4 + O(h6 ) = L2 (0) + b1 h2 + b2 h4 (2.2.3) 2 4 4 2 h h CT h (f ) = I(f ) + a1 h4 + a2 h16 + O(h6 ) = L2 (0) + b1 + b2 (2.2.4) 2 4 16 2 h2 h4 h4 + O(h6 ) = L2 (0) + b1 CT h (f ) = I(f ) + a1 h16 + a2 256 + b2 (2.2.5) 4 16 256 6 lin.k. ↑= I(f ) + 0 + 0 + O(h ) = L2 (0) + 0 + 0 Zobecnění: L2 (t) = b0 +b1 t + b2 t2 |{z} L2 (0) 2 2 h h h2 4 16 CTh (f ) (2.2.3) CT h (f ) (2.2.4) CT h (f ) (2.2.5) 2 4 Rb Závěr: L2 (0) aproximuje a f (x) dx s chybou O(h6 ). Při konstrukci L2 (0) se jedná o tzv. Richardsonovu extrapolaci. Problém: Vyčíslení Lagrang. interpolačního polynomu v 0. GAUßOVA KVADRATURA 15 2.3 Gaußova kvadratura Víme, že N − C vzorce mají Pn řád n (pro n sudé dokonce n + 1). Jakého řádu můžeme být formule typu i=0 αi f (xi )? Z b n X b−a αi f (xi )(∗) f ∈ Πn (2.3.1) f (x) dx ≈ h= n a i=0 Lemma 2.10 (Řád kvadraturní formule) Řád kvadraturní formule (2.3.1) je nejvýše 2n + 1. Qn Důkaz Uvažujme polynom p(x) = i=0 (x − xi )2 ∈ Π2n+2 f := p̃ Z b p̃(x) > 0 a n X αi p(xi ) = 0 i=0 2 Gaußova kvadratura je způsob konstrukce vzorce přesný pro všechny polynomy stupně nejvýše 2n + 1. Pn i=0 αi f (xi ), který je Definice 2.11 (skalární součin polynomů) Skalární součin v C[a, b] je definován Z b u(x)v(x) dx (2.3.2) (u, v) = a Definice 2.12 Množina normovaných polynomů Π̃n = {p ∈ Πn ; p(x) = xn + an−1 xn−1 + · · · + a0 } (2.3.3) Idea pro konstrukci Gaußovy kvadratury: xi (uzly): kořeny polynomů pn+1 z množiny ortogonálních polynomů {p0 , p1 , . . . , pn+1 } Rb αi (koeficienty): P určíme tak, aby q(x) dx = a n α q(x ) ∀q ∈ Π i i 2n+1 i=0 Věta 2.13 (Ortogonální polynomy) 1. Existují jednoznačně určené polynomy pi , (pi , pj ) = 0 i 6= j pi ∈ Π̃i , (pozn. i ∈ IN ∪ 0 p0 (x) = 1) 2. Kořeny x0 , . . . , xn polynomu pn+1 jsou reálne, jednoduché a leží v (a, b) 3. p (x ) p (x ) · · · p (x ) 0 0 0 1 0 n p1 (x0 ) p1 (x1 ) · · · p1 (xn ) je nesingulární A= .. . pn (x0 ) pn (x1 ) ··· pn (xn ) 16 NUMERICKÁ INTEGRACE FUNKCÍ Důkaz viz cvičení 2 Z b f (x) dx ≈ a n X αi f (xi ) i=0 Gauß: xi − kořeny pn+1 Rb Pn αi : a q(x) dx = i=0 αi q(xi ), ∀q ∈ Π2n+1 Dělení polynomu polynomem: q(x) = r(x)pn+1 (x) + s(x) r, s ∈ Πn Z = n bX Z b r(x)pn+1 (x) dx + {z } |a γj pj (x) dx = j=0 b s(x) dx = a =0 a j=0 n X Z Z n bX γj p0 (x)pj (x) dx = a j=0 γj Z b p0 (x)pj (x) dx = γ0 Z b p0 (x) dx a a Levá strana γ0 (b − a) Pravá strana n X i=0 ⇒ γ0 αi [r(xi )pn+1 (xi ) +s(xi )] = {z } | =0 n X i=0 αi n X γj pj (xi ) j=0 γ0 (b − a) + γ1 · 0 + · · · + γn · 0 = Pn Pn i=0 p1 (xi )αi + · · · + γn i=0 pn (xi )αi Pn i=0 p0 (xi )αi + γ1 Pn Pni=0 p0 (xi )αi i=0 p1 (xi )αi .. Pn . i=0 pn (xi )αi = = = p (x ) · · · (b − a) 0 0 0 p1 (x0 ) · · · ⇔ .. .. . . p0 (xn ) · · · 0 p0 (xn ) α0 b − a p1 (xn ) α1 0 . = . .. .. pn (xn ) αn 0 Z hlediska stability je výhodné, že koeficienty αi Gaußova kvadraturního Pn vzorce i=0 αi f (xi ) jsou kladné. Věta 2.14 (pozitivita αi ) Koeficienty αi Gaußova kvadraturního vzorce jsou kladné. GAUßOVA KVADRATURA Důkaz Položme: p̃k (x) = n Y j=0,j6=k 0< Z a b p̃k (x) dx = (x − xj )2 n X i=0 17 ∈ Π2n αi p̃k (xi ) = αk p̃k (xk ) | {z } >0 ⇒ αk musí být kladné 2 3 METODY ŘEŠENÍ NELINEÁRNÍCH ROVNIC F : IRN → IRN F (x) = 0 Hledáme α : F (α) = 0 Metody pro řešení výše uvedené úlohy jsou většinou iterační. Cíl je generovat posloupnost {xk } takovou, že lim x = α, kde F (α) = 0. 3.1 Newtonova metoda Nahrazení problému F (x) = 0 posloupností lineárních problémů Lk (x) = 0, Lk : IRN → IRN α . . . F (α) = 0 α ≈ xk+1 Lk (xk+1 ) = 0 Taylorův rozvoj funkce více proměnných v bodě xk ∈ IRN 0 = F (α) = F (x(k) ) + J(x(k) )(α − x(k) ) + O((α − x(k) )2 ) (za předpokladu dostatečné hladkosti zobrazení F ) . F (x) = 0 ≈ 0 = F (x) + J(x(k) )(α − x(k) ) zleva J −1 (x(k) ) {z } | (3.1.1) Lk (x)=0 (k+1) α ≈ x (k) =x − J −1 (x(k) )F (x(k) ) Algoritmus: 1. J(x(k) ) (x − xk ) = −F (x(k) ) | {z } (k+1) 2. x δx(k) (k) =x + δx(k) N =1: x(k+1) = x(k) − f (x(k) ) f ′ (x(k) ) lk (x) :: [x(k) , f (x(k) )] lk (x) = f (x(k) ) + (x − x(k) )qk qk := f ′ (x(k) ) 18 (3.1.2) NEWTONOVA METODA 3.1.1 19 Důkaz konvergence Newtonovy metody Věta 3.1 (Konvergence Newtonovy metody pro soustavy) Nechť F ∈ C(D), D ⊂ IRN konvexní, otevřená množina, která obsahuje α :: F (α) = 0. Nechť ∃ J −1 (α), nechť ∃ R > 0, C > 0, L > 0 : ° −1 ° °J (α)° ≤ C ∀x, y ∈ B(α, R) kJ(x) − J(y)k ≤ L kx − yk | {z } {z } | maticová norma vekt. norma Potom ∃ r, ∀x(0) ∈ B(α, r), posloupnost 3.1.2 je jednoznačně definována a konverguje k α a platí °2 ° ° ° ° ° ° ° (3.1.3) °α − x(k+1) ° ≤ CL °α − x(k) ° Motivace: N = 1 x(k+1) = x(k) − f (x(k) ) f ′ (x(k) ) metoda Taylor: f ′′ (ξ)(α − x(k) )2 f (α) = f (x(k) ) + f ′ (x(k) )(α − x(k) ) + 2 ¯ ¯ (k+1) ¯ ¯ Zajímá nás chyba (α − x). Chceme ukázat, že α − x → 0. α − x(k+1) = α − x(k) + 0= f ′′ (ξ)(α − x(k) )2 f (x(k) ) (k) + (α − x ) + f ′ (x(k) ) 2 · f ′ (x(k) ) α − x(k+1) = − Kdyby f (x(k) ) f ′ (x(k) ) f ′′ (ξ)(α − x(k) )2 2 · f ′ (x(k) ) ¯ ¯ ¯ f ′′ (ξ) ¯ ¯ ¯ ¯ 2 · f ′ (x(k) ) ¯ < C̃ ⇒ ¯¯4 ¯ ¯ ¯ ¯2 ¯ ¯4 1 ¯¯ ¯¯ ¯¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯α − x(k+1) ¯ ≤ C ¯α − x(k) ¯ ≤ CC 2 ¯α − x(k−1) ¯ ≤ ¯C ¯α − x(k−1) ¯¯ C ¯¯2k+1 1 ¯¯ ¯¯ ¯¯ ≤ ¯C ¯α − x(0) ¯¯ C ¯ ¯ ¯ ¯ C ¯α − x(0) ¯ < 1 pokud je x(0) dostatečně blízko k α |f ′′ | omezená shora (koresp. s lipchs.) 20 METODY ŘEŠENÍ NELINEÁRNÍCH ROVNIC Vosh: 1 f ′ (x(k) ) ° −1 ° °J (α)° ≤ C omezená shora (f ′ (α) 6= 0) |f ′ (x) − f ′ (y)| = f ′′ (ξ)(x − y) kJ(x) − J(y)k ≤ L kx − yk Důkaz [Věty 3.1] x(0) zvolíme v B(α, r), kde r učíme tak, aby J −1 (x(0) ) existovala. K tomu nám pomůže algebra: kAk < 1 ⇒ (I − A)−1 ° ° °(I − A)−1 ° ≤ Potom existuje a platí 1 1 − kAk (viz cvičení) A := 1 − J −1 (α)J(x(0) ) (I − A) = J −1 (α)J(x0 ), (I − A)−1 = J −1 (x(0) )J(α) ° ° ° ° ° ° ° ° ° ° ° ° °I − J −1 (α)J(x(0) )° = °J −1 (α)(J(α) − J(x(0) ))° ≤ CL °α − x(0) ° x(0) zvolím tak, aby (3.1.4) ≤ 1 2 r := min Odhadneme: (3.1.4) µ 1 ,R 2CL ¶ ° ° ° ° ° −1 (0) ° ° (−1) ° (α)J(α)J (−1) (x(0) )° ≤ °J (x )° = °J C 1 ≤ 2C 1 − kAk |{z} ≤ 12 α − x(1) = α − x(0) + J (−1) (x(0) )F (x(0) ) {z } | pomocí Taylora ° ° ° °1 ° °2 ° ° ° ° ° ° °α − x(1) ° ≤ °J −1 (x(0) )° L °α − x(0) ° ≤ 2 °´ ° ° ° °2 ³ ° ° ° ° ° ° ° ≤ CL °α − x(0) ° = CL °α − x(0) ° °α − x(0) ° | {z } < 12 a odtud plyne konvergence, a dále indukcí. 2 METODA POSTUPNÝCH APROXIMACÍ 21 Poznámka 3.2 Modifikace Newtonovy metody: • Jacobiho matice se nemění pro p ≥ 2 kroků • nepřesné řešení soustavy lin. rovnic • vyčíslení Jacobiho matice pomocí diferencí f ′ (x) ≈ f (x+h)−f (x) h Definice 3.3 (řád konvergence iterační metody pro řešení F (x) = 0) Řekněme, že posloupnost {x(k) } generována numerickou metodou konverguje k α s řádem p ≥ 1, pokud ∃ C > 0 ° ° °α − x(k+1) ° ° °p ≤ C ∀ k ≥ k0 °α − x(k) ° V takovém případě se numerická metoda nazývá řádu p. Věta 3.1 říká, že Newtonova metoda je kvadraticky konvergentní, pokud je x(0) dostatečně blízko α a pokud je J(α) nesingulární. 3.2 Metoda postupných aproximací Definice 3.4 (kontrahující zobrazení) Kontrahující zobrazení G : D ⊂ IRN → IRn na D0 ⊂ D, pokud ∃L < 1 kG(x) − G(y)k ≤ L kx − yk ∀x, y ∈ D0 Věta 3.5 (věta o pevném bodě) Nechť G : D ⊂ IRN → IRN kontrahující na uzavřené množině D0 ⊂ D, G(x) ⊂ D0 ∀x ∈ D0 . Pak G má právě jeden pevný bod. Důkaz jednoznačnost, existence (Cauchyovská posloupnost, spojitost G) 2 Poznámka 3.6 Newtonova metoda jako speciální případ věty o pevném bodě. 3.3 Kořeny polynomu Nalezení • lokalizace kořenů v C • aproximace kořenů Věta 3.7. (Descartes) Počet kladných kořenů (včetně násobnosti) polynomu pn (α) = a0 + a1 x + · · · + an xn je roven počtu znaménkových změn v posloupnosti a0 , a1 , . . . , an , nebo je o sudé číslo menší. Věta 3.8. (Cauchy) Kořeny polynomu leží v kruhu ½ Γ = z ∈ C; |z| ≤ 1 + η, η = max 1 ≪ η: translace a změna souřadnic ¯ ¯¾ ¯ ak ¯ ¯ ¯ 0≤k≤n−1 ¯ an ¯ 22 METODY ŘEŠENÍ NELINEÁRNÍCH ROVNIC 3.3.1 Hornerovo schema Vyčíslení polynomu: pn (α) = a0 + a1 x + · · · + an xn 1. neefektivní r = 1; s = a0 ; for i = 1 to n do r = r · x; s = s + ai · r; end for počet násobení 2n 2. Hornerovo schema s = an ; for h = n − 1 downto 0 do s = s · x + ah ; end for počet násobení n Poznámka 3.9 (ad 2) Zapišme algoritmus pro vyčíslení pn (z) takto: bn = an ; for k = n − 1 downto 0 do bk = bk+1 · z + ak ; end for Ukážeme, že tento zápis je vhodný pro vyčíslení derivace p′n (a následně použijeme Newtonovu metodu pro určení kořene pn (x)) (an xn +an−1 xn−1 +· · ·+a0 ) : (x−z) = an xn−1 +(an−1 + an z )xn−2 +· · ·+b1 +zbytek |{z} {z } | bn bn−1 pn (x) = qn−1 (x; z)(x − z) + b0 kde qn−1 (x; z) = bn xn−1 + bn−1 xn−2 + · · · + b1 Je-li z kořen, tak b0 = 0. Aplikace Newtonovy metody pro nalezení kořene polynomu pn . pn (x) = 0 Newtonova metoda: x(k+1) = x(k) − Hornerovo sch. z }| { pn (x(k) ) p′n (x(k) ) | {z } Hornerovo sch. , x(0) dáno KOŘENY POLYNOMU 23 ⇒ Newtonova-Hornerova metoda x(k+1) = x(k) − pn (x(k) ) qn−1 (x(k) ; x(k) ) z := x(k) ′ p′n (x) = qn−1 (x; z)(x − z) + qn−1 (x; z) p′n (z) = qn−1 (z; z) Algoritmus pro nalezení kořenů polynomu pn : for m = n downto 1 do Najdi kořen r polynomu pm (Newtonova metoda) Vyčísli qm−1 (x; r) (pomocí Hornerova schematu) pm−1 := qm−1 end for Poznámka 3.10 Začít od kořene nejmenšího v absolutní hodnotě (kvůli zaokrouhlovacím chybám). Poznámka 3.11 Restartovat algoritmus, t.j. použít původní polynom (je-li r̃j (0) aproximace kořene rj , jít zpět k pn (x) a hledat novou aproximaci rj = r̃j ). 4 SOUSTAVY LINEÁRNÍCH ROVNIC Hledáme x ∈ IRN Ax = b A-nesingulární, A ∈ IRN ×N Metody: • přímé - konečný předem známý počet kroků pro nalezení řešení • iterační - konstruujeme (nekonečnou) posloupnost vektorů konvergujících k řešení 4.1 Podmíněnost matic Matice se nazývá dobře podmíněná, jestliže relativně malé změny v koeficientech způsobí relativně malé změny v řešení. Matice se nazývá špatně podmíněná, jestliže relativně malé změny v koeficientech způsobí relativně velké změny v řešení. Analýza zaokrouhlovacích chyb - chyby ve výpočtu se obvykle reprezentují chybami ve vstupních datech. Vzhledem k zaokrouhlovacím chybám poskytuje numerická metoda přibližné řešení, které splňuje perturbovaný systém. Numerická metoda poskytuje (přesné) řešení x + δx perturbovaného systému (A + δA)(x + δx) = b + δb δx lze (”zhruba”) odhadnout následujícím způsobem x + δx = (A + δA)−1 (b + δb) = [A(I + A−1 δA)]−1 (b + δb) = = (I + A−1 δA)−1 A−1 (b + δb) | {z } nahradíme ≈ (I − A−1 δA)(x + A−1 δb) = x + A−1 δb − A−1 δAx − A−1 δAA−1 δb 1 = 1 + xf ′ (0) + chyba = 1 + x(−1) + chyba f (x) = 1+x . δx = A−1 δb − A−1 δAx ° −1 ° ° ° kδxk ≤ °A ° kδbk + °A−1 ° kδAk kxk 24 µ 1 ≈1−x 1+x ¶ PODMÍNĚNOST MATIC kδxk kxk ≤ kA−1 kkδbk kxk kA kkAkkxkkδbk −1 kxkkbk + + kA−1 kkδAkkxk kxk 25 ≤ kA kkδAkkAkkxk −1 kxkkAk Záver: δx ≤ kxk ° ° kAk °A−1 ° {z } | číslo podmíněnosti K(A) µ kδbk kδAk + kbk kAk ¶ Poznámka 4.1 Nejčastěji používané normy v Cn , x ∈ Cn kxk1 = X i |xi | và ! u u X 2 t kxk2 = |xi | Euklidova X 1≤p<∞ i kxkp = à i p |xi | ! p1 kxk∞ = max |xi | i kAxk x6=0 kxk X kAk1 = max kAk = sup |aij | |{z} sloupcový součet q q kAk2 = ρ(AH A) = ρ(AAH ) j i AH − transponovaná a kompl. združená (hermitovská) ρ(B) − největší v abs. hodnotě vlastní číslo B (spektrální poloměr) sX 2 |aij | Frobeniova kAkF = i,j kAk∞ = max i • kIkF = X j |aij | řádkový součet √ N • kIk = 1, kAxk ≤ kAk · kxk • kABk ≤ kAk kBk sub-multiplikativita 4. přednáška 26 SOUSTAVY LINEÁRNÍCH ROVNIC 4.2 Gaußova eliminace Cíl: Ax = b ⇔ U x = b̂, kde U je horní trojúhelníková Algoritmus 4.2 for sloupec j = 1 to n − 1 do hledám apj 6= 0, p ∈ {j, . . . , n} if apj = 0 ∀p then STOP (singularita) else záměna p a j-tého řádku end if for řádek i = j + 1 to n do aij ; lij = ajj for k = j to n do aik = aik − lij ajk ; end for bi = bi − lij bj ; end for end for (uij ), i ≤ j jsou pak poslední hodnoty aij b̂i Počet operací Hledání apj 6= 0 Výpočet lij Výpočet aik Výpočet bi jsou pak poslední hodnoty bi v j-tém kroku n−j+1 n−j 2(n − j)2 2(n − j) celkem Pn j = (2+n)(n−1) 2 Pj=2 n−1 n(n−1) j=1 j = 2 Pn−1 3 2 +n 2 j=1 j 2 = 2 2n −3n 6 Pn−1 2 j=1 j = n(n−1) 2 Celkový počet operací: Počet operací pro řešení U x = b̂ : 4.2.1 2 3 n + O(n2 ) 3 násobení sčítání (n+1)n 2 n(n−1) 2 Pivotace Výpočet lij = aij ajj v Algoritmu 4.2, ajj 6= 0. Částečná pivotace |apj | = maxl=j,...,n |alj | Úplná pivotace |apj | = maxl,m=j,...,n |alm | (4.2.1) (4.2.2) Důvod: I když Guaßova eliminace je proveditelná bez záměny řádků a sloupců, mohou malé hodnoty ajj způsobit velké chyby v řešení. GAUßOVA ELIMINACE JAKO FAKTORIZAČNÍ METODA Příklad 4.2 6 1 8 6 1 8 6 .. . 1 .. . 8 x1 .. . .. . x 6 7 15 = 15 . .. 50 14 xGE = 1 1 1 .. . −3 × 107 27 Gaußova eliminace je numericky nestabilní. Pivotace je podstatná pro stabilitu elim. procesu. Ani velké hodnoty pivotů však nejsou zárukou dostatečně přesného řešení. Důvod: velké změny v koeficientech Pn Náprava: škálování, dělení i-tého řádku di = j=1 |aij |, ale toto dělení opět vnáší zaokrouhlovací chyby. 4.3 Gaußova eliminace jako faktorizační metoda Ax = b ⇔ LU x = b ½ U x = b̂ Lb̂ = b (4.3.3) Nechť matice Pi provádí záměnu příslušných řádků matice A a matice Li nulování příslušného sloupce. Celkem (GE s částeční pivotací): Ln−1 Pn−1 · · · L1 P1 A = U | {z } M Označme P = Pn−1 · · · P1 M = Ln−1 Pn−1 · · · L1 P1 Pak MA = U M P −1 P A = U −1 PA = P |M {z } U L P A = LU Lze-li provést Gaußovou eliminaci bez záměny řádků a sloupců, dostáváme A = LU (4.3.4) Věta 4.3 Nechť A ∈ IRn×n , A regulární. Pak existuje permutační matice P ∈ IRn×n , nesingulární U a L s jedničkami na diagonále :: P A = LU (4.3.5) 28 SOUSTAVY LINEÁRNÍCH ROVNIC Algoritmus Matici L výše uvedenou dostaneme pomocí Algoritmu 4.2 tak, že lij uložíme do aij , jejichž hodnoty nejsou v Gaußově eliminaci potřeba a při pivotaci je zaměníme Řešení úlohy Ax = b ve třech krocích 1. P A = LU 2. P Ax = L |{z} Ux = Pb b̂ Lb̂ = P b 3. U x = b̂ Měření kvality řešení r = b − Ax̃ - reziduum Věta 4.4 (Odhad rezidua) [Prager/Oettli] Nechť x̃ je přibližné řešení Ax = b, r = b − Ax̃ reziduum. Nechť je dáno 0 ≤ δA ∈ IRn×n , 0 ≤ δb ∈ IRn . Pak x̃ je přesné řešení Ãx̃ = b̃ právě když (4.3.6) kde ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯Ã − A¯ ≤ δA, ¯b̃ − b¯ ≤ δb (po složkách) |r| ≤ δA |x̃| + δb (4.3.7) (4.3.8) Důkaz (pouze ⇒) Nechť Ãx̃ = b̃ (x̃ je přesné řešení perturbovaného systému) a pro peturbace platí odhad ¯ ¯ ¯ ¯ ¯Ã − A¯ ≤ δA ¯ ¯ ¯ ¯ ¯b̃ − b¯ ≤ δb à = A + ∆A b̃ = b + ∆b |∆A| ≤ δA |∆b| ≤ δb ¯ ¯ ¯ ¯ ¯ ¯ ¯ |r| ≤ |b − Ax̃| = ¯b̃ − ∆b − |{z} Ãx̃ +∆Ax̃¯¯ ≤ ¯ ¯ b̃ ≤ |∆Ax̃ − ∆b| ≤ δA |x̃| + δb 2 LU ROZKLAD V OBECNÉM PŘÍPADĚ 4.4 29 LU rozklad v obecném případě A= A= A= µ µ µ 1 2 1 2 0 1 1 0 0 1 0 2 ¶ ∃ !LU rozklad ¶ neexistuje LU rozklad ¶ LU není jednoznačný A = LU n X aij = lik ukj n2 rovnic k=1 m-tý řádek matice U amj = m−1 X k=1 lmk ukj + 1 · umj m≤j m-tý sloupec matice L aim = m−1 X k=1 lik ukm + lim · umm Věta 4.5 Nechť A ∈ IRn×n je obecná matice. Faktorizace A = LU existuje a je a11 · · · a1k .. k= jednoznačná právě když všechny hlavní minory A, t.j. det . ak1 · · · akk 1, . . . , n − 1 jsou nenulové. Věta 4.6 Je-li matice řádkově nebo sloupcově diagonálně dominantní, t.j. |aii | ≥ nebo |ajj | ≥ n X j=1,j6=i n X i=1,i6=j |aij | |aij | (řádkově) (4.4.9) (sloupcově) (4.4.10) Pak LU rozklad existuje. Specielně, je-li matice sloupcově diagonálně dominantní, je |lij | ≤ 1 ∀i, j = 1, . . . , n 30 SOUSTAVY LINEÁRNÍCH ROVNIC 4.4.1 Vliv zaokrouhlovacích chyb Uvažujeme-li zaokrouhlovací chyby, faktorizační proces produkuje matice L̂, Û takové, že L̂Û = A + δA (4.4.11) Lze odhadnout |δA| ≤ nu ¯¯ ¯¯ ¯¯ ¯¯ ¯L̂¯ ¯Û ¯ , 1 − nu u= 1 εM 2 (4.4.12) a ij , viz Gaußova eliminace), že přítomnost maZ (4.4.12) je vidět (lij = ajj lých pivotů může způsobit neomezenost pravé strany a v důsledku toho ztrátu kontroly kontroly δA. Je tedy vhodné najít odhad |A| g(u) |{z} vhodná funkce ¯ ¯¯ ¯ ¯ ¯ ¯ ¯¯ ¯ ¯ ¯ Příklad 4.7 Nechť L̂ ≥ 0, Û ≥ 0, pak ¯L̂¯ ¯Û ¯ = ¯L̂Û ¯ |δA| ≤ Odtud ¯ ¯¯ ¯ ¯ ¯ ¯ ¯¯ ¯ ¯ ¯ ¯L̂¯ ¯Û ¯ = ¯L̂Û ¯ = |A + δA| ≤ |A| + |δA| ≤ |A| + a z 4.4.12 dostáváme ¯ ¯¯ ¯µ ¯ ¯¯ ¯ ¯L̂¯ ¯Û ¯ 1 − nu 1 − nu ¶ ≤ |A| ¯ ¯ ¯ ¯ µ 1 − 2nu ¶−1 ¯ ¯¯ ¯ |A| ¯L̂¯ ¯Û ¯ ≤ 1 − nu |δA| ≤ nu ¯¯ ¯¯ ¯¯ ¯¯ ¯L̂¯ ¯Û ¯ 1 − nu nu |A| 1 − 2nu | {z } (4.4.13) g(u) Pivotace umožňuje obdržet odhad obdobný (4.4.13) pro libovolnou matici. 4.5 Choleského rozklad Věta 4.8 Pro každou symetrickou, pozitivně definitní (xT Ax > 0, ∀x 6= 0, x ∈ IRn ) matici A ∈ IRn×n existuje právě jedna dolní trojúhelníková matice L s kladnými prvky na diagonále tak, že platí A = L · LT (4.5.14) Důkaz indukcí Věta 4.9 Nechť A ∈ IRn×n je symetrická, ostře diag. dominantní (|aii | > aii > 0, pak A je pozitivně definitní. 2 P j6=i |aij |), QR ROZKLAD 4.6 31 QR rozklad Věta 4.10 Ke každé nesingulární matici A ∈ IRn×n existuje ortogonální matice Q ∈ IRn×n (QQT = QT Q = I) a nesingulární horní trojúhelníková R taková, že A=Q·R (4.6.15) Poznámka 4.11 Transformace, která (na rozdíl od LU ) nezvyšuje číslo podmíněnosti (K(U ) ≤ 4n−1 K(P A)) 5 ITERAČNÍ METODY ŘEŠENÍ SOUSTAV LINEÁRNÍCH ROVNIC 5. přednáška Hledáme x ∈ IRn :: A ∈ IRn×n , b ∈ IRn , detA 6= 0 Ax = b (5.0.1) Přímé metody (např. Gaußova eliminace) : • pro libovolné plné matice • počet operací O( 32 n3 ) Nevýhoda: a) nevyužívají informaci o struktuře matice (řídkost, blokově diagonální) b) nákladné, je-li n velké c) pro řídké matice mohou být nevhodné (zaplnění) Iterační metody • formálně poskytují řešení po nekonečném počtu kroků • v každém kroku požadují výpočet rezidua, výpočetní náročnost O(n2 ) • mohou soupeřit s přímými metodami, je-li počet iterací k získání řešení s danou tolerancí nezávislý na n nebo menší než n • používají se, stačí-li získat řešení pouze s určitou přesností (Fyzika-model → Matematický model) Idea iteračních metod: konstrukce {x(k) } x = lim x(k) , k→∞ kde x je řešení (5.0.2) ° ° Poznámka 5.1 nekonečná posloupnost x(0) ,°x(1) , . . . , x°(k) ? °x∗ − x(k) ° ≤ ε stopping kriterium (např. omezenost rezidua °b − Ax(k) ° ≤ ε2 ) Princip iteračních metod x(k+1) = ϕ(x(k) ), Požadavky: resp. x(k+1) = ϕ(x(k) , x(k−1) , . . . , x(0) ) x(k+1) → x − řešení k → ∞ 32 KLASICKÉ ITERAČNÍ METODY 33 • rychlá konvergence • snadné vyčíslení ϕ (méně operací než matice × vektor, řádově O(n)) • řešení s předepsanou přesností 5.1 Klasické iterační metody Idea: věta o pevném bodě Ax = b ⇔ x = G(x) + x(k+1) = G(x(k) ) x(0) dáno, b − Ax = 0 | {z } F (x)=0 1. x = x + b − Ax x = (I − A) x + b | {z } BR (k+1) x = BR x(k) + b (Richardson) 2. A = E + D + F, kde E je ostře dolní trojúhelníková D je diagonální F je ostře horní trojúhelníková Ax = b → (E + D + F )x = b Dx = −(E + F )x + b x = −D−1 (E + F )x + D−1 b x(k+1) = BJ x(k) + f BJ = −D−1 (E + F ) f = D−1 b (Jacobiho, za předp. aii 6= 0) 3. Ax = b → (D + E)x + F x = b (D + E)x = −F x + b x = −(D + E)−1 F x + (D + E)−1 b x = BGS x(k) + fGS BGS = −(D + E)−1 F (k+1) fGS = (D + E)−1 b (Gauß-Seidel) (5.1.1) 34 ITERAČNÍ METODY ŘEŠENÍ SOUSTAV LINEÁRNÍCH ROVNIC Poznámka 5.2 Dx = −Ex − F x + b (k+1) Dx = −Ex(k+1) − F x(k) + b (5.1.2) Jacobi: x(k+1) = BJ x(k) + fJ po složkách Při použití Jacobiho metody je třeba si pamatovat celý vektor x(k) pro výpočet nové iterace x(k+1) . U metody Gaußovy-Seidelovy se v paměti počítače rezervuje místo pro jediný vektor x(k) , na jehož místo se postupně ukládají složky vektoru x(k+1) jak vyplývá z rozepsání po složkách vztahu (5.1.2) Při zápisu po složkách: Pn j=1 aij xj = b∗ Pi−1 Pn j=1 aij xj + aii xi + j=i+1 aij xj = bi Pi−1 Pn aii xi = − j=1 aij xj − j=i+1 aij xj + bi ³P ´ Pn (k+1) (k) (k+1) i−1 + abiii − j=i+1 aij xj = a1ii xi j=1 aij xj 4. (Viz Gauß-Seidel) Ax = (E + D + F )x = b (k+1) x̃ = −D−1 Ex(k+1) − D−1 F x(k) + D−1 b x(k+1) = x(k) + ω(x̃(k+1) − x(k) ) x(k+1) = (1 − ω)x(k) + ωx̃(k+1) £ ¤ x(k+1) = −ωD−1 Ex(k+1) + (1 − ω)I − ωD−1 F x(k) + ωD−1 b ¡ ¢−1 £ ¤ x(k+1) = I + ωD−1 E (1 − ω)I − ωD−1 F x(k) + +(I + ωD−1 E)−1 ωD−1 b (super over relaxační) x(k+1) = BSOR x(k) + fSOR BSOR = (D + ωE)−1 [(1 − ω)D − ωF ] fSOR = (D + ωE)−1 ωb Uvažujme iterační metodu x(k+1) = Bx(k) + f (5.1.3) Definice 5.3 Řekneme, že iterační metoda tvaru (5.1.3) je konzistentní s Ax = b, jestliže x = Bx + f, kde x :: Ax = b je řešení Ekvivalentně f = (I − B)x = (I − B)A−1 b KLASICKÉ ITERAČNÍ METODY 35 Věta 5.4 Nechť x(k+1) = Bx(k) + f je konzistentní metoda. Pak posloupnost {x(k) } konverguje k x∗ , kde x∗ splňuje Ax∗ = b pro libovolné x(0) právě když ρ(B) (spektrální poloměr matice B (ρ(B) = maxλ vl. č.B |λ|)) je menší než 1. Důkaz e(k+1) = x(k+1) − x∗ x(k+1) = Bx(k) + f x∗ = Bx∗ + f (k) x 2 (k−2) e(k+1) =°Be(k) = · · · = B (k+1) e(0) °=B e ° (k) ° ∗ (k) → x ⇔ °e ° → 0 ⇔ B → 0 ⇔? ρ(B) < 1 Poslední ekvivalenci dokážeme na základě následující věty z algebry. Vyhneme se tak klasickému důkazu pomocí převedení matice B na Jordanův kanonický tvar Věta 5.5 Nechť A ∈ Cn×n , ε > 0. Pak existuje konzistentní (kAxk ≤ kAk kxk) maticová norma k.kA,ε taková, že kAkA,ε ≤ ρ(A) + ε Pokračování v důkazu předchozí věty ⇐ Nechť ρ(B) < 1, ∃ρ(B) < 1 − ε a dále existuje k.kB,ε , kBkB,ε ≤ ρ(B) + ε < 1 ⇒ lim B k = 0, λ vl. č. B ° k° k °B ° ≤ kBkB,ε → 0 B,ε Bx = λx x 6= 0 B k x = λk x lim λ = 0 ⇔ kλk < 1 k 2 6 VÝPOČET VLASTNÍCH ČÍSEL MATIC 6. přednáška • omezíme se na výpočet dominantního vlastního čísla • aplikace: kvantová mechanika, strukturální vibrace, analýza elektrických sítí 6.1 Mocninná metoda výpočtu dominantního vlastního čísla A ∈ Cn×n , A diagonalizovatelná . .. −1 A = XλX , X = x1 .. . ··· .. . xn ∈ Cn×n .. . xi vlastní vektory (Axi = λi xi ), kxi k = 1. Nechť |λ1 | > |λ2 | ≥ |λ3 | ≥ · · · |λn |, λ1 má násobnost 1. Pak λ1 nazveme ° °dominantním vlastním číslem. Nechť je dáno q (0) ∈ pn , °q (0) ° = 1 (Euklidovská) Aq (k−1) ° q (k) = ° °Aq (k−1) ° = · · · = Ak q (0) ° ° °Ak q (0) ° (odtud název mocninná metoda) Je-li A diagonalizovatelná, X má za sloupce vlastní vektory. Ty jsou lineárně nezávislé a tvoří bazi Cn . Lze tedy psát: q (0) = n X i=1 αi xi , αi ∈ C, i = 1, . . . , n Dále Axi = λi xi pro i = 1, . . . , n a tedy Pn k α1 λk1 (x1 + y (k) ) (k) i=1 αi λi xi ° ¯ ° °¯ P = q =° ° n αi λk xi ° ¯α1 λk °x1 + y (k) °¯ 1 i i=1 kde y (k) = µ ¶k n X αi λi xi α λ1 i=2 1 36 MOCNINNÁ METODA VÝPOČTU DOMINANTNÍHO VLASTNÍHO ČÍSLA y (k) → 0 37 pro k → ∞ T Pro k → ∞ se směr q (k) bude blížit směru x1 . Uvažujme Aq (k) a q (k) Aq (k) . Ukážeme, že T q (k) Aq (k) → λ1 pro k → ∞ T α1 λk (λ1 x1 + Ay (k) ) ° Aq (k) = ¯¯ 1 k ¯¯ ° α1 λ1 °x1 + y (k) ° q (k) Aq (k) = . q (k) T T (α1 λk1 )2 (λ1 + λ1 xT1 y (k) + xT1 Ay (k) + y (k) Ay (k) ) → λ1 ¯ ° ¯ ° ¯α1 λk ¯2 °x1 + y (k) °2 1 Dále platí, že q (k) → x1 . K tomu uvažujme α1 λk (λ1 x1 + Ay (k) ) α1 λk1 (λ1 x1 + λ1 y (k) ) ° − ¯ ¯° ° Aq (k) − λ1 q (k) = ¯¯ 1 k ¯¯ ° ¯α1 λk ¯ °x1 + y (k) ° α1 λ °x1 + y (k) ° 1 1 α1 λk (Ay (k) − λ1 y (k) ) ° →0 = ¯¯ 1 k ¯¯ ° α1 λ °x1 + y (k) ° 1 Jak určit aproximaci vlatního vektoru x1 s předem danou přesností, t.j.: ° ° ° ° approx − x1 ° ≤ ǫ °x1 K tomu stačí užít definici q (k) q (k) = neboli α1 λk1 (x1 + y (k) ) ° ° °Ak q (0) ° ° ° q (k) °Ak q (0) ° = x1 + y (k) |{z} α1 λk1 | {z } chyba approx x 1 Přesněji: ¯ n ¯ ° ° ° ° ° ° (k) ° X ¯¯ αi λki ¯¯ ° approx − x1 ° ≤ °y ° = °x1 ik ¯ α λk ¯ kx 1 1 |{z} i=2 =1 ¯ ¯k ¯¯ ¯ n ¯ X ¯ λ2 ¯ ¯ αi ¯ ¯ λ2 ¯k ¯ ¯ ¯ ¯ ¯ ¯ ≤ ¯ α1 ¯ ¯ λ1 ¯ ≤ C ¯ λ1 ¯ i=2 | {z } C 7 NUMERICKÁ INTEGRACE SOUSTAV OBYČEJNÝCH DIFERENCIÁLNÍCH ROVNIC 7.1 Formulace problému Dáno f : [a, b] × IRs → IRs , f = f (x, y), x ∈ [a, b], y ∈ IRs . Dána tzv. počáteční podmínka η ∈ IRs . Najít zobrazení y : [a, b] → IRs splňující y ′ (x) = f (x, y(x)) y(a) = η x ∈ (a, b) Vyšetřování: • existence a jednoznačnost - Matematická analýza • nalezení řešení ∗ analyticky (těžké) ∗ numericky 7.2 Jednokrokové metody xi = a + ih (konstantní krok, obecně lze uvažovat nekonstantní) Hodnotu řešení y(xi ) aproximujeme pomocí hodnoty yi : y(xi ) ≈ yi i = 0, . . . , n y ′ (xi ) = f (xi , y(xi )) y(xi+1 − y(xi )) + O(h) y ′ (xi ) = h y(xi+1 ) = y(xi ) + h · y ′ (xi ) + O(h2 ) y(xi+1 ) − y(xi ) = y ′ (xi ) + O(h) h y(xi+1 ) − y(xi ) + O(h) = f (xi , y(xi )) h yi+1 − yi = f (xi , yi ) → nápad: h yi+1 = yi + h · f (xi , yi ), y0 = η( dáno) 38 JEDNOKROKOVÉ METODY 39 → Eulerova metoda Obecně uvažujeme metody typu: yi+1 = yi + h φ(xi , yi , h) | {z } přírustkové zobrazení (7.2.1) y(x + h) − y(x) = φ(x, y(x), h) + O(h) h To nás vede k definici řádu metody (pro srovnání kvality metod): Definice 7.1 Řekneme, že metoda 7.2.1 je řádu p, jestliže y(x + h) − y(x) = φ(x, y(x), h) + O(hp ) h Věta 7.2 Metoda 7.2.1 je konvergentní právě když f (x, y) = φ(x, y, 0) za předpokladu spojitosti f, φ a lipschitzovskosti f, φ v druhé proměnné. Věta 7.3 Je-li metoda řádu p, potom kyi − y(xi )k ≤ C · hp · eLH(xi −x0 ) − 1 , L kde L je konstanta lipschitzovskosti φ. y(x + h) − y(h) = φ(x, y(x), h) + O(hp ) (7.2.2) h Metody typu Runge-Kutha: konstruuje se φ, splňující (7.2.2), aniž by se použila derivace f . Příklad 7.4 Odvoďte Runge-Kuthovu metodu 2. řádu. Nápad: p X φ(x, y, h) = ωi ki = ω1 k1 + ω2 k2 + · · · + ωp kp , i=1 kde ωi jsou konstanty, kteřé je třeba určit. k1 = f (x, y) k2 = f (x + α2 h, y + β21 hk1 ) .. . p−1 X kp = f (x + αp h, y + h βpm km ) m=1 Řešení: φ(x, y) = ω1 f (x, y) + ω2 f (x + αh, y + βhf (x, y)) 40NUMERICKÁ INTEGRACE SOUSTAV OBYČEJNÝCH DIFERENCIÁLNÍCH ROVNIC Cíl: y(x + h)y(x) = φ(x, y, h) + O(h2 ) h Myšlenka: Taylor y(x + h) + y(x) = výraz 1 + O(h2 ) h φ(x, y, h) = výraz 2 + O(h2 ) 1 y(x + h) = y(x) + hf + h2 [ 2 fx + fy f | {z } ] + O(h3 ) d f (x,y)=fx +fy y ′′ (x)= dx y(x + h) − y(x) 1 1 = f + hfx + hfy f +O(h2 ) h 2 2 | {z } výraz 1 φ(x, y, h) = ω1 f + ω2 [f + αhfx + βhf fy ] +O(h2 ) | {z } výraz 2 f (x + h1 , y + h2 ) = f (x, y) + h1 1 = ω1 + ω2 ∂f ∂f (x, y) + h2 (x, y) + O(h2 ) ∂x ∂y 1 = αω2 2 1 = βω2 2 ⇒ 3 rovnice pro 4 neznámé Zvolíme: ω2 = 1, ω1 = 0 1 1 α= , β= 2 2 yi+1 = yi + hφ(xi , yi , h) 1 1 φ(xi , yi , h) = f (xi + h, yi + hf (xi , yi )) 2 2 BIBLIOGRAFIE Feistauer, M., Felcman, J., and Straškraba, I. (2003). Mathematical and Computational Methods for Compressible Flow. Oxford University Press, Oxford. Kinkel, P. (2000). Numerische Mathematik für Informatiker. Universität Leipzig, http://ilabws.informatik.uni-leipzig.de/~mai98gkl/num. Quarteroni, A. (2000). Numerical . . . Springer, Berlin. Segethová, J. (2000). Základy numerické matematiky. Karolinum, Praha. Ueberhuber, W. (2000). Numerical Computation 1, 2: Methods, Software, and Analysis. Springer, Berlin. 41 INDEX finite volume, 2 neighbouring finite volumes, 2 42