Příklad Známe následující hodnoty funkce Φ: u Φ(u) 1,00 0,841 1,10 0,864 1,20 0,885 Odhadněte přibližně hodnoty Φ(1,02) a Φ(1,16). Možnosti: Vezmeme hodnotu v nejbližším bodě. Body proložíme lomenou čarou. Body proložíme složitější křivkou.
f n f 1 Obecná situace Známe hodnoty určité funkce f v bodech x 0, x 1,..., x n. Body x 0, x 1,..., x n nazýváme uzly. Pro zjednodušení předpokládáme, že x 0 < x 1 < < x n. Funkční hodnoty v uzlech označíme f 0,..., f n, případně y 0,..., y n. y y n y f 0 y 1 x 0 x 1 x n x y 0 x 0 x 1 x n x
Zajímají nás funkční hodnoty v jiných než uzlových bodech, případně i hodnoty derivace nebo určitý integrál b a f (x) dx. Body proložíme křivkou grafem funkce y = P(x). Metoda nejmenších čtverců Interpolace y y n y f n f 1 f 0 y 1 x 0 x 1 x n x y 0 x 0 x 1 x n x
Interpolace Požadujeme, aby graf aproximující funkce P procházel všemi body: P(x i ) = f i, i = 0,..., n. Interpolační polynom funkce P je polynom Spline (splajn) funkce P je po částech polynom
Připomenutí co je to polynom? Příklad P(x) = x 2 3x + 4... polynom stupně 2 P(x) = x 15 + 10x 8 1... polynom stupně 15 P(x) = x 3 1 x... není polynom Polynom Polynom stupně n (n 0 je celé číslo) je funkce P n (x) = a n x n + a n 1 x n 1 + + a 1 x + a 0, kde a i R pro i = 0,..., n, a n 0.
Interpolační polynom Necht jsou dány navzájem různé body x 0,..., x n a funkční hodnoty v nich f 0,..., f n. Interpolační polynom daný těmito body je polynom P n stupně nanejvýš n, pro který platí P n (x i ) = f i, i = 0,..., n. Interpolační polynom vždy existuje a je dán jednoznačně. Můžeme jej však hledat v různých tvarech.
Jak hledat interpolační polynom Možný postup: Koeficienty polynomu, a 0,..., a n, najdeme jako řešení odpovídající soustavy rovnic. Příklad Najděte interpolační polynom daný uzly i 0 1 2 x i 1 2 4 f i 0 0 3 V praxi se však používají spíše následující dva postupy: Newtonův interpolační polynom Lagrangeův interpolační polynom
Newtonův interpolační polynom Polynom hledáme ve tvaru P n (x) = a 0 + a 1 (x x 0 ) + a 2 (x x 0 )(x x 1 ) + Koeficienty a i vypočteme jako + a n (x x 0 )(x x 1 ) (x x n 1 ). a 0 = f 0, a 1 = f [x 0, x 1 ], a 2 = f [x 0, x 1, x 2 ],. a n = f [x 0,..., x n ], kde f [x 0,..., x k ] jsou tzv. poměrné diference k-tého řádu.
Poměrné diference Poměrné diference 1. řádu: f [x i, x i+1 ] = f i+1 f i x i+1 x i, i = 0,..., n 1, poměrné diference 2. řádu: f [x i, x i+1, x i+2 ] = f [x i+1, x i+2 ] f [x i, x i+1 ] x i+2 x i, i = 0,..., n 2, obecně poměrné diference k-tého řádu: f [x i,..., x i+k ] = f [x i+1,..., x i+k ] f [x i,..., x i+k 1 ] x i+k x i, i = 0,..., n k.
Schéma výpočtu poměrných diferencí Zkráceně označíme f [x 0, x 1 ] jako f 0,1, f [x 0, x 1, x 2 ] jako f 0,1,2, apod. Následující tabulku vyplňujeme po sloupcích. Jako koeficienty interpolačního polynomu použijeme červeně vyznačené hodnoty. x i f i f i,i+1 f i,i+1,i+2 f i,i+1,i+2,i+3 x 0 f 0 f 0,1 = f1 f0 x 1 x 0 f 0,1,2 = f1,2 f0,1 x 2 x 0 f 0,1,2,3 = f1,2,3 f0,1,2 x 3 x 0... x 1 f 1 f 1,2 = f2 f1 x 2 x 1 f 1,2,3 = f2,3 f1,2 x 3 x 1 f 1,2,3,4 = f2,3,4 f1,2,3 x 4 x 1... x 2 f 2 f 2,3 = f3 f2 x 3 x 2 f 2,3,4 = f3,4 f2,3 x 4 x 2 f 2,3,4,5 = f3,4,5 f2,3,4 x 5 x 2... x 3 f 3 f 3,4 = f4 f3 x 4 x 3 f 3,4,5 = f4,5 f3,4 x 5 x 3 f 3,4,5,6 = f4,5,6 f3,4,5 x 6 x 3.........
Newtonův interpolační polynom pro ekvidistantní uzly Uzly x 0, x 1,..., x n se nazývají ekvidistantní, jestliže je mezi každými dvěma sousedními uzly stejná vzdálenost h: x i+1 x i = h neboli x i = x 0 + i h. Newtonův interpolační polynom pro ekvidistantní uzly lze vyjádřit ve speciálním tvaru: P n (x) = f 0 + 1 1! f 0 q + 1 2! 2 f 0 q (q 1) + + 1 n! n f 0 q (q 1) (q (n 1)), kde q = x x 0 h.
Obyčejné diference Diference 1. řádu v bodě x i : diference 2. řádu v bodě x i : f i = f i+1 f i, 2 f i = f i+1 f i, obecně diference k-tého řádu v bodě x i : k f i = k 1 f i+1 k 1 f i.
Schéma výpočtu obyčejných diferencí Následující tabulku vyplňujeme po sloupcích. Jako koeficienty interpolačního polynomu použijeme červeně vyznačené hodnoty. x i f i f i 2 f i 3 f i x 0 f 0 f 0 = f 1 f 0 2 f 0 = f 1 f 0 3 f 0 = 2 f 1 2 f 0 x 1 f 1 f 1 = f 2 f 1 2 f 1 = f 2 f 1 3 f 1 = 2 f 2 2 f 1 x 2 f 2 f 2 = f 3 f 2 2 f 2 = f 3 f 2 3 f 2 = 2 f 3 2 f 2 x 3 f 3 f 3 = f 4 f 3 2 f 3 = f 4 f 3 3 f 3 = 2 f 4 2 f 3.....
Lagrangeův interpolační polynom P n (x) = f 0 l 0 (x) + f 1 l 1 (x) + + f n l n (x) = = f 0 + f 1 (x x 1 )(x x 2 ) (x x n ) (x 0 x 1 )(x 0 x 2 ) (x 0 x n ) + (x x 0 )(x x 2 ) (x x n ) (x 1 x 0 )(x 1 x 2 ) (x 1 x n ) + + f n (x x 0 )(x x 1 ) (x x n 1 ) (x n x 0 )(x n x 1 ) (x n x n 1 ). Polynomy l i, i = 0,..., n, mají tu vlastnost, že l i (x j ) = 0 pro j i, l i (x i ) = 1.
Srovnání Lagrangeova a Newtonova interpolačního polynomu Výhody Newtonova interpolačního polynomu: K sestavení je potřeba méně aritmetických operací než pro Lagrangeův interpolační polynom. Přidáme-li do tabulky další bod [x n+1, f n+1 ], lze využít předchozí výsledky: P n+1 (x) = P n (x) + f [x 0,..., x n+1 ] (x x 0 ) (x x n ) Výhody Lagrangeova interpolačního polynomu: Je vhodný pro odvozování dalších vzorců. Lze jej snadno rozšířit i pro funkce více proměnných.
Chyba interpolace Necht interval I obsahuje body x 0, x 1,..., x n a necht f je (n + 1)-krát diferencovatelná funkce na I. Necht P n (x) je interpolační polynom určený hodnotami funkce f v bodech x 0,... x n. Potom pro libovolné x I existuje ξ I takové, že pro chybu interpolace platí f (x) P n (x) = f (n+1) (ξ) (n + 1)! (x x 0)(x x 1 )... (x x n ). Výraz (x x 0 )(x x 1 )... (x x n ) označíme jako ω n+1 (x).
Graf funkce ω 7 (x) pro uzly 3,..., 3 100 80 60 40 20 0 20 40 60 80 100 3 2 1 0 1 2 3
Použijeme-li hodnotu P n (x) pro x vně intervalu x 0, x n, mluvíme o extrapolaci. Chyba může být velká. Chyba může být velká i uvnitř x 0, x n, zvlášt mezi x 0 a x 1 a mezi x n 1 a x n. Aproximace bývá zpravidla nejlepší kolem středu intervalu x 0, x n. Nemusí být pravda, že čím vyšší je stupeň polynomu, tím je aproximace lepší. Jsou-li všechny derivace funkce f ohraničeny stejnou konstantou (platí např. pro funkci sin x), pak lze zvětšením počtu uzlů učinit chybu libovolně malou. Aproximaci polynomy vysokého stupně nelze obecně doporučit.