11 Interpolace, aproximace Metoda nejmenších čtverců 11.1 Interpolace Mějme body [x i,y i ], i =0, 1,...,n 1. Cílem interpolace je najít funkci f(x), jejíž graf prochází všemi těmito body, tj. f(x i )=y i. Poté lze pomocí nalezeného funkčního předpisu počítat hodnoty pro libovolné x, samozřejmě s jistou chybou. Nejčastější interpolační metody: Po částech lineární interpolace, kdy danými body proložíme lomenou čáru. Tj. dva sousední body jsou spojeny úsečkou, pro výpočet pak můžem užít oblíbenou trojčlenku. Polynomická interpolace, kdy danými body proložíme polynom. Dvěma body se dá vést přímka, tj. polynom stupně 1, třemi parabola, tj. polynom stupně 2atd.Máme-lin bodů, můžeme jimi proložit polynom stupně n 1: y = a n 1 x n 1 + a n 2 x n 2 + + a 1 x + a 0 Dosadíme-li do tohoto polynomu [x i,y i ], i =1,...,n,získámesoustavun rovnic o n neznámých: x n 1 0 x n 2 0... 1 a n 1 y 1 x n 1 1 x n 2 1... 1.... a n 2. = y 2. x n 1 n 1 x n 2 n 1... 1 a 0 y n Matice této soustavy se nazývá Vandermondova matice. Zásadní nevýhodou této metody je skutečnost, že budeme-li se snažit proložit více body (asi sedmi a více) jediný polynom, skončíme velmi pravděpodobně (pokud jsme data nezískali skutečně z nějakého polynomu) tak, že kvůli velmi výrazným a neopodstatněné zákmitům grafu bude polynom k ničemu (vizte obr. 1) Metoda je vhodná pouze při menším počtu bodů, kdy dává dobré výsledky. 1
Obr. 1: Polynom stupně 8 I při menším počtu bodů je výpočet koeficientů zatížen zaokrouhlovacími chybami (s Vandermondovou maticí se špatně počítá). Existují však i jiné postupy, jak polynom vypočítat. Newtonova interpolace: Newtonův interpolační polynom má následující tvar: N n (x) =a 0 +a 1 (x x 0 )+a 2 (x x 0 )(x x 1 )+ +a n (x x 0 )(x x 1 )...(x x n 1 ) Koeficienty získáme postupným dosazováním argumentů, kterýžto postup lze algoritmizovat. Lagrangeova interpolace: Interpolační polynom n 1 L(x) = y j l j (x) =y 0 l 0 (x)+y 1 l 1 (x)+ + y n 1 l n 1 (x) j=0 je lineární kombinací Lagrangeových bázových polynomů l j (x) = n 1 i=0,i j x x i = (x x 0) x j x i (x j x 0 ) (x x j 1) (x j x j 1 ) Pro bázové polynomy l j (x) platí: l j (x i )= { 1 pro i = j 0 pro i j (x x j+1 ) (x j x j+1 ) (x x n 1) (x j x n 1 ). Existují i další metody, k jejich rozvoji vedla historicky snaha zjednodušit výpočetní náročnost a získat pohodlně interpolační polynom v případě doplnění dalších bodů k již použitým pro nalezení polynomu. Samozřejme, že všechny postupy vedou k témuž polynomu, ovšem při výpočtu různými metodami můžeme získat různé výpočty vlivem zaokrouhlovacích chyb. 2
Po částech polynomická interpolace, proložíme parabolu. kdy např. třemi sousedními body Interpolace splajnem [splajn, postaru často psáno spline], kdy mezi každými dvěma body je výsledná křivka popsána jiným funkčním předpisem f i (x). To umožňuje dosáhnout hladké funkce, tj. mající spojité derivace (nikde nejsou zuby). Často se užívá kubický splajn, kdy mezi každými dvěma body máme kubickou funkci f i (x) =a i + b i (x x i )+c i (x x i ) 2 + d i (x x i ) 3. Předpokládejme že máme n + 1 bodů (číslujeme 0, 1,...,n,tj.nintervalů), a tedy i n kubických polynomů, z nichž každý je popsán 4 koeficienty. Dohromady máme tedy 4n neznámých a musíme tedy mít 4n podmínek pro výpočet všech parametrů. Ty získáme takto: (1) jednostranné limity jednotlivých polynomů v bodech x i nám dají 2n rovnic, tedy: (1a) n podmínek typu lim f i(x) =y i x x i + pro i =0,...,n 1, kde f i (x) je odpovídající kubická funkce na i-tém intervalu (počítáno od nuly), (1b) n podmínek typu lim x x i f i 1(x) =y i pro i = 1,...,n,kdef i (x) je odpovídající kubická funkce na i-tém intervalu (počítáno od nuly), (2) z požadavku hladkosti nám vyplyne 2n 2podmínektypu lim f i 1 (x) = lim f i (x) x x i x x i + lim f i 1 (x) = lim f i (x) x x i x x i + pro i =1,...,n 1 (bez koncových krajních bodů), kde f i (x) je odpovídající kubická funkce na i-tém intervalu (počítáno od nuly). (3) pro dva koncové krajní body se obvykle bere podmínka tzv. přirozeného splajnu, tedy že do koncového bodu dobíhá splajn jako rovná čára, tedy lim f 0 (x) = lim x x 0 + f n x x n (x) =0. Na pomoc si samozřejmě vezmeme kvalitní matematický softvér. 3
Obr. 2: Kubický splajn Mezi výhody kubického splajnu patří: (1) lze jednoduše přidávat další a další body tvořící složitější a složitější křivky při zachování přesnosti a proveditelnosti výpočtu (srovnejte si s polynomy vysokého stupně), (2) výsledná funkce je hladká, nikde žádné zlomy, (3) případný zákmit lze odstranit přidáním dalšího bodu. 11.2 Aproximace Mějme body [x i,y i ], i =1,...,n.Argumentyx i jsou určeny deterministicky (tedy měřeny bezchybně) a y i jsou nezávislé náhodné veličiny (nabývají hodnot s jistou pravděpodobností) s normálním rozdělením se střední hodnotou 0 a rozptylem σ 2 pro všecha i (vizte poznámku 1 na str. 11). Cílem aproximace je najít funkci, jejíž graf co nejlépe vystihuje rozložení těcho bodů (nemusí jimi procházet). Poté lze pomocí nalezeného funkčního předpisu počítat hodnoty pro libovolné x, samozřejmě s jistou chybou. Názor na to, co považovat za co nejlepší vystižení rozložení bodů není jednoznačný. Kvůli poměrné jednoduchosti se nejčastěji používá metoda nejmenších čtverců (čtverec = druhá mocnina): Předpokládejme, že nejlépe vystihuje rozložení daných bodů [x i,y i ], i =1,...,n, funkce y = f(x), jejíž funkční předpis obsahuje neznámé parametry. Pro každé i vypočteme čtverec (y i f(x i )) 2. Sečteme všechny tyto čtverce, tj. vypočteme Φ= (y i f(x i )) 2 a hledáme, pro které hodnoty parametrů je tato suma minimální, tj. kde je parciální derivace sumy Φ podle každého parametru 0. Pokusme se body [x i,y i ], i = 1,...,n, proložit přímku f(x) = β 0 + β 1 x, nazývanou též regresní. 4
Budeme tedy minimalizovat výraz Φ= (y i β 1 x i β 0 ) 2. Vypočteme obě parciální derivace a upravíme je: Φ β 1 = Φ β 0 = 2(y i β 1 x i β 0 )( x i )=0 2(y i β 1 x i β 0 )( 1) = 0 ( xi y i + β 1 x 2 i + β ) 0x i =0 ( y i + β 1 x i + β 0 )=0 x i y i = β 0 x i + β 1 y i = nβ 0 + β 1 x i x 2 i n ˆβ 0 = y n i x2 i n x n i x iy i n n x2 i ( n x i) 2 ˆβ 1 = n n x iy i n x n i y i n n x2 i ( n x i) 2 (vypočtené koeficienty odhady parametrů je zvykem značit se stříškou) Získanou soustavu lze zapsat pomocí matic: y i n x i ( ) = β0 β 1 x i y i x i x 2 i 5
Tato soustava se dá sestavit pomocí těchto matic: 1 x 1 y 1 1 x 2 X =.., Y = y 2., β = 1 x n y n Soustava pak má tvar X Y = X Xβ a β =(X X) 1 X Y. Pokud bychom neprokládali přímku, ale polynom stupně n, projeví se to tak, že příslušné matice budou mít tvar 1 x 1 x 2 1... x n 1 β 0 1 x 2 x 2 2... x n 1 X =....., β = β 1., 1 x n x 2 n... xn n β n aopětβ =(X X) 1 X Y. Aproximující křivka f(x) nemusí procházet danými body [x i,y i ], i =1,...,n, je tedy rozumné spočítat odchylky e i = y i f(x i ), nazývané rezidua. Dálese neboli reziduální součet čtverců. Platí, že rozptyl S 2 = S e /(n k), kde k je počet parametrů (v našem případě 2), S je směrodatná odchylka. Kvalitu s jakou jsou data popsána regresní přímkou, udává index determinace pak zkoumá součet čtverců reziduí S e = n e2 i I = n (ŷ i ȳ) 2 n (y i ȳ) 2, kde ŷ i je hodnota vypočtená z nalezené funkce, ȳ značí aritmetický průměr. Někdy se při výpočtu s výhodou používá také vztah ȳ = β 0 + β 1 x, který získáme sečtením rovnic y i = β 0 + β 1 x i pro všechna i a vydělení součtu n. Příklad 1. Mravenec průzkumník se probouzí při teplotě okolo 5 C, při teplotě 10 C už může dosáhnout rychlosti 18 m/hod., při teplotě 15 C vyvine rychlost 54 m/hod., při teplotě 20 C běží rychlostí 126 m/hod., při teplotě 25 C uhání rychlostí 210 m/hod., při teplotě 28 C jeho rychlost klesá na 190 m/hod. [Bernard Werber: Mravenci, KK, 2005] 1. Najděte regresní přímku β 0 + β 1 x pro závislost rychlosti y mravence průzkumníka na teplotě okolí x. Určete index determinace. 6 ( β0 β 1 )
Obr. 3: Dané hodnoty rychlosti v závislosti na teplotě Řešení: Sestavíme tabulku i x i y i x 2 i x i y i yi 2 ŷ i e i e 2 i 1 10 18 100 180 324 13.37 4.630 21.441 2 15 54 225 810 2916 68.70 14.698 216.030 3 20 126 400 2520 15876 124.03 1.974 3.896 4 25 210 625 5250 44100 179.35 30.645 939.140 5 28 190 784 5320 36100 212.55 22.552 508.570 98 598 2134 14080 99316 598 0 1689.1 = n ˆβ 0 = y n i x2 i n x n i x iy i n n x2 i ( n x i) 2 = 598 2134 98 14080 = 103708 = 97.287 5 2134 98 2 1066 ˆβ 1 = n n x iy i n x n i y i n n x2 i ( n x i) 2 = 5 14080 98 598 = = 11796 5 2134 98 2 1066 =11.066 Směrodatná odchylka (vizte opět poznámku 1 na str. 11) je 1689.1 S = 3 7 =23.728.
Rovnice přímky je β 0 + β 1 x = 97.287 + 11.066x. Pro zjištění indexu determinace výpočteme průměry x = 19.6, ȳ = 119.6 a sestavíme další tabulku i x i y i y i ȳ (y i ȳ) 2 ŷ i ȳ (ŷ i ȳ) 2 1 10 18 101.6 10322.56 106.23 11284.81 2 15 54 65.6 4303.36 50.90 2590.81 3 20 126 6.4 40.96 4.43 19.26 4 25 210 90.4 8172.16 59.75 3570.06 5 28 190 70.4 4956.16 92.95 8639.70 98 598 0 27795.2 0 26105.00 Odtud I = n (ŷ i ȳ) 2 26105.0 n (y i ȳ) = 2 27795.2 =0.969 Obr. 4: Regresní přímka 2. Najděte interpolační polynom rychlosti pohybu mravence v závislosti na teplotě. Řešení: Použijeme Lagrangeovu interpolaci pro daná data: teplota := [10, 15, 20, 25, 28], rychlost := [18, 54, 126, 210, 190]. 8
Vypočteme Lagrangeovy bázové polynomy a sestavíme polynom L(x): (x 15)(x 20)(x 25)(x 28) l 0 (x) = (10 15)(10 20)(10 25)(10 28) = =0.0000740741x 4 0.00651852x 3 +0.211481x 2 2.99259x +15.5556 (x 10)(x 20)(x 25)(x 28) l 1 (x) = (15 10)(15 20)(15 25)(15 28) = = 0.000307692x 4 +0.0255385x 3 0.766154x 2 +9.72308x 43.0769 (x 10)(x 15)(x 25)(x 28) l 2 (x) = (20 10)(20 15)(20 25)(20 28) = =0.0005x 4 0.039x 3 +1.0875x 2 12.725x +52.5 (x 10)(x 15)(x 20)(x 28) l 3 (x) = (25 10)(25 25)(25 20)(25 28) = = 0.000444444x 4 +0.0324444x 3 0.848889x 2 +9.42222x 37.3333 (x 10)(x 15)(x 20)(x 25) l 4 (x) = (28 10)(28 15)(28 20)(28 25) = =0.000178063x 4 0.0124644x 3 +0.316061x 2 3.42771x +13.3547 L(x) =18l 0 (x)+54l 1 (x) + 126l 2 (x) + 210l 3 (x) + 190l 4 (x) = = 0.0117835x 4 +0.792843x 3 18.7557x 2 + 195.232x 733.761 200 150 100 50 10 15 20 25 30 t Obr. 5: Interpolační polynom 9
Na zvěr ještě nakreslíme interpolační splajn rychlosti pohybu mravence v závislosti na teplotě získaný Matlabem. Kód úlohy byl tento: mravenci=[5,0;10,18;15,54;20,126;25,210;28,190]; X=mravenci(:,1); Y=mravenci(:,2); rad=length(x); xx=x(1):0.2:x(rad); yy=spline(x,y,xx); plot(x,y, o,xx,yy) Výsledek: 250 200 150 100 50 0 5 10 15 20 25 30 Obr. 6: Interpolační splajn 10
Poznámka 1. Význam směrodatné odchylky je znázorněn na obr. 7 Obr. 7: Křivka normálního rozdělení četnosti Procenta udávají plochu nad příslušným intervalem. Pravděpodobnost toho, že realizace náhodné veličiny s rozdělením N(μ, σ 2 ) bude v intervalu μ σ, μ + σ je 68.27 %, v intervalu μ 2σ, μ +2σ je 95.45 % a v intervalu μ 3σ, μ +3σ je 99.73 %. Např. vyrábíme-li metrové tyče s přesností ±1 mm a zákazníkovi vyhovuje tyč délky 99 mm až 101 mm, pak vyrobíme pravděpodobně 31.73 % zmetků. Chceme- -li méně zmetků, pak musíme zpřesnit výrobní proces, při přesnosti ±0.5 mm bude jen 4.55 % zmetků, při přesnosti ±0.33 mm bude jen 0.27 % zmetků. Také lze přesvědčit zákazníka, že na nějakém milimetru nesejde. 11