Numerické metody: aproximace funkcí

Podobné dokumenty
Numerické metody: aproximace funkcí


Interpolace, ortogonální polynomy, Gaussova kvadratura

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

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

NUMERICKÉ METODY. Problematika num. řešení úloh, chyby, podmíněnost, stabilita algoritmů. Aproximace funkcí.

Čebyševovy aproximace

Lineární algebra : Metrická geometrie

Aplikovaná numerická matematika

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.

Aproximace funkcí. Numerické metody 6. května FJFI ČVUT v Praze

Program SMP pro kombinované studium

EUKLIDOVSKÉ PROSTORY

Kombinatorická minimalizace

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

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

1 Polynomiální interpolace

úloh pro ODR jednokrokové metody

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Interpolace pomocí splajnu

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

1 Báze a dimenze vektorového prostoru 1

Obsah. Aplikovaná matematika I. Gottfried Wilhelm Leibniz. Základní vlastnosti a vzorce

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

PRIMITIVNÍ FUNKCE. Primitivní funkce primitivní funkce. geometrický popis integrály 1 integrály 2 spojité funkce konstrukce prim.

Dnešní látka Variačně formulované okrajové úlohy zúplnění prostoru funkcí. Lineární zobrazení.

Soustavy linea rnı ch rovnic

PRIMITIVNÍ FUNKCE DEFINICE A MOTIVACE

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

Primitivní funkce a Riemann uv integrál Lineární algebra Taylor uv polynom Extrémy funkcí více prom ˇenných Matematika III Matematika III Program

Lineární algebra : Skalární součin a ortogonalita

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

Kapitola 7: Neurčitý integrál. 1/14

Arnoldiho a Lanczosova metoda

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

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

Aproximace funkcí. Polynom Φ m (x) = c 0 + c 1 x + c 2 x c m x m. Φ m (x) = c 0 g 0 (x) + c 1 g 1 (x) + c 2 g 2 (x) +...

Literatura: Kapitola 2 d) ze skript Karel Rektorys: Matematika 43, ČVUT, Praha, Text přednášky na webové stránce přednášejícího.

Věta 12.3 : Věta 12.4 (princip superpozice) : [MA1-18:P12.7] rovnice typu y (n) + p n 1 (x)y (n 1) p 1 (x)y + p 0 (x)y = q(x) (6)

Kapitola 7: Integrál.

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

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

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

Vlastní číslo, vektor

Aplikovaná numerická matematika - ANM

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

SPECIÁLNÍCH PRIMITIVNÍCH FUNKCÍ INTEGRACE RACIONÁLNÍCH FUNKCÍ

Numerická matematika Písemky

Integrace. Numerické metody 7. května FJFI ČVUT v Praze

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

8 Matice a determinanty

MATURITNÍ TÉMATA Z MATEMATIKY

Drsná matematika III 6. přednáška Obyčejné diferenciální rovnice vyšších řádů, Eulerovo přibližné řešení a poznámky o odhadech chyb

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

Občas se používá značení f x (x 0, y 0 ), resp. f y (x 0, y 0 ). Parciální derivace f. rovnoběžného s osou y a z:

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

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:

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

f(c) = 0. cn pro f(c n ) > 0 b n pro f(c n ) < 0

15 Maticový a vektorový počet II

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

AVDAT Nelineární regresní model

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

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

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

Úvod do lineární algebry

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

Numerické metody a statistika

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

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

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

Matematická analýza III.

Zavedeme-li souřadnicový systém {0, x, y, z}, pak můžeme křivku definovat pomocí vektorové funkce.

5. Interpolace a aproximace funkcí

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

0.1 Úvod do lineární algebry

Hledání extrémů funkcí

0.1 Úvod do lineární algebry

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á.

Numerická matematika 1

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

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

Komplexní analýza. Laplaceova transformace. Martin Bohata. Katedra matematiky FEL ČVUT v Praze

Zimní semestr akademického roku 2015/ ledna 2016

18 Fourierovy řady Úvod, základní pojmy

Kapitola 7: Integrál. 1/17

7. Lineární vektorové prostory

(Poznámka: V MA 43 je věta formulována trochu odlišně.)

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

Drsná matematika III 2. přednáška Funkce více proměnných: Aproximace vyšších rádů, Taylorova věta, inverzní zobrazení

Aplikovaná matematika I

Co jsme udělali: Au = f, u D(A)

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

1 Projekce a projektory

1 Determinanty a inverzní matice

Diferenˇcní rovnice Diferenciální rovnice Matematika IV Matematika IV Program

f (k) (x 0 ) (x x 0 ) k, x (x 0 r, x 0 + r). k! f(x) = k=1 Řada se nazývá Taylorovou řadou funkce f v bodě x 0. Přehled některých Taylorových řad.

Transkript:

Numerické metody: aproximace funkcí Mirko Navara http://cmp.felk.cvut.cz/~navara/ Centrum strojového vnímání, katedra kybernetiky FEL ČVUT Karlovo náměstí, budova G, místnost 104a http://math.feld.cvut.cz/nemecek/nummet.html 31. října 2018 Podmínky zápočtu Adekvátní docházka na cvičení v počítačové laboratoři (mnohé lze dělat i jinde, Maple si můžete instalovat) Zápočtové úlohy 5 6 bodů Z toho postačuje 18 bodů Literatura Navara, M., Němeček, A.: Numerické metody. Skriptum ČVUT, Praha, dotisk 2005. Press, W.H., Teukolsky, S.A., Vetterling, W.T., Flannery, B.P.: Numerical Recipes in C++ (The Art of Scientific Computing). 2nd ed., Cambridge University Press, Cambridge, 1992. Knuth, D.E.: Fundamental Algorithms. Vol. 1 of The Art of Computer Programming, Addison-Wesley, Reading, MA, 3rd ed. 1997. Motivace Úloha: Polynom rozložíme na kořenové činitele, jenže to umíme jen do řádu 4. Na řadu přichází přibližné numerické řešení, jenže pak vydělení kořenovým činitelem nevyjde beze zbytku. Úloha: (Čistý) matematik: Soustava lineárních rovnic ve tvaru Ax = b má jediné řešení x = A 1 b, právě když det A 0. Programátor: Reálná čísla nesmíme testovat na rovnost! Numerický matematik: Nepřesnost ve znalosti koeficientů se přenáší do nepřesnosti ve výsledku, která pro det A 0 roste nade všechny meze. Tomu říkáme špatně podmíněná úloha. Úloha: (Čistý) matematik: det A je součet součinů ( 1) sign(p) a 1,p(1) a 2,p(2)... a n,p(n) = ( 1) sign(p) a i,p(i), p p i n kde sčítáme přes všechny permutace p indexů 1,..., n. Programátor i numerický matematik: Jenže to je přibližně n n! operací. n 2 3 4 5 10 20 30 počet operací 4 18 96 600 36 288 000 4.8 10 19 7.9 10 33 Stará dobrá Gaussova metoda má složitost úměrnou n 3. 1

APROXIMACE FUNKCÍ Úloha: Odhadněte rychlost růstu průmyslové výroby v posledním období a nejlépe i v blízké budoucnosti. Úloha: Ze známých hodnot burzovních indexů do dnešního dne odhadněte jejich zítřejší hodnoty. Úloha: Náhodná veličina s normovaným normálním rozdělením je popsána distribuční funkcí Φ(u) = 1 u ( ) t 2 exp dt. 2π 2 (Čistý) matematik: To je transcendentní funkce. Numerický matematik: Numerická integrace dá přibližný výsledek s požadovanou přesností. (Ve skutečnosti i exponenciální funkce je počítána jen numericky, procesor sám umí jen 4 základní početní úkony.) Pro rychlejší opakovaný výpočet si připravíme tabulku Gaussova integrálu. Úloha: Ze známého napětí baterie (v mobilu, v počítači) odhadněte zbývající kapacitu. Vycházíme z konečně mnoha hodnot, ale aproximaci chceme použít na celém intervalu. Zde navíc chceme, aby byla monotónní. Úloha: Digitální obrázek zvětšíme, popř. otočíme. Změní se počet pixelů, popř. i jejich orientace. Motivační úloha Máme nakreslit V-A charakteristiku diody na základě naměřených dat: Motivační úlohy na aproximaci 1. Úloha 1: Závislost směnného kursu na čase na základě údajů z burzy. 2. Úloha 2: Rychlý odhad Gaussova integrálu (distribuční funkce normálního rozdělení) s využitím tabulkových hodnot. 3. Úloha 3: V-A charakteristika diody na základě naměřených hodnot. 4. Úloha 4: Teploty naměřené na meteorologické stanici. Základní úloha aproximace Dáno: n různých bodů x 0,..., x n 1 R (uzlové body) y 0,..., y n 1 R množina funkcí F, definovaných alespoň v bodech x 0,..., x n 1 2

Úkol: najít funkci ϕ F, která minimalizuje rozdíly y i ϕ(x i ), i = 0,..., n 1 Předpoklad: F je lineární obal k známých, tzv. aproximačních funkcí ϕ 0,..., ϕ k 1, k n: { } F = Lin{ϕ 0,..., ϕ k 1 } = c j ϕ j : c j R. j<k Zbývá určit reálné koeficienty c j, j = 0,..., k 1, lineární kombinace ϕ = j<k c j ϕ j. Linearita aproximační úlohy Většinou předpokládáme linearitu výstupu (princip superpozice), to souvisí s nezávislostí řešení na zvoleném lineárním měřítku. Pak jakékoli řešení aproximační úlohy musí lineárně záviset na složkách aritmetického vektoru y = (y 0,..., y n 1 ) R n. Výsledná aproximace je ϕ = j<k c j ϕ j, kde ϕ = (ϕ(x 0 ),..., ϕ(x n 1 )) R n, ϕ j = (ϕ j (x 0 ),..., ϕ j (x n 1 )) R n, j = 0,..., k 1. (Jiné hodnoty v aproximační úloze nefigurují.) Vektorová formulace aproximační úlohy: K danému vektoru y hledáme co nejbližší vektor ϕ z lineárního obalu známých vektorů ϕ j, j = 0,..., k 1. Linearita aproximační úlohy Vektor y má souřadnice (y 0,..., y n 1 ) vzhledem ke standardní bázi ψ 0 = (1, 0,..., 0), ψ1 = (0, 1, 0,..., 0),..., ψn 1 = (0,..., 0, 1), 1. Můžeme pro j = 0,..., n 1 položit y = ψ j a najít aproximaci funkcí ϱ j, resp. vektorem ϱ j. 2. Pro obecný vstupní vektor y je aproximace lineární kombinaci výsledků speciálních případů: ϕ = j<n y j ϱ j. Funkce ϱ j, j = 0,..., n 1, nám poskytují plnou informaci o řešení úlohy pro libovolné y = (y 0,..., y n 1 ). Interpolace Speciální případ aproximace, kdy požadujeme přesnou shodu v uzlových bodech Dáno: n různých uzlových bodů x 0,..., x n 1 R y 0,..., y n 1 R množina funkcí F, definovaných alespoň v bodech x 0,..., x n 1, z níž máme vybrat takovou funkci ϕ F, že ϕ(x i ) = y i, i = 0,..., n 1 Prostá interpolace 3

Předpoklad: Dosazením dostáváme { } F = Lin{ϕ 0,..., ϕ n 1 } = c j ϕ j : c j R. j<n c j ϕ j (x i ) = y i, i = 0,..., n 1, j<n což je soustava n lineárních rovnic pro neznámé c j, j = 0,..., n 1. Pro jednoznačnost řešení jsme položili k = n a navíc potřebujeme, aby aritmetické vektory ϕ j = (ϕ j (x 0 ),..., ϕ j (x n 1 )), j = 0,..., n 1, byly lineárně nezávislé. Složitost výpočtu úměrná n 3, u speciálních úloh dosáhneme menší. Interpolace polynomem Interpolujeme polynomem stupně menšího než n, tj. nejvýše n 1. Má právě n koeficientů, což potřebujeme pro existenci a jednoznačnost řešení. Interpolační funkce můžeme volit ϕ j (t) = t j, j = 0,..., n 1. Výhodná může být i jiná volba báze n-rozměrného lineárního prostoru všech polynomů stupně menšího než n. Polynomy lze snadno integrovat, derivovat... Výhody interpolace polynomem Řešitelnost: Věta: Interpolační úlohu s n uzlovými body řeší právě jeden polynom stupně menšího než n. Univerzálnost: Weierstrassova věta: Nechť f je spojitá funkce na uzavřeném intervalu I a nechť je dáno číslo ε > 0. Pak existuje polynom ϕ takový, že t I : f(t) ϕ(t) ε. Nevýhody interpolace polynomem Weierstrassova věta neříká nic o potřebném stupni polynomu, takže výsledek nemusí být použitelný. Velmi málo skutečných závislostí je polynomiálních. Lze řešit prostou interpolací, ale ukážeme si výhodnější postupy. Lagrangeova konstrukce interpolačního polynomu 1. Vyřešíme speciální případy, kdy j-tá složka vektoru y je jednotková, ostatní nulové; výsledky jsou polynomy ϱ j, j = 0,..., n 1, { 1 pro i = j, ϱ j (x i ) = δ ij = 0 pro i j. (δ ij je tzv. Kroneckerovo delta) Polynom ϱ j stupně n 1 má n 1 kořenů x 0,..., x j 1, x j+1,..., x n 1 ; ϱ j (t) = e j (t x 0 )... (t x j 1 )(t x j+1 )... (t x n 1 ) = e j (t x i ), i<n,i j 4

kde e j určíme ze vztahu ϱ j (x j ) = 1: 1 e j = (x j x i ), ϱ j(t) = i<n,i j i<n,i j i<n,i j 2. Obecné řešení úlohy interpolace polynomem je lineární kombinace ϕ = y j ϱ j, j<n (t x i ) (x j x i ). Kontrola: ϕ(t) = y j ϱ j (t) = y j j<n j<n (t x i ) i<n,i j i<n,i j (x j x i ). ϕ(x i ) = y j ϱ j (x i ) = y j δ ij = y i. j<n j<n Složitost úměrná n 2. Myšlenka Lagrangeovy konstrukce interpolačního polynomu je použitelná i pro obecnější úlohy. Motivace pro nespokojenost: Při aproximaci vývoje na burze dostáváme průběžně nová data. Musíme kvůli tomu počítat vše znova? Některé mezivýsledky lze použít, pokud jsme si je nezapomněli zaznamenat. Lze však vyjít z předchozího výsledku a jen jen opravit o určitý polynom: Newtonova konstrukce interpolačního polynomu Jedná se stále o stejný polynom Konstantní polynom c 0 = y 0 má správnou hodnotu v uzlovém bodě x 0. Hledaný polynom ϕ dostaneme přičtením vhodného polynomu ω 0 nulového v x 0 : t (t x 0 ) ω 0 (t), kde ω 0 je polynom stupně n 2: ϕ(t) = c 0 + (t x 0 ) ω 0 (t), c 0 = y 0, ω 0 (t) = ϕ(t) c 0 t x 0 (zbývá vykrátit). Hodnoty v uzlových bodech: ω 0 (x i ) = y i c 0 x i x 0. Indukce: Polynom ω 0 je tvaru (ω 1 je polynom stupně n 3): ω 0 (t) = c 1 + (t x 1 ) ω 1 (t), c 1 = ω 0 (x 1 ), ω 1 (t) = ω 0(t) c 1 t x 1, ω 1 (t) = c 2 + (t x 2 ) ω 2 (t), c 2 = ω 1 (x 2 ), ω 2 (t) = ω 1(t) c 2 t x 2, ω 2 (t) = c 3 + (t x 3 ) ω 3 (t), c 3 = ω 2 (x 3 ), ω 3 (t) = ω 2(t) c 3 t x 3,... ω n 2 (t) = c n 1 = ω n 3 (x n 2 ). 5

Zpětným dosazením dostaneme ϕ(t) = c 0 + (t x 0 ) [c 1 + (t x 1 ) [c 2 + +... (t x n 3 ) [c n 2 + (t x n 2 ) c n 1 ]...]]. ϕ(t) = c 0 + (t x 0 ) c 1 + (t x 0 ) (t x 1 ) c 2 +... + c n 1 (t x i ) = c j (t x i ). j<n i<j i<n 1 Složitost výpočtu koeficientů n 2, výpočtu jedné funkční hodnoty n. Fyzikální rozměr koeficientů? Nevillův algoritmus Zajímá nás hodnota interpolačního polynomu pouze pro jediný argument t, nikoli koeficienty. Jedním bodem (x i, y i ) proložíme konstantní polynom s hodnotou y i. Dvěma body (x i, y i ), (x i+1, y i+1 ) proložíme lineární polynom, jeho hodnota v t je lineární kombinací hodnot y i, y i+1, konkrétně y i,i+1 = (t x i+1) y i + (x i t) y i+1 x i x i+1, atd. y i,i+1,...,i+m 1... hodnota interpolačního polynomu s m uzlovými body x i, x i+1,..., x i+m 1 v bodě t y i+1,...,i+m 1,i+m... hodnota interpolačního polynomu s m uzlovými body x i+1,..., x i+m 1, x i+m v bodě t Interpolační polynom s m + 1 uzlovými body x i, x i+1,..., x i+m má v bodě t hodnotu y i,i+1,...,i+m = (t x i+m) y i,i+1,...,i+m 1 + (x i t) y i+1,...,i+m 1,i+m x i x i+m Postupujeme od hodnot y 0, y 1,..., y n 1 k hodnotě y 0,1,...,n 1 = ϕ(t) = výsledek. Numerické chyby uvedeného algoritmu lze omezit, budeme-li místo hodnot interpolačních polynomů počítat s jejich rozdíly, které lze počítat podle rekurentních vzorců C i,m = y i,...,i+m y i,...,i+m 1, D i,m = y i,...,i+m y i+1,...,i+m, C i,m = (x i t) (C i+1,m 1 D i,m 1 ) x i x i+m, D i,m = (x i+m t) (C i+1,m 1 D i,m 1 ) x i x i+m a výsledek např. jako y 0,1,...,n 1 = y 0 + n 1 m=1 C 0,m. Chyba aproximace interpolačním polynomem V uzlových bodech chyba metody nulová, pouze chyba zaokrouhlovací. Chyba metody v ostatních bodech, nahrazujeme-li funkci f výsledkem její interpolace. 6

Odvození chyby aproximace interpolačním polynomem Chyba metody f ϕ je v uzlových bodech nulová, zkoumáme její hodnotu f(u) ϕ(u) v u / {x 0,..., x n 1 }. Polynom W (t) = (t x i ) stupně n je rovněž nulový v uzlových bodech a nenulový v u; od chyby metody i<n odečteme jeho P u -násobek, kde P u je zvoleno tak, že funkce g u = f ϕ + P u W je navíc nulová v u: 0 = g u (u) = P u = chyba v u {}}{ f(u) ϕ(u) P u W (u), f(u) ϕ(u) W (u). g u = f ϕ P u W má kořeny u, x 0,..., x n 1 ; pokud má spojitou derivaci, pak mezi každými dvěma kořeny leží kořen její derivace n + 1 kořenů funkce g u n kořenů funkce g u, n 1 kořenů funkce g u,... 1 kořen funkce g u (n), označme jej ξ u (závisí na u) (potřebovali jsme spojité derivace do řádu n) S využitím W (n) (t) = (t n ) (n) = n!, 0 = g u (n) (ξ u ) = f (n) (ξ u ) P u n! = f (n) f(u) ϕ(u) (ξ u ) n! W (u) f(u) ϕ(u) = f (n) (ξ u ) n! f(u) ϕ(u) = f (n) (ξ u ) n! W (u) W (u) f (n) (ξ u ) nahradíme horním odhadem na intervalu I {u, x 0,..., x n 1 }: M n max f (n) (t) t I f(u) ϕ(u) M n n! W (u) Pomocí horního odhadu W max W (t) dostaneme odhad chyby nezávislý na u: t I f(u) ϕ(u) M n n! Předpoklad: f má spojité derivace do řádu n na uzavřeném intervalu I {u, x 0,..., x n 1 }. Volíme 1. počet uzlových bodů = koeficient M n n! 2. jejich rozložení = W W Co můžeme ovlivnit 7

Ad 1: I = 0.1, 3 f exp ln f (n) (u) exp(u) (n 1)! u n argmax 3 0.1 M n n! exp(3) n! 10 n n M 2 2! M 4 4! M 8 8! M 16 16! 10 50 0.84 2500 5 10 4 1.25 10 7 10 12 6.25 10 14 Chyba aproximace interpolačním polynomem (Červeně odhad chyby, modře skutečná chyba.) Rozlišujeme: extrapolaci, kdy aproximujeme mimo interval I(x 0,..., x n 1 ) vymezený uzlovými body interpolaci (v užším smyslu), kdy aproximujeme na intervalu I(x 0,..., x n 1 ) 8

Čebyševovy polynomy Počítají se z rekurentního vztahu γ n (t) = cos(n arccos t), n = 0, 1, 2,... γ 0 (t) = 1 = cos(0 arccos t), γ 1 (t) = t = cos(1 arccos t), γ n (t) = 2tγ n 1 (t) γ n 2 (t), n 2, cos α + cos β = 2 cos α β cos α + β, α := nθ, β := (n 2)θ, 2 2 cos nθ + cos(n 2)θ = 2 cos θ cos(n 1)θ, cos(n arccos t) }{{} γ n(t) cos nθ = 2 cos }{{} θ cos(n 1)θ cos(n 2)θ, θ := arccos t, t = 2t (cos(n 1) arccos t) } {{ } γ n 1(t) Obor hodnot funkcí γ n, n 1, na intervalu 1, 1 je 1, 1. Kořeny z 0,..., z n 1 jsou řešení rovnice cos(n arccos z k ) = 0, cos((n 2) arccos t). }{{} γ n 2(t) n arccos z k = π 2 + kπ, arccos z k = 1 ( π ) n 2 + kπ 0, π, ( ( π z k = cos k + 1 )), k = 0, 1,..., n 1. n 2 To je doporučené kosinové rozdělení uzlových bodů na intervalu 1, 1 ; obecně na a, b x k = b + a 2 + b a 2 z k = b + a 2 + b a 2 cos π(k + 1 2 ) n Chyba aproximace při kosinovém rozdělení uzlových bodů 9

(Červeně odhad chyby, modře skutečná chyba.) Motivační úloha - interpolační polynom Vliv lokálních změn na interpolační polynom 10

Příklad: Dáno: x 0 = 0, x 1 = 1, y 0,0, y 1,0, y 0,1, y 1,1 R Hledáme polynom ϕ stupně nejvýše 3, splňující Hermitův interpolační polynom ϕ(x 0 ) = y 0,0, ϕ(x 1 ) = y 1,0, ϕ (x 0 ) = y 0,1, ϕ (x 1 ) = y 1,1 Stejně jako u Lagrangeovy konstrukce interpolačního polynomu sestrojíme nejdříve polynomy η, ϱ, σ, τ stupně 3: Polynom η má dvojnásobný kořen 1, je tedy tvaru kde a, b určíme z hodnot v bodě 0: ψ ψ(0) ψ(1) ψ (0) ψ (1) η 1 0 0 0 ϱ 0 1 0 0 σ 0 0 1 0 τ 0 0 0 1 η(t) = (at + b)(t 1) 2, ϱ má dvojnásobný kořen 0, je tedy tvaru kde a, b určíme z hodnot v bodě 1: η(0) = b = 1 η (0) = a 2b = 0 a = 2, b = 1, η(t) = (2t + 1)(t 1) 2 ϱ(t) = (a t + b ) t 2, ϱ(1) = a + b = 1 ϱ (1) = 3a + 2b = 0 a = 2, b = 3, ϱ(t) = ( 2t + 3)t 2 11

σ má dvojnásobný kořen 1 a jednoduchý kořen 0, je tedy tvaru σ(t) = c t (t 1) 2, kde c určíme z hodnoty derivace v bodě 0: σ (0) = c = 1 σ(t) = t(t 1) 2 τ má dvojnásobný kořen 0 a jednoduchý kořen 1, je tedy tvaru τ(t) = c t 2 (t 1), kde c určíme z hodnoty derivace v bodě 1: τ (1) = c = 1 τ(t) = t 2 (t 1) ϕ dostaneme jako lineární kombinaci η, ϱ, σ, τ, ϕ = y 0,0 η + y 1,0 ϱ + y 0,1 σ + y 1,1 τ Aproximace Taylorovou řadou (přesněji Taylorovým polynomem) Speciální případ Hermitova interpolačního polynomu s jediným uzlovým bodem, v němž je zadáno prvních n derivací (včetně nulté). Úloha: Dáno: Uzlový bod x 0 n hodnot y 0,0, y 0,1,..., y 0,n 1 R Hledáme polynom ϕ stupně menšího než n takový, že ϕ (j) (x 0 ) = y 0,j, j = 0,..., n 1. Řešení je ve tvaru ϕ = y 0,j ψ j, j<n ψ (i) j (x 0 ) = δ ij, ψ j (t) = 1 j! (t x 0) j ϕ(t) = j<n y 0,j j! (t x 0 ) j. Pokud jsou y 0,0, y 0,1,..., y 0,n 1 hodnoty derivací nějaké funkce f v bodě x 0, tj. y 0,j = f (j) (x 0 ), pak ϕ je konečná Taylorova řada se středem x 0 : ϕ(t) = j<n f (j) (x 0 ) j! (t x 0 ) j. 12

Pokud f má na intervalu I(u, x 0 ) spojitou derivaci řádu n, pak kde ξ u I(u, x 0 ) f(u) ϕ(u) = f (n) (ξ u ) n! (u x 0 ) n, f(u) ϕ(u) M n (u x 0 ) n. n! Jediný rozdíl od chyby interpolačního polynomu je, že polynom W (u) s kořeny x 0,..., x n 1 je nahrazen polynomem (u x 0 ) n (stejného stupně) s n-násobným kořenem x 0. Aproximace Taylorovou řadou je velmi přesná v okolí x 0, na úkor chyby ve vzdálenějších bodech. Aproximace exponenciály (zeleně) Taylorovými polynomy stupňů 5, 10, 15 pro kladné argumenty. Aproximace exponenciály (zeleně) Taylorovými polynomy stupňů 5, 10, 15 pro záporné argumenty. 13

Aproximace exponenciály (zeleně) Taylorovými polynomy stupňů 5, 10, 15 pro kladné i záporné argumenty. Interpolace spliny Nevýhoda interpolace polynomem: malá změna vstupní hodnoty v jednom uzlovém bodě může zásadně ovlivnit výsledné hodnoty v místech značně vzdálených. Spline je funkce po částech polynomiální. (Je dána různými polynomy nízkého stupně na jednotlivých intervalech.) Nejjednodušším případem je náhrada po částech lineární funkcí, lomenou čarou, lineární spline. Kubický spline Úloha: Dáno: n vzestupně uspořádaných uzlových bodů x 0,..., x n 1, n hodnot y 0,..., y n 1. Hledáme funkci ϕ, definovanou na intervalu x 0, x n 1, splňující: ϕ(x i ) = y i, i = 0,..., n 1, ϕ se na intervalu x i 1, x i shoduje s nějakým polynomem ϕ i stupně nejvýše 3, i = 1,..., n 1, ϕ má na intervalu x 0, x n 1 spojitou první a druhou derivaci. (Toto zadání bude nutné ještě upřesnit.) Spojitost derivací stačí zajistit v bodech x 1,..., x n 2 : ϕ i(x i ) = ϕ i+1(x i ), i = 1,..., n 2, ϕ i (x i ) = ϕ i+1(x i ), i = 1,..., n 2. Předpokládejme, že známe hodnoty ϕ (x i ) = ϕ i (x i) = ϕ i+1 (x i), i = 0,..., n 1. Tím je zajištěna spojitost ϕ. Polynomy ϕ i, i = 1,..., n 1 lze najít stejně jako Hermitův interpolační polynom v předchozí úloze, pouze uzlové body jsou x i 1, x i místo 0, 1. Obecný případ dostaneme lineární transformací t = x i 1 + (x i x i 1 ) u, u = t x i 1 x i x i 1. Na intervalu x i 1, x i, i = 1,..., n 1, dostáváme ϕ i (t) = y i 1 η i (t) + y i ϱ i (t) + ϕ (x i 1 )σ i (t) + ϕ (x i )τ i (t), kde η i, ϱ i, σ i, τ i jsou polynomy stupně nejvýše 3 (určené stejně jako polynomy η, ϱ, σ, τ v úloze na Hermitův interpolační polynom). Zbývá určit ϕ (x i ), i = 0,..., n 1: y i 1 η i (x i ) + y i ϱ i (x i ) + ϕ (x i 1 )σ i (x i ) + ϕ (x i )τ i (x i ) = = y i η i+1(x i ) + y i+1 ϱ i+1(x i ) + ϕ (x i )σ i+1(x i ) + ϕ (x i+1 )τ i+1(x i ), kde i = 1,..., n 2 (n 2 lineárních rovnic o n neznámých). Zbývají 2 volitelné parametry. Obvykle se volí ϕ (x 0 ) = ϕ (x n 1 ) = 0, tzv. přirozený spline. To znamená, že u první a poslední rovnice nahradíme jednu stranu nulou. Tato volba se projeví pouze na okrajích intervalu. 14

Výpočet má dvě části: 1. Výpočet koeficientů ϕ (x i ), i = 0,..., n 1. 2. Výpočet funkčních hodnot. Matice soustavy je třídiagonální (lze využít pro efektivnější řešení). Spliny nelze extrapolovat! Přesto to většina implementací dovoluje. Poznámka: Volba rozdělení má v případě interpolace splinem výrazně menší vliv. Vliv lokálních změn na spline 15

Motivační úloha - spline Úloha: Dáno: n uzlových bodů x 0,..., x n 1 příslušné hodnoty y 0,..., y n 1 k funkcí ϕ 0,..., ϕ k 1, k n, definovaných alespoň ve všech uzlových bodech. Hledáme: koeficienty c 0,..., c k 1 R lineární kombinace funkcí ϕ j ϕ = j<k c j ϕ j takové, abychom minimalizovali výraz H 2 = (ϕ(x i ) y i ) 2 = i<n i<n ( ) 2 c j ϕ j (x i ) y i j<k Modifikovaná kritéria H 2w = w i (ϕ(x i ) y i ) 2 i<n řeší se analogicky, H 1 = i<n ϕ(x i ) y i 16

nevede na jednoznačné řešení, neužívá se, řeší se (tzv. Čebyševova aproximace), ale je obtížnější. H 0 = max i<n ϕ(x i) y i Řešení aproximace podle kritéria nejmenších čtverců V R n zavedeme skalární součin vektorů u = (u 0,..., u n 1 ), v = (v 0,..., v n 1 ): u v = i<n u i v i. Máme aproximovat vektor y lineární kombinací ϕ = c j ϕ j, kritérium je H 2 = ( ϕ y) ( ϕ y) = ϕ y 2. Řešení: Kolmý průmět splňuje soustavu podmínek (pro m = 0,..., k 1) j<k ( ϕ y) ϕ m, ( ϕ y) ϕ m = 0, ϕ ϕ m = y ϕ m. ϕ se vzhledem ke skalárním součinům s vektory ϕ m chová stejně jako y. ( ) c j ϕ j ϕ m = y ϕ m, j<k c j ( ϕ j ϕ m ) = y ϕ m, m = 0,..., k 1; j<k soustava lineárních rovnic pro neznámé c 0,..., c k 1 (soustava normálních rovnic). Speciální případ: aproximujeme polynomem stupně menšího než k, můžeme volit ϕ j (t) = t j, ϕ j ϕ m = i<n x j i xm i = i<n x j+m i. Motivační úloha - metoda nejmenších čtverců Aproximace V-A charakteristiky diody lineární kombinací konstanty a dvou exponenciál s vhodnými základy. V podprostoru P = Lin{ ϕ 0,..., ϕ k 1 } najdeme ortogonální bázi ( ψ 0,..., ψ k 1 ), ψ j ψ m = 0 pro j m. 17

Ortogonalita závisí nejen na funkcích ϕ 0,..., ϕ k 1, ale i na volbě uzlových bodů! Hledáme řešení ve tvaru ϕ = d j ψ j, kde d j, j = 0,..., k 1 jsou souřadnice vzhledem k nové bázi. Matice j<k soustavy normálních rovnic je diagonální: d j ( ψj ψ j ) = y ψ j, j = 0,..., k 1, d j = y ψ j ψ j ψ = y ψ j j ψ, j = 0,..., k 1. j 2 Navíc lze volit vektory ψ j jednotkové, pak vyjde jednotkový i jmenovatel. Gramova-Schmidtova ortogonalizace Způsob, jak najít ortogonální bázi ψ 0 = ϕ 0 ψ 1 = ϕ 1 + α 1,0 ψ0 ψ 1 ψ 0 = 0 ϕ 1 ψ 0 + α 1,0 ψ0 ψ 0 = 0 α 1,0 = ϕ 1 ψ 0 ψ 0 ψ 0 ψ 2 = ϕ 2 + α 2,0 ψ0 + α 2,1 ψ1 ψ 2 ψ 0 = 0 ϕ 2 ψ 0 + α 2,0ψ0 ψ 0 + α 2,1 ψ1 }{{ ψ } 0 = 0 0 α 2,0 = ϕ 2 ψ 0 ψ 0 ψ 0 ψ 2 ψ 1 = 0 ϕ 2 ψ 1 + α 2,0 ψ0 }{{ ψ } 1 +α 2,1ψ1 ψ 1 = 0 0 α 2,1 = ϕ 2 ψ 1 ψ 1 ψ 1... ψ j = ϕ j + m<j α j,m ψm p, p < j : ψj ψ p = 0 = ϕ j ψ p + m<j α j,m ψm ψ p = ϕ j ψ p + α j,p ψp ψ p ψ 0 ψ 1 ψ 2 ψ 3. ψ n 1 = α j,p = ϕ j ψ p ψ p ψ p 1 0 0 0 0 α 1,0 1 0 0 0 α 2,0 α 2,1 1 0 0 α 3,0 α 3,1 α 3,2 1 0....... α n 1,0 α n 1,1 α n 1,2 1 φ 0 φ 1 φ 2 φ 3. φ n 1 (Komu vadí maticový zápis pro vektory, může je nahradit řádky matice.) 18

Aproximace goniometrickým polynomem (konečnou Fourierovou řadou) Aproximace metodou nejmenších čtverců, přičemž aproximační funkce jsou 1, cos 2π t T, sin 2π t T, cos 4π t T, sin 4π t T,... Pro ekvidistantní uzlové body na intervalu délky T, x i = a + i T n, i = 0,..., n 1 jsou vektory ϕ j (kterých smí být nejvýše n) ortogonální. Pro ortogonální funkce je složitost úměrná k n. Pro k = n dostáváme n 2. Rychlá Fourierova transformace (Fast Fourier Transform, FFT) dále snižuje složitost na n ln n. K tomu vyžaduje navíc n = 2 m, jinak efektivita klesá. Použití: Aproximace periodických a téměř periodických průběhů, zejména akustických, ale např. i obrazových; komprese mp3 a jpeg. Rozklad na frekvence dovoluje další zpracování, digitální filtraci, rozpoznávání atd. Čebyševova aproximace polynomem Úloha: Dáno: omezený interval I, spojitá funkce f na I, k N Hledáme: polynom ϕ stupně menšího než k takový, abychom minimalizovali výraz H 0 = max ϕ(t) f(t) t I To se také dělá, ale je to mnohem pracnější. Častěji se používá modifikovaná aproximace metodou nejmenších čtverců: Pro jednoduchost na intervalu I = 1, 1 ; zobecnění na interval a, b dostaneme lineární transformací inverzní transformace je x = b + a 2 z = x b+a 2 b a 2 + b a 2 z, Za bázi prostoru všech polynomů stupně menšího než k volíme Čebyševovy polynomy. Pokud můžeme, volíme n k uzlových bodů x 0,..., x n 1 1, 1 jako kořeny Čebyševova polynomu stupně n, tj. s kosinovým rozdělením: ( ( π x i = cos i + 1 )), i = 0,..., n 1. n 2. 19

Pro k = n dostaneme interpolační polynom (s doporučeným kosinovým rozdělením uzlových bodů). Řešení pro k < n se od interpolačního polynomu liší zanedbáním členů vyššího řádu. Koeficienty c k,..., c n 1 bývají malé. (Závisí ovšem na vyšších derivacích aproximované funkce!) Chyba v uzlových bodech je proto omezena výrazem n 1 ϕ(x i ) f(x i ) c j. j=k Poznámky o Čebyševově aproximaci Neoptimalizujeme přesně kritérium H 0, ale výsledek se od optimálního řešení příliš neliší. O chybě mimo uzlové body nelze říci mnoho, přesto lze postup doporučit. Rekurentní vzorec lze použít nejen ke stanovení Čebyševových polynomů, ale i přímo k výpočtu jejich hodnot v daném bodě. Nedoporučuje se výsledek roznásobovat do standardního tvaru ϕ(t) = j<k b j t j. Metodu lze zobecnit i na případ, kdy hledáme aproximaci ve tvaru součinu známé funkce a neznámého polynomu. Úloha: Odhadnout f (x) pomocí funkčních hodnot v konečně mnoha bodech. Z definice f f(x + h) f(x) (x) = lim, h 0 h dostaneme odhad f(x + h) f(x) d(x, h) =. h Směrnici tečny ke grafu funkce nahrazujeme směrnicí sečny vedené body ( x, f(x) ) a ( x + h, f(x + h) ) Symetrický odhad d s (x, h) = je směrnice sečny, vedené body (x h, f(x h)) a (x + h, f(x + h)). d(x, h) + d(x, h) 2 = f(x + h) f(x h), 2h Taylorův rozvoj funkce f a odhadů derivace podle h v okolí 0: f(x + h) = f(x) + hf (x) + h2 2 f (x) + h3 6 f (x) + h4 24 f (4) (x) + h5 120 f (5) (x) +..., d(x, h) = f (x) + h 2 f (x) + h2 6 f (x) + h3 24 f (4) (x) + h4 120 f (5) (x) +..., d(x, h) = f (x) h 2 f (x) + h2 6 f (x) h3 24 f (4) (x) + h4 120 f (5) (x)..., d s (x, h) = f (x) + h2 6 f (x) + h4 120 f (5) (x) +.... 20

Řád metody numerické derivace je exponent u h v prvním obecně nenulovém členu Taylorova rozvoje chyby. Odhad d(x, h) je řádu 1, d s (x, h) řádu 2. Typická závislost chyby numerické derivace na kroku (odhady derivace funkce sin v bodě 1): Chyba numerické derivace krok nesymetrický odhad symetrický odhad 10 2 0.42163259 10 2 0.90059 10 5 10 3 0.4208059 10 3 0.1059 10 6 10 4 0.423059 10 4 0.3059 10 6 10 5 0.23059 10 5 0.26941 10 5 10 6 0.23059 10 5 0.23059 10 5 10 7 0.3023059 10 3 0.3023059 10 3 10 8 0.3023059 10 3 0.3023059 10 3 10 9 0.403023059 10 1 0.403023059 10 1 10 10 0.5403023059 0.5403023059 Typická závislost chyby numerické derivace na kroku (nesymetrický odhad derivace funkce sin v bodě 1, měřítko kroku logaritmické se základem 10). Pro nesymetrický odhad: d(x, h) = f (x) + h 2 f (ξ), kde ξ I(x, x + h), pokud f má na intervalu I(x, x + h) spojitou druhou derivaci. Pak existuje M 2 takové, že Pro symetrický odhad: t I(x, x + h) : f (t) M 2. d(x, h) f (x) M 2 2 h. d s (x, h) = f (x) + h2 6 f (ξ), kde ξ I(x h, x + h), pokud f má na intervalu I(x h, x + h) spojitou třetí derivaci. Pak existuje M 3 takové, že t I(x h, x + h) : f (t) M 3. d s (x, h) f (x) M 3 6 h2. 21

Vyjdeme z odhadu chyby metody tvaru M p+1 c kde p je řád metody, M p+1 je odhad f (p+1), c je konstanta pro danou metodu (nejčastěji (p + 1)!). Zaokrouhlovací chybu odhadneme výrazem h p, b r M 0 1 h, kde M 0 je odhad f, r je relativní přesnost numerického výpočtu funkčních hodnot, b je konstanta pro danou metodu (většinou řádu jednotek, určená počtem sčítanců v čitateli použitého výrazu). Odhad celkové chyby: e(h) = M p+1 h p 1 + b r M 0 c h minimum nastane pro h dop : e (h dop ) = 0 Pro d(x, h): p = 1, c = 2, b = 2, p M p+1 c h p 1 dop b r M 0 h 2 = 0 dop h dop = p+1 b c r M 0 p M p+1 h dop = 2 r M0 M 2 odhad chyby metody M 2 2 h dop = M 0 M 2 r r To je špatná zpráva! (Zaokrouhlovací chyba je podobná.) Pro d s (x, h): p = 2, c = 6, b = 1 (v čitateli máme dva členy, ale dělíme dvěma), h dop = 3 3r M0 M 3 odhad chyby metody M 3 6 h2 dop = 1 2 3 3 M 2/3 0 M 1/3 3 r 2/3 Příklad: r = 10 10, funkční hodnoty i hodnoty derivací zhruba stejné (jako např. u funkce x e x ): Pro odhad d(x, h): h dop = 2 10 10 = 2 10 5 s odhadem relativní chyby M 0 M 2 M 1 r = r = 10 5, Pro odhad d s (x, h): h dop = 3 3 10 10. = 6.7 10 4 1 s odhadem relativní chyby 1 r 2/3. 2 3 = 7.47 10 8. 1/3 Pro funkci x e 100x (pouze změna měřítka na ose x) je M k = 100 k M 0, pro odhad d(x, h): h dop = 2 10 14 = 2 10 7 s odhadem relativní chyby r = 10 5, 2 3 1/3 M 2/3 0 M 1/3 3 M 1 r 2/3 = pro odhad d s (x, h): h dop = 3 3 10 16. = 6.7 10 6 s odhadem relativní chyby 1 2 3 1/3 r 2/3. = 7.47 10 8. Pro odhad derivace ln v bodě x = 10 6 (předchozí délky kroků nelze použít): M 0. = 14, M1. = 10 6, M 2. = 10 12, M 3. = 2 10 18, pro odhad d(x, h): h dop = 4 14 10 22. = 8 10 11 s odhadem relativní chyby 14 10 12 10 6 r. = 3.74 10 5, pro odhad d s (x, h): h dop = 3 3 7 10 28 =. 1.3 10 9 1 s odhadem relativní chyby 5.47 10 7. 10 6 r 2/3. = 2 3 1/3 14 2/3 (2 10 18 ) 1/3 22

Upřesnění: Dosud jsme uvažovali jen chybu vyhodnocení funkce f pro přesný argument, odhadnutou výrazem r M 0. Nepřesnost r x v argumentu se projeví ve funkční hodnotě chybou přibližně r x M 1, která může být značná, bude-li velká (absolutní hodnota) derivace funkce f. Proto je žádoucí volit čísla h, x, x + h tak, aby byla v počítači zobrazena přesně, tedy nikoli např. h = 10 3 v binární reprezentaci. Odvození optimální délky kroku by se mělo modifikovat podle toho, která z chyb r M 0, r x M 1 je větší. (Ještě lépe by bylo uvažovat obě chyby najednou, ale tím by se řešení zkomplikovalo, ani by nemuselo být jednoznačné.) Úloha: Správný výsledek nějakého výpočtu je g(0) = lim g(h). Předpokládáme, že g má v okolí bodu 0 h 0 Taylorův rozvoj g(h) = g(0) + hp p! g(p) (0) + hr r! g(r) (0) +..., kde p (řád metody) známe a r > p. Z hodnot funkce g v konečně mnoha nenulových bodech máme odhadnout g(0). Zanedbáme členy řádů vyšších než p a aproximujeme g polynomem ϕ(h) = s+c h p, s, c R. Ke stanovení s, c zvolíme 2 uzlové body h, h/q, kde q 1: ϕ(h) = s + c h p = g(h), ( ) ( ) h ϕ q = s + c hp h q p = g q. To je regulární soustava dvou lineárních rovnic pro dvě neznámé s, c, z nichž nás zajímá pouze s = ϕ(0): ( ) (q p 1) s = q p g g(h), h q ( ) q p h g q g(h) s = q p. 1 Odhad s hodnoty g(0) je zatížen pouze chybami vyšších řádů než p (zde řádu r). Často q = 2, pak s = 2p g ( ) h 2 g(h) 2 p. 1 Odhad d(x, h) má chybu řádu 1; z hodnot d(x, h), d(x, h/q) vypočteme odhad s chybou řádu 2. Pro q = 2: e(x, h) = e(x, h) = 2 d(x, h/2) d(x, h) = Ze symetrických odhadů d s (x, h), d s (x, h/q): s chybou řádu 4. Pro q = 2: q d(x, h/q) d(x, h), q 1 f(x + h) + 4 f(x + h/2) 3 f(x). h e s (x, h) = q2 d s (x, h/q) d s (x, h) q 2, 1 e s (x, h) = 4 d s(x, h/2) d s (x, h) 3 f(x + h) + 8 f(x + h/2) 8 f(x h/2) + f(x h) =. 6 h Symetrický odhad d s (x, h) lze též dostat Richardsonovou extrapolací z odhadu d(x, h) s q = 1. 23