Aproximace funkcí. Numerické metody. Ústav matematiky. 1. listopadu 2006

Podobné dokumenty

Numerické metódy matematiky I

Interpolace, ortogonální polynomy, Gaussova kvadratura

Interpolace pomocí splajnu

1 Polynomiální interpolace

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Aplikovaná numerická matematika

Numerické metody. Ústav matematiky. 24. března 2006

Úlohy nejmenších čtverců

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1

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

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

EUKLIDOVSKÉ PROSTORY

Numerické metody. Ústav matematiky. 23. ledna 2006

5. Interpolace a aproximace funkcí

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

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

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.

0.1 Úvod do lineární algebry

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

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:

0.1 Úvod do lineární algebry

úloh pro ODR jednokrokové metody

1 Mnohočleny a algebraické rovnice

Optimalizace. Numerické metody. Ústav matematiky. 23. ledna 2006

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

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

Co je obsahem numerických metod?

APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL

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

8. Okrajový problém pro LODR2

Aplikovaná numerická matematika - ANM

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.

Zdrojem většiny příkladů je sbírka úloh 1. cvičení ( ) 2. cvičení ( )

Metoda nejmenších čtverců Michal Čihák 26. listopadu 2012

Numerická matematika 1

Interpolace Lagrangeovy polynomy. 29. října 2012

Vzpěr jednoduchého rámu, diferenciální operátory. Lenka Dohnalová

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

Interpolace, aproximace

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

MATEMATIKA III. Olga Majlingová. Učební text pro prezenční studium. Předběžná verze

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

Arnoldiho a Lanczosova metoda

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

1 Mnohočleny a algebraické rovnice

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) +...

Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky

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

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

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

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

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.

Čebyševovy aproximace

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

Obsah Obyčejné diferenciální rovnice

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

Soustavy lineárních diferenciálních rovnic I. řádu s konstantními koeficienty

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s.

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

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

5.3. Implicitní funkce a její derivace

Diferenciální rovnice 3

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

Lineární algebra : Metrická geometrie

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

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

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

Diferenciální rovnice

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

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

Kapitola 10: Diferenciální rovnice 1/14

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

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)

Soustavy lineárních rovnic

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

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

1 Linearní prostory nad komplexními čísly

Kombinatorická minimalizace

1 Vektorové prostory.

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

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

Derivace funkcí více proměnných

Těleso racionálních funkcí

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

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

(Cramerovo pravidlo, determinanty, inverzní matice)

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

Aproximace a interpolace

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

9.3. Úplná lineární rovnice s konstantními koeficienty

Matematická analýza pro informatiky I.

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

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.

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

Hledání extrémů funkcí

Extrémy funkce dvou proměnných

Transkript:

Numerické metody Doc. RNDr. Libor Čermák, CSc. RNDr. Rudolf Hlavička, CSc. Ústav matematiky Fakulta strojního inženýrství Vysoké učení technické v Brně 1. listopadu 2006

Obsah Aproximace funkcí Aproximace a interpolace 3 Aproximace funkcí Aproximace a interpolace polynomem Interpolační splajny funkcí více proměnných Metoda nejmenších čtverců Literatura

Aproximace a interpolace Aproximovat funkci f (x) znamená nahradit ji funkcí ϕ(x), která je k f (x) v jistém smyslu bĺızká. Píšeme ϕ(x) f (x). Budeme se zabývat dvěma základními typy aproximace, a to interpolací a metodou nejmenších čtverců. je taková aproximace, při níž ϕ(x) nabývá v zadaných bodech x i předepsaných hodnot y i = f (x i ). Někdy navíc žádáme, aby funkce ϕ a f měly v bodech x i také stejné derivace. Interpolaci je věnován odstavec 5. Metoda nejmenších čtverců je taková aproximace, při níž ϕ(x) prokládáme mezi zadanými body [x i, y i ] tak, aby vzdálenost funkcí f a ϕ byla v jistém smyslu minimální. Je přitom charakteristické, že funkce ϕ body [x i, y i ] neprochází. Metoda nejmenších čtverců je vyložena v odstavci 50.

Aproximace a interpolace Aproximaci ϕ(x) použijeme k přibližnému výpočtu hodnot funkce f (x), třeba při vykreslování ϕ f. Je žádoucí, aby výpočet ϕ(x) byl jednoduchý. Proto se ϕ často hledá ve tvaru polynomu. Obecně, ϕ(x) se používá k řešení úloh, v nichž vystupuje funkce f, kterou je účelné nebo dokonce nezbytné nahradit její vhodnou aproximací ϕ. Jako příklad uved me výpočet derivace nebo určitého integrálu: f (x) nahradíme pomocí ϕ (x) a b a f (x) dx nahradíme pomocí b ϕ(x) dx. a

Obsah Aproximace funkcí 3 Aproximace funkcí Aproximace a interpolace polynomem Interpolační splajny funkcí více proměnných Metoda nejmenších čtverců Literatura

Interpolační funkci ϕ(x) vybíráme z vhodné třídy funkcí. Omezíme se na dva nejběžnější případy: a) ϕ(x) je polynom; b) ϕ(x) je po částech polynom, na každém subintervalu obecně jiný.

polynomem Předpokládejme, že jsou dány navzájem různé body x 0, x 1,..., x n, x i x j pro i j, říkáme jim také uzly interpolace, a v každém z nich je předepsána hodnota y i. Hledáme interpolační polynom P n (x) stupně nejvýše n, který splňuje interpolační podmínky P n (x i ) = y i, i = 0, 1,..., n. (3.1)

Existenci interpolačního polynomu dokážeme tak, že ho zkonstruujeme. Lagrangeův tvar interpolačního polynomu má vyjádření P n (x) = y 0 l 0 (x) + y 1 l 1 (x) + + y n l n (x) = kde l i (x) jsou tzv. fundamentální polynomy definované předpisem n y i l i (x), (3.2) l i (x) = (x x 0)(x x 1 )... (x x i 1 )(x x i+1 )... (x x n ) (x i x 0 )(x i x 1 )... (x i x i 1 )(x i x i+1 )... (x i x n ). (3.3) Snadno nahlédneme, že i=0 l i (x k ) = { 1 pro k = i, 0 pro k i, i, k = 0, 1,..., n, (3.4) takže interpolační podmínky P n (x k ) = n i=0 y il i (x k ) = y k, k = 0, 1,..., n, jsou splněny.

Interpolační polynom je daty [x i, y i ], i = 0, 1,..., n, určen jednoznačně. Skutečně, jsou-li P a Q interpolační polynomy splňující interpolační podmínky P(x i ) = Q(x i ) = y i, pak polynom P Q je roven nule v uzlech x 0, x 1,..., x n. Avšak polynom stupně nejvýše n nemůže mít více než n kořenů, pokud se nerovná identicky nule. V našem případě proto nutně P Q = 0 a tedy P = Q. Tím je jednoznačnost interpolačního polynomu dokázána.

Příklad 3.1. Určíme interpolační polynom pro data předepsaná tabulkou x i 1 1 2 3 y i 6 2 3 2 Nejdříve získáme fundamentální polynomy l 0 (x) = l 1 (x) = l 2 (x) = l 3 (x) = (x 1)(x 2)(x 3) ( 1 1)( 1 2)( 1 3) = 1 24 (x 3 6x 2 + 11x 6), (x + 1)(x 2)(x 3) (1 + 1)(1 2)(1 3) = 1 4 (x 3 4x 2 + x + 6), (x + 1)(x 1)(x 3) (2 + 1)(2 1)(2 3) = 1 3 (x 3 3x 2 x + 3), (x + 1)(x 1)(x 2) (3 + 1)(3 1)(3 2) = 1 8 (x 3 2x 2 x + 2) a pak sestavíme interpolační polynom P 3 (x) = 6 l 0 (x) 2 l 1 (x) 3 l 2 (x) + 2 l 3 (x) = x 3 3x 2 + x 1.

Hlavní předností Lagrangeova tvaru interpolačního polynomu je jeho elegantní forma. Používá se proto zejména v teoretických úvahách. Pro praktické použití však ideální není. Upozorněme na dva jeho hlavní nedostatky. (a) Přidáme-li další uzel x n+1, musíme přepočítat všechny fundamentální polynomy. (b) Počet operací potřebných k výpočtu hodnoty P n ( x) je poměrně značný, vyžaduje 2n 2 + 2n násobicích operací a 2n 2 + 3n operací sčítacích. Oba tyto nedostatky odstraňuje Newtonův tvar interpolačního polynomu, ve kterém P 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 ). (3.5) Přidání dalšího uzlu x n+1 je snadné, k P n (x) stačí přičíst jeden další člen, nebot P n+1 (x) = P n (x) + a n+1 (x x 0 )(x x 1 ) (x x n ). Nedostatek (a) Lagrangeova tvaru interpolačního polynomu jsme tedy překonali.

Hodnotu z = P n ( x) určíme podobně jako v Hornerově schématu, tj. postupem: z := a n a pak pro i = n 1, n 2,..., 0 počítej z := z( x x i ) + a i. (3.6) Koeficienty a i lze vypočítat přímo z interpolačních podmínek (3.1) a dosáhnout tak významné úspory v počtu operací. Existuje však ještě lepší způsob a ten si ted uvedeme. Nejdříve definujeme poměrné diference : P[x i ] := y i, P[x i, x i+1 ] := (P[x i+1 ] P[x i ])/(x i+1 x i ), P[x i, x i+1, x i+2 ] := (P[x i+1, x i+2 ] P[x i, x i+1 ])/(x i+2 x i ), a dále, pro 3 k n: P[x i, x i+1,..., x i+k 1, x i+k ] := (P[x i+1,..., x i+k ] P[x i,..., x i+k 1 ])/(x i+k x i ). (3.7)

Dá se ukázat, že takže Newtonův tvar interpolačního polynomu je a i = P[x 0, x 1,..., x i ], (3.8) P n (x) = P[x 0 ] + P[x 0, x 1 ](x x 0 ) + P[x 0, x 1, x 2 ](x x 0 )(x x 1 ) +... + P[x 0, x 1,..., x n ](x x 0 )(x x 1 )... (x x n 1 ). (3.9) Označíme-li P ik = P[x i k,..., x i ], pak a i = P ii. Následuje algoritmus výpočtu poměrných diferencí Pro i = 0, 1,..., n proved P i0 := y i. Pro k = 1, 2,..., n prováděj : pro i = k, k + 1,..., n prováděj : P ik := (P i,k 1 P i 1,k 1 )/(x i x i k ) konec cyklu i, konec cyklu k.

x 0 P 00 x 1 P 10 P 11 x 2 P 20 P 21 P 22 x 3 P 30 P 31 P 32 P 33....... x n P n0 P n1 P n2... P n,n 1 P nn Výpočet lze přehledně zaznamenat do tabulky, kterou vyplňujeme po sloupcích. Výpočet koeficientů a i = P ii a následný výpočet P n ( x) podle (3.6) vyžaduje 1 2 n2 + 3 2 n násobicích operací a n2 + 3n operací sčítacích. Dosáhli jsme tedy významně nižšího počtu operací, než kolik je jich třeba pro výpočet P n ( x) z Lagrangeova interpolačního polynomu. To znamená, že také nedostatek (b) Lagrangeova interpolačního polynomu je uspokojivě vyřešen.

Příklad 3.2. Sestavíme Newtonův interpolační polynom pro data z příkladu 3.1. Průběh výpočtu zaznamenáváme do tabulky. Dostaneme x i P i0 P i1 P i2 P i3 1 6 = a 0 = 6 1 2 2 = a 1 = 2 2 3 1 1 = a 2 = 1 3 2 5 3 1 = a 3 = 1, takže P 3 (x) = 6 + 2 (x + 1) + ( 1) (x + 1)(x 1) + 1 (x + 1)(x 1)(x 2). V bodě x = 0,5 podle (3.6) vypočteme P 3 (0,5) = ((1 (0,5 2) 1) (0,5 1) + 2) (0,5 + 1) 6 = 1,125.

Když přidáme další uzel x 4 = 0 a v něm předepíšeme hodnotu y 4 = 2, stačí dopočítat jeden řádek tabulky. Dostaneme x 4 P 40 P 41 P 42 P 43 P 44 0 2 0 2,5 0,5 0,5 = a 4 = 0,5, a tedy P 4 (x) = P 3 (x) + ( 0,5) (x + 1)(x 1)(x 2)(x 3).

Chyba aproximace interpolačním polynomem. Nejdříve zavedeme následující Označení. Symbolem C a, b budeme značit množinu všech funkcí, které jsou v intervalu a, b spojité, a symbolem C k a, b pak množinu všech funkcí, které jsou v intervalu a, b spojité spolu se svými derivacemi až do řádu k včetně. Pro k = 0 zřejmě C 0 a, b C a, b. Předpokládejme, že čísla y i nejsou libovolná, ale že y i = f (x i ) jsou hodnoty funkce f v uzlech interpolace. Pak nás jistě bude zajímat chyba E n ( x) := f ( x) P n ( x) ve zvoleném bodě x. Pro x = x i je E n (x i ) = 0. Jaká je ale chyba mimo uzly interpolace?

Necht tedy x je libovolný bod, a, b je nějaký interval obsahující všechny uzly x i interpolace a také zkoumaný bod x, a necht f C n+1 a, b. Pak pro chybu E n ( x) platí E n ( x) = f ( x) P n ( x) = f (n+1) (ξ) (n + 1)! ( x x 0)( x x 1 )... ( x x n ), (3.10) kde ξ = ξ( x) je (bĺıže neurčený) bod z intervalu a, b. Zápisem ξ = ξ( x) přitom chceme zdůraznit, že poloha bodu ξ závisí nejen na funkci f a na interpolantu P n, ale také na zvoleném bodu x.

Poznámky. Abychom zjednodušili výklad, budeme předpokládat, že x 0 < x 1 < < x n. 1) Jestliže M n+1 je taková konstanta, že f (n+1) (x) M n+1 pro každé x a, b, pak E n ( x) M n+1 (n + 1)! max ω n+1(x), (3.11) x a, b kde ω n+1 (x) = (x x 0 )(x x 1 )... (x x n ). Odhad (3.11) je však obvykle příliš pesimistický. 2) Jestliže má funkce f (x) derivace všech řádů ohraničené stejnou konstantou, pak pro dostatečně velké n je chyba libovolně malá. Příklad 3.3. Pro f (x) = sin x lze vzít M n+1 = 1, proto E n (x) (b a)n+1 (n + 1)!. Dá se dokázat, že (b a) n+1 (n + 1)! 0 pro n, takže P n (x) f (x) pro každé x z libovolného konečného intervalu a, b.

1 0.8 0.6 0.4 n=6 n=12 n=18 0.2 0 1.5 1 0.5 0 0.5 1 1.5 Obr. 3.1: Graf funkce ω n+1(x)

3) Jestliže interpolační polynom používáme k výpočtu hodnot interpolované funkce vně intervalu x 0, x n, říkáme, že provádíme extrapolaci. V tomto případě může být chyba aproximace velká, nebot hodnota ω n+1 (x) rychle roste, když se x vzdaluje od x 0 doleva nebo od x n doprava. 4) ω n+1 (x) může nabývat velkých hodnot také uvnitř intervalu x 0, x n, zejména když jsou uzly x i rozmístěny rovnoměrně, tj. když x i = x 0 + ih, kde h je pevně zvolený krok. Na obr. 3.1 vidíme, že ve středu intervalu x 0, x n nabývá ω n+1 (x) nejmenších hodnot, v bĺızkosti středů krajních intervalů, zejména intervalů x 0, x 1 a x n 1, x n, je však hodnota ω n+1 (x) značná. Toto chování polynomu ω n+1 (x) se promítne i do průběhu interpolantu P n (x). Příklad 3.4. Sestrojíme interpolační polynom Rungeovy funkce f (x) = na rovnoměrném dělení intervalu 1, 1. 1 1 + 25x 2

2 1.5 P 10 (x) 1/(1+25x 2 ) 1 0.5 0 0.5 1 0.5 0 0.5 1 Obr. 3.2: Interpolační polynom Rungeovy funkce

Jde o známý příklad, na kterém se demonstruje, že pro rostoucí počet dílků chyba interpolace neomezeně roste. Vhodným rozmístěním uzlů lze chybu ω n+1 (x) minimalizovat, viz cvičení. Tuto možnost však obvykle nemáme, nebot uzly jsou pevně dány. Proto používání interpolačních polynomů vysokých stupňů obecně nelze doporučit.

Hermitova interpolace. Doposud jsme se zabývali Lagrangeovou interpolací. Jejím charakteristickým rysem je to, že interpolační polynom P n (x) je určen zadanými hodnotami P n (x i ) = y i v uzlech x i. Pokud interpolační polynom určují navíc také předepsané derivace, hovoříme o Hermitově interpolaci. Předpokládejme tedy, že v každém uzlu x i je zadáno α i + 1 čísel y (0) i, y (1) i,..., y (α i ) i. Označme α = n + n i=0 α i. Pak Hermitovým interpolačním polynomem P α (x) nazveme polynom stupně nejvýše α, který splňuje interpolační podmínky d j dx j P α (x i ) = y (j) i, j = 0, 1,..., α i, i = 0, 1,..., n. (3.12) Nultou derivací přitom rozumíme funkční hodnotu. Je dokázáno, že existuje jediný takový polynom. Jestliže y (j) i = dj dx j f (x i), j = 0, 1,..., α i, i = 0, 1,..., n, říkáme, že P α (x) je Hermitův interpolační polynom funkce f (x).

Necht a, b je interval obsahující uzly interpolace. Jestliže f C α+1 a, b, pak pro chybu Hermitovy interpolace v bodě x a, b platí f ( x) P α ( x) = f (α+1) (ξ) (α + 1)! ( x x 0) α0+1 ( x x 1 ) α1+1... ( x x n ) αn+1, (3.13) kde ξ = ξ( x) je (nějaký bĺıže neurčený) bod z intervalu a, b. Použití Hermitova polynomu vysokého stupně obecně nelze doporučit, protože (stejně jako u Lagrangeovy interpolace) může být chyba interpolace mezi uzly značná. Vzorec pro určení koeficientů Hermitova interpolačního polynomu je poměrně komplikovaný, lze ho najít např. v [Stoer, Bulirsch], zde ho neuvádíme. Místo toho si na příkladu ukážeme, jak lze Hermitův polynom určit přímo z interpolačních podmínek.

Příklad 3.5. Sestrojíme Hermitův interpolační polynom pro data podle tabulky x i y i y i y i 1 2 4 12 1 2 4 Tedy x 0 = 1, α 0 = 2, y (0) 0 = 2, y (1) 0 = 4, y (2) 0 = 12, x 1 = 1, α 1 = 1, y (0) 1 = 2, y (1) 1 = 4. Protože je předepsáno celkem 5 podmínek, Hermitův polynom navrhneme jako polynom stupně α = 4. Abychom si ušetřili práci, zapíšeme ho ve tvaru mocninného rozvoje okolo toho bodu, v němž je předepsán největší počet podmínek, v našem případě tedy okolo x 0 = 1. Pak P 4 (x) = a + b(x + 1) + c(x + 1) 2 + d(x + 1) 3 + e(x + 1) 4.

Koeficienty a, b, c získáme snadno. Z podmínky P 4 ( 1) = 2 okamžitě dostaneme a = 2. Podobně z podmínky P 4 ( 1) = 4 obdržíme b = 4 a protože ( 1) = 2c, z podmínky P 4 ( 1) = 12 dostaneme c = 6. Dále P 4 P 4 (1) = 2 4 2 + 6 2 2 + d 2 3 + e 2 4 = 2 = 8d + 16e = 16, P 4(1) = 4 + 2 6 2 + 3 d 2 2 + 4 e 2 3 = 4 = 12d + 32e = 16. Tuto soustavu vyřešíme a dostaneme d = 4, e = 1. Tedy P 4 (x) = 2 4(x + 1) + 6(x + 1) 2 4(x + 1) 3 + (x + 1) 4 = x 4 1.

Interpolační splajny Jestliže chceme interpolovat funkci f (x) na poměrně dlouhém intervalu a, b, musíme žádat splnění interpolačních podmínek v dostatečně velkém počtu bodů. Pokud bude interpolantem polynom, musí být vysokého stupně a to, jak víme, obvykle vede k velkých chybám mezi uzly. Tudy proto cesta nevede. Lepší je rozdělit interval a, b na řadu menších subintervalů a na každém z nich sestrojit interpolační polynom nižšího stupně. Předpokládejme, že a = x 0 < x 1 < < x i 1 < x i < x i+1 < < x n 1 < x n = b (3.14) je dělení intervalu a, b. V každém uzlu x i je předepsána hodnota y i interpolantu. Délku i-tého intervalu x i 1, x i označíme h i a délku nejdelšího intervalu h, tj. h i = x i x i 1, i = 1, 2,..., n, h = max 1 i n h i. (3.15)

Hledaný po částech polynomický interpolant budeme značit S(x) a nazveme ho interpolačním splajnem. Na každém intervalu x i 1, x i je S(x) polynom, jehož příslušnost k i-tému intervalu vyznačíme indexem i, tj. S(x) je na intervalu x i 1, x i polynom S i (x). K vyjádření polynomu S i (x) s výhodou použijeme lokální proměnnou s = x x i 1. Budeme také používat první poměrnou diferenci δ i = y i y i 1 x i x i 1 = y i y i 1 h i.

Lineární interpolační splajn (dále jen lineární splajn) je to nejjednodušší, co nás napadne: každé dva sousední body [x i 1, y i 1 ] a [x i, y i ] spojíme úsečkou. Zřejmě S i (x) = y i 1 + y i y i 1 x i x i 1 (x x i 1 ) = y i 1 + sδ i (3.16) je lineární interpolační polynom procházející body [x i 1, y i 1 ] a [x i, y i ]. Lineární splajn S(x) je spojitá funkce, derivace S (x) je však ve vnitřních uzlech obecně nespojitá. Jestliže y i = f (x i ), i = 0, 1,..., n, a f C 2 a, b, pak pro chybu interpolace platí f (x) S(x) Ch 2, (3.17) kde x a, b je libovolné a C je konstanta nezávislá na h.

Pro dostatečně mnoho uzlů lze učinit chybu libovolně malou. Například při vykreslování na obrazovku monitoru s rozlišením 1024 x 768 bodů jistě stačí použít 1024 interpolačních uzlů k získání kvalitního grafu interpolované funkce. Možná bychom byli spokojeni, i kdybychom zvolili méně uzlů, avšak při postupném snižování počtu uzlů by nutně nastal okamžik, kdy by nás již začaly rušit ostré hrany grafu S(x) v interpolačních uzlech. Pokud bychom současně vykreslovali také funkci f (x), pak by nám začaly vadit také viditelné odchylky interpolantu S(x) od interpolované funkce f (x) mezi uzly interpolace. Přesnější interpolant bychom mohli sestrojit tak, že bychom na intervalech x 0, x k, x k, x 2k,... aproximovali f (x) pomocí interpolačních polynomů stupně (nejvýše) k > 1. Chyba interpolace by v tom případě byla úměrná h k+1, derivace v uzlech x k, x 2k,... by však zůstaly nespojité. Velké k ale nemá smysl používat, jinak bychom zase mohli dostat velké chyby mezi uzly interpolace a byli bychom zpět v situaci, které jsme se právě interpolací po částech chtěli vyhnout.

Velmi populární je aproximace po částech kubickým polynomem, která je nejen spojitá, ale má také spojité první nebo dokonce i druhé derivace. Popisu takových aproximací se budeme věnovat v následujících odstavcích. Hermitův kubický interpolační splajn (dále jen Hermitův kubický splajn) hledáme jako funkci S(x), která a) je v intervalu a, b spojitá spolu se svou první derivací, tj. S C 1 a, b, b) splňuje interpolační podmínky S(x i ) = y i, S (x i ) = d i, i = 0, 1,..., n, (3.18) kde y i, d i jsou předepsané funkční hodnoty a derivace, c) je na každém intervalu x i 1, x i, i = 1, 2,..., n, polynom (nejvýše) třetího stupně. S i (x) je tedy kubický Hermitův polynom jednoznačně určený podmínkami S i (x i 1 ) = y i 1, S i (x i 1) = d i 1, S i (x i ) = y i, S i (x i) = d i.

Snadno ověříme, že tyto podmínky jsou splněny pro S i (x) = y i 1 + sd i 1 + s 2 3δ i 2d i 1 d i h i + s 3 d i 1 2δ i + d i h 2 i. (3.19) Funkce S(x) je spojitá spolu se svou první derivací, druhá derivace už obecně spojitá není. Jestliže y i = f (x i ), d i = f (x i ), i = 0, 1,..., n, a f C 4 a, b, pak pro chybu interpolace platí f (x) S(x) Ch 4, (3.20) kde x a, b je libovolné a C je konstanta nezávislá na h. Pokud derivace d i nejsou k dispozici, musíme je vypočítat pomocí vhodně zvolených dodatečných podmínek.

Hermitův kubický interpolační splajn zachovávající tvar je jednou z možností. Derivace d i se vybírají tak, aby průběh S(x) kopíroval průběh lineárního splajnu procházejícího body [x i, y i ]. Konkrétně, je-li L(x) lineární splajn, požadujeme: a) když má L(x) ve vnitřním uzlu lokální extrém, pak ho tam má také S(x); b) když L(x) mezi dvěma sousedními uzly neklesá, pak tam také S(x) neklesá, a podobně, když L(x) mezi dvěma sousedními uzly neroste, pak tam neroste ani S(x). Jednu zdařilou implementaci lze najít v MATLABu jako funkci pchip, viz [Matlab], [Moler]. Výpočet směrnic d i probíhá podle následujících pravidel: a) Vnitřní uzly. Jestliže směrnice δ i a δ i+1 mají opačná znaménka, nebo je-li některá z nich rovna nule, tj. když platí δ i δ i+1 0, položíme d i = 0. V opačném případě určíme d i jako zobecněný harmonický průměr směrnic δ i a δ i+1 ze vztahu w 1 + w 2 d i = w 1 δ i + w 2 δ i+1, kde w 1 = h i + 2h i+1, w 2 = 2h i + h i+1. b) Okrajové uzly x 0 a x n. Nejjednodušší je položit d 0 = δ 1, d n = δ n. V algoritmu pchip se ale používá kvalitnější aproximace vycházející z kvadratické interpolace, viz [Moler].

Kubický interpolační splajn (dále jen kubický splajn). Směrnice d i ve vnitřních uzlech můžeme určit také tak, že požadujeme, aby splajn S(x) měl navíc spojitou také druhou derivaci, tj. aby platilo Derivováním (3.19) dostaneme S i (x i ) = S i+1(x i ), i = 1, 2,..., n 1. (3.21) S i (x) = (6h i 12s)δ i + (6s 4h i )d i 1 + (6s 2h i )d i hi 2. Pro x = x i je s = h i, takže Pro x = x i 1 je s = 0 a S i (x i ) = 6δ i + 2d i 1 + 4d i h i. S i (x i 1 ) = 6δ i 4d i 1 2d i h i.

Když v posledním vzorci zvětšíme index i o jedničku, dostaneme S i+1(x i ) = 6δ i+1 4d i 2d i+1 h i+1. Dosazením do (3.21) tak dostaneme rovnice h i+1 d i 1 + 2(h i+1 + h i )d i + h i d i+1 = 3(h i+1 δ i + h i δ i+1 ), i = 1, 2,..., n 1. (3.22) Jestliže předepíšeme okrajové podmínky S (a) = d a, S (b) = d b, (3.23) pak v soustavě (3.22) dosadíme v první rovnici d 0 := d a a člen h 2 d a převedeme na pravou stranu, a v poslední rovnici dosadíme d n := d b a člen h n 1 d b převedeme na pravou stranu. Soustavu pak řešíme a získáme zbývající směrnice d i, i = 1, 2,..., n 1.

Matice soustavy je třídiagonální, diagonálně dominantní, takže soustavu lze snadno vyřešit GEM upravenou pro soustavy s třídiagonální maticí. Jestliže y i = f (x i ), i = 0, 1,..., n, d 0 = f (x 0 ), d n = f (x n ), a když f C 4 a, b, pak pro chybu interpolace opět platí (3.20). Obrázek 3.3 potvrzuje, že pomocí kubického splajnu lze pro data stejná jako v příkladu 3.4 dostat zcela vyhovující aproximaci Rungeovy funkce.

1 Kubický splajn 1/(1+25x 2 ) 0.8 0.6 0.4 0.2 0 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 Obr. 3.3: Aproximace Rungeovy funkce kubickým splajnem

Kubický splajn má pozoruhodnou extrémální vlastnost, kterou si ted popíšeme. Označíme V = {v C 2 a, b v(x i ) = y i, i = 0, 1,..., n, v (x 0 ) = d 0, v (x n ) = d n } množinu všech funkcí, které mají v intervalu a, b spojitou druhou derivaci, procházejí zadanými body [x i, y i ], i = 0, 1,..., n, a v krajních bodech a = x 0 a x n = b jejich derivace nabývají předepsaných hodnot d 0 a d n. Pak b a [v (x)] 2 dx nabývá na množině funkcí V své nejmenší hodnoty pro kubický splajn S(x), tj. platí b a [S (x)] 2 dx = min v V b a [v (x)] 2 dx. Tato vlastnost má zajímavou interpretaci v mechanice. Je totiž známo, že ohybová energie homogenního izotropního prutu, jehož střednicová čára má rovnici y = v(x), x a, b, má přibližně hodnotu E(v) = c b a [v (x)] 2 dx, kde c je vhodná konstanta. A dále je také známo, že prut, který je donucen procházet pevnými interpolačními body [x i, y i ] takovým způsobem, že je namáhán pouze silami působícími kolmo k prutu, zaujme pozici s minimální energíı. Extrémální vlastnost tedy tvrdí, že kubický splajn aproximuje střednicovou čáru takového prutu.

Jestliže směrnice d a a d b v krajních bodech intervalu a, b neznáme, osvědčil se postup, označovaný v anglicky psané literatuře jako not a knot. Myšlenka je jednoduchá: požadujeme, aby splajn byl jednoduchým polynomem třetího stupně na prvních dvou intervalech, tj. pro x 0 x x 2, a na posledních dvou intervalech, tj. pro x n 2 x x n. V uzlech x 1 a x n 1 tedy už nedochází k napojování dvou různých polynomů, tj. uzel x 1 a x n 1 už není knot, česky uzel splajnu, odtud název postupu not a knot. Polynomy S 1 (x) a S 2 (x) mají v bodě x 1 společnou funkční hodnotu y 1, stejnou první derivaci d 1 a podle (3.21) také stejnou druhou derivaci. Aby oba polynomy byly totožné stačí, když budou mít v bodě x 1 také stejnou třetí derivaci. Stejnou úvahu lze provést v bodě x n 1. Dostáváme tak okrajové podmínky S 1 (x 1 ) = S 2 (x 1 ), S n 1(x n 1 ) = S n (x n 1 ). (3.24)

Když pomocí (3.19) vyjádříme podmínku S 1 (x 1) = S 2 (x 1) a upravíme ji pomocí první rovnice soustavy (3.22), dostaneme rovnici h 2 d 0 + (h 2 + h 1 )d 1 = [(3h 1 + 2h 2 )h 2 δ 1 + h 2 1δ 2 ]/(h 1 + h 2 ). (3.25) Podobně zpracujeme také podmínku S n 1 (x n 1) = S n (x n 1 ) a dostaneme rovnici (h n + h n 1 )d n 1 + h n 1 d n = [h 2 nδ n 1 + (2h n 1 + 3h n )h n 1 δ n ]/(h n 1 + h n ). (3.26) Neznámé d 0, d 1,..., d n pak dostaneme jako řešení soustavy rovnic, z nichž první je rovnice (3.25), pak následuje n 1 rovnic (3.22) a nakonec přijde ještě rovnice (3.26). Použijeme opět GEM upravenou pro soustavy s třídiagonální maticí.

Shrnutí. Kubický interpolační splajn S(x) je funkce, která a) je v intervalu a, b spojitá spolu se svou první a druhou derivací, tj. S C 2 a, b, b) splňuje interpolační podmínky S(x i ) = y i, i = 0, 1,..., n, kde y i jsou předepsané funkční hodnoty, c) je na každém intervalu x i 1, x i polynom (nejvýše) třetího stupně, d) splňuje okrajové podmínky (3.23) nebo (3.24).

Příklad 3.6. Oblouk [x(t), y(t)] [cos t, sin t], t 0, π/2, budeme aproximovat křivkou [S x (t), S y (t)], kde S x (t) resp. S y (t) jsou kubické splajny funkcí cos t resp. sin t na intervalu 0, π/2. Interval 0, π/2 rozděĺıme na n stejných dílků, takže t i = πi/(2n). Označíme di x = [S x ] (t i ), d y i = [S y ] (t i ). Protože x (t) = sin t, y (t) = cos t, položíme d x 0 = sin 0 = 0, d x n = sin(π/2) = 1, d y 0 = cos 0 = 1, d y n = cos(π/2) = 0. V dalším budeme uvažovat n = 3. Soustavu rovnic (3.22) sestavíme zvlášt pro x-ovou a zvlášt pro y-ovou složku. Matice obou soustav je stejná, pravé strany jsou však různé. Na dalším řádku je uvedena soustava rovnic se dvěma pravými stranami a její řešení: ( ) 0 1 1 1 4 1 0 6 π d1 x d y ( 1 0 1 4 1 d2 x d y 1 = 3 2 2 2 1 3 1 2 1 0 1 2 3 ) d y 1 = d 2 x d y 2 = d 1 x. = 0,865537,. = 0,499813. S x i (t) a S y i (t) určíme podle (3.19). Například pro t π/6, π/3 dostaneme S x 2 (t). = 0,8660 0,4998(t 1 6 π) 0,4431(t 1 6 π)2 + 0,1195(t 1 6 π)3, S y 2 (t). = 0,5000 + 0,8655(t 1 6 π) 0,2554(t 1 6 π)2 0,1195(t 1 6 π)3.

Konstrukce kubického interpolačního splajnu užitím druhých derivací. Snadno ověříme, že kubický polynom S i (x) = y i 1 + s 6δ i 2h i M i 1 h i M i 6 splňuje podmínky + s 2 M i 1 2 S i (x i 1 ) = y i 1, S i (x i 1 ) = M i 1, S i (x i ) = y i, S i (x i ) = M i. + s 3 M i M i 1 6h i. (3.27) Funkce S(x), která je na každém intervalu x i 1, x i definována předpisem (3.27), proto zřejmě splňuje podmínky S(x i ) = y i, S (x i ) = M i, i = 0, 1,..., n. S(x) je tedy na intervalu a, b spojitá a má v něm spojitou druhou derivaci. Abychom dostali kubický splajn, musí mít S(x) v a, b spojitou také první derivaci. Protože nespojitost S (x) může nastat jedině ve vnitřních uzlech, stačí požadovat S i (x i ) = S i+1(x i ), i = 1, 2,..., n 1. (3.28)

Vyjádříme-li (3.28) pomocí (3.27), dostaneme rovnice h i M i 1 +2(h i +h i+1 )M i +h i+1 M i+1 = 6(δ i+1 δ i ), i = 1, 2,..., n 1. (3.29) Když zvoĺıme okrajové podmínky S (a) = M a, S (b) = M b, (3.30) dosadíme je do (3.29), soustavu rovnic vyřešíme a získáme M i, i = 1, 2,..., n 1. Všimněte si, že matice soustavy (3.29) je symetrická. Je samozřejmě možné uvažovat také jiné typy okrajových podmínek, např. (3.23) nebo (3.24). Kubický splajn s vlastností S (a) = S (b) = 0 se nazývá přirozený kubický splajn. Je známo, že přirozený kubický splajn aproximuje průhyb prostě podepřeného (homogenního izotropního) nosníku namáhaného (silami působícími kolmo k nosníku) tak, že tento nosník prochází body [x i, y i ]. M i mají význam ohybových momentů v [x i, y i ].

funkcí více proměnných Omezíme se na případ, kdy f je funkce dvou proměnných definovaná v oblasti Ω. po částech lineární. Předpokládejme, že Ω je mnohoúhelník. Oblast Ω triangulujeme, tj. vyjádříme ji jako sjednocení trojúhelníků T 1, T 2,..., T m, z nichž každé dva různé bud to nemají žádný společný bod nebo mají společný vrchol popřípadě mají společnou stranu. Množinu T = {T k } m k=1 všech takových trojúhelníků nazýváme triangulací oblasti Ω. Vrcholy trojúhelníků triangulace označíme P 1 = [x 1, y 1 ], P 2 = [x 2, y 2 ],..., P n = [x n, y n ] a nazveme je uzly triangulace. Předpokládejme, že v každém uzlu P i je předepsána hodnota f i = f (x i, y i ) interpolované funkce f.

Po částech lineárním interpolantem funkce f na oblasti Ω rozumíme funkci S, která je v Ω spojitá, splňuje interpolační podmínky S(x i, y i ) = f i, i = 1, 2,..., n, a která je na každém trojúhelníku T k T lineární. Na T k je tedy z = S(x, y) S k (x, y) rovnice roviny určené hodnotami funkce f ve vrcholech T k. Připomeňme, že rovnice roviny procházející body [x a, y a, z a ], [x b, y b, z b ] a [x c, y c, z c ] může být vyjádřena ve tvaru x x a y y a z z a x b x a y b y a z b z a x c x a y c y a z c z a = 0. Vypočítat hodnotu z = S(x, y) pro (x, y) Ω je snadné: určíme trojúhelník T k, v němž bod [x, y] leží, a vypočteme z = S k (x, y). Chyba interpolace je tím menší, čím jemnější triangulaci zvoĺıme. Když f C 2 (Ω) (tj. když f je v Ω spojitá spolu se svými prvními a druhými parciálními derivacemi), pak f (x, y) S(x, y) Ch 2, kde h je nejdelší strana trojúhelníků triangulace a C je konstanta nezávislá na h.

po částech bilineární. Předpokládejme, že Ω = a, b c, d je obdélník. Pomocí dělení a = x 0 < x 1 < < x n = b, c = y 0 < y 1 < < y m = d rozložíme výchozí obdélník Ω na menší obdélníky R ij = {(x, y) x i 1 x x i, y j 1 y y j }, i = 1, 2,..., n, j = 1, 2,..., m. Předpokládejme, že v uzlech [x i, y j ] jsou předepsány hodnoty f ij = f (x i, y j ) funkce f. Na obdélníku R ij definujeme funkci x i x S ij (x, y) = f i 1,j 1 x i x i 1 + f i 1,j x i x x i x i 1 y j y y j y j 1 + f i,j 1 x x i 1 x i x i 1 y y j 1 y j y j 1 + f ij x x i 1 x i x i 1 y j y y j y j 1 + y y j 1 y j y j 1. Funkce S ij je bilineární, tj. pro pevné x = C je S ij (C, y) lineární funkce proměnné y a pro pevné y = D je S ij (x, D) lineární funkce proměnné x. Funkce S ij je interpolant funkce f na obdélníku R ij, tj. S ij nabývá ve vrcholech [x i 1, y j 1 ], [x i, y j 1 ], [x i 1, y j ] a [x i, y j ] stejných hodnot jako funkce f, jak se snadno přesvědčíme.

Na Ω definujeme funkci S předpisem S(x, y) = S ij (x, y) pro (x, y) R ij, i = 1, 2,..., n, j = 1, 2,..., m. Funkce S je po částech ( = po obdélnících R ij ) bilineární. Protože S(x i, y j ) = f ij, i = 0, 1,..., n, j = 0, 1,..., m, řekneme, že S je po částech bilineární interpolant funkce f na obdélníku Ω. Snadno ověříme, že S je v Ω spojitá (stačí si uvědomit, že S ij, a tedy také S, je na každé straně obdélníka R ij jednoznačně určena pomocí hodnot funkce f v koncových bodech této strany). Když f C 2 (Ω), pak pro chybu interpolace platí odhad S(x, y) f (x, y) C(h 2 +k 2 ), kde h = max 1 i n (x i x i 1 ), k = max 1 j m (y j y j 1 ) a C je konstanta nezávislá na h, k.

Obsah Aproximace funkcí Metoda nejmenších čtverců 3 Aproximace funkcí Aproximace a interpolace polynomem Interpolační splajny funkcí více proměnných Metoda nejmenších čtverců Literatura

Metoda nejmenších čtverců označuje postup pro přibližné řešení přeurčených nebo nepřesně zadaných soustav rovnic, založený na minimalizaci kvadrátů jejich reziduí. Prokládání dat křivkami je významná skupina úloh, které lze metodou nejmenších čtverců řešit (v anglicky psané literatuře se pro tyto aplikace používá označení curve fitting). Popišme si, o co v takových úlohách jde. Necht tedy t je nezávisle proměnná, například čas, a y(t) je neznámá funkce proměnné t, kterou chceme aproximovat. Předpokládejme, že jsme provedli m pozorování, tj. hodnoty y byly změřeny pro určité (navzájem různé) hodnoty t: y i = y(t i ), i = 1, 2,..., m. Naším záměrem je modelovat y(t) lineární kombinací n bázových funkcí pro nějaké n m: y(t) x 1 ϕ 1 (t) + x 2 ϕ 2 (t) + + x n ϕ n (t) := R n (t). Bázové funkce navrhujeme podle očekávaného průběhu neznámé funkce y(t), určit se mají parametry x 1, x 2,..., x n. Funkce R n (t) se ve statistice nazývá lineární regresní funkce.

Metoda nejmenších čtverců Návrhová matice A modelu je obdélníková matice, která má m řádků a n sloupců: ϕ 1 (t 1 ) ϕ 2 (t 1 )... ϕ n (t 1 ) ϕ 1 (t 2 ) ϕ 2 (t 2 )... ϕ n (t 2 ) A = (ϕ 1, ϕ 2,..., ϕ n ),... ϕ 1 (t m ) ϕ 2 (t m )... ϕ n (t m ) kde ϕ i = (ϕ i (t 1 ), ϕ i (t 2 ),... ϕ i (t m )) T je i-tý sloupec A. Maticová formulace modelu je y Ax, kde y = (y 1, y 2,..., y m ) T jsou naměřená data a x = (x 1, x 2,..., x n ) T je vektor neznámých parametrů. Symbol vyjadřuje přibližnou rovnost.

Metoda nejmenších čtverců y i y i+1 r i =y i R n (t i ) r i 2 2 r i+1 2 r i 1 y i 1 y m r m 2 y 2 r 2 2 m 2 Σ ri min i=1 y 1 r 1 2 t 1 t 2 t i 1 t i t i+1 t m Obr. 3.4: Princip metody nejmenších čtverců

Metoda nejmenších čtverců Rezidua jsou rozdíly mezi pozorováními a modelem: r i = y i R n (t i ) = y i n ϕ j (t i )x j y i j=1 kde a ij = ϕ j (t i ). V maticovém zápisu n a ij x j, i = 1, 2,..., n, j=1 r = y Ax. (3.31) Parametry x i chceme určit tak, aby rezidua byla co nejmenší. Metodu nejmenších čtverců dostaneme, když minimalizujeme součet čtverců reziduí: r 2 := m i=1 r 2 i min. (3.32)

Metoda nejmenších čtverců Někdy se používá také vážená metoda nejmenších čtverců: když jsou některá pozorování důležitější nebo přesnější než ostatní, pak můžeme přisoudit jednotlivým pozorováním různé váhy w i > 0 a minimalizovat součet vážených čtverců r 2 w := m i=1 w i r 2 i min. Je-li například chyba i-tého pozorování přibližně rovna e i, zvoĺıme w i = 1/e i. Je dobré si uvědomit, že každou metodu pro řešení nevážené metody nejmenších čtverců lze použít pro řešení metody vážené: stačí pronásobit y i a i-tý řádek A součinitelem w i.

Metoda nejmenších čtverců Přibližné řešení přeurčené soustavy rovnic Ax = y (tj. rovnic je víc než neznámých), které minimalizuje délku rezidua r = y Ax, se nazývá řešení soustavy lineárních rovnic metodou nejmenších čtverců. Normální soustava rovnic. Řešení minimalizační úlohy (3.32) musí splňovat nutnou podmínku pro extrém: 2 r 2 = m n y i a ij x j = 0, k = 1, 2,..., n. x k x k i=1 Když provedeme naznačené derivování, dostaneme r 2 m n = 2 y i a ij x j ( a ik ) = 0 x k a odtud i=1 j=1 ( n m ) a ik a ij x j = j=1 i=1 což lze zapsat maticově jako j=1 m a ik y i, k = 1, 2,..., n, i=1 A T Ax = A T y. (3.33)

Metoda nejmenších čtverců Soustava lineárních rovnic (3.33) je známa jako normální soustava rovnic. Když jsou sloupce matice A lineárně nezávislé, je matice G := A T A pozitivně definitní a řešení x normální soustavy rovnic je jediné řešení úlohy (3.32), tj. platí y Ax 2 = min x y Ax 2. Vyjádříme-li normální soustavu rovnic pomocí vektorů ϕ i, dostaneme kde (ϕ 1, ϕ 1 ) (ϕ 1, ϕ 2 )... (ϕ 1, ϕ n ) x 1 (ϕ 1, y) (ϕ 2, ϕ 1 ) (ϕ 2, ϕ 2 )... (ϕ 2, ϕ n ) x 2....... = (ϕ 2, y)., (3.34) (ϕ n, ϕ 1 ) (ϕ n, ϕ 2 ) (ϕ n, ϕ n ) (ϕ k, ϕ j ) = x n m ϕ k (t i )ϕ j (t i ) a (ϕ k, y) = i=1 (ϕ n, y) m ϕ k (t i )y i jsou skalární součiny vektorů ϕ k, ϕ j a ϕ k, y. Matice G soustavy (3.34) se nazývá Gramova matice soustavy vektorů ϕ j, j = 1, 2,..., n. i=1

Metoda nejmenších čtverců Při návrhu aproximace R n (t) bychom měli vybírat funkce ϕ i (t) tak, aby sloupce ϕ i matice A byly lineárně nezávislé. V opačném případě, jak se dá ukázat, má úloha (3.32) nekonečně mnoho řešení, což je zřejmě nežádoucí. Uved me si dva významné speciální případy, pro které jsou sloupce matice A lineárně nezávislé (důkaz lze najít např. v [Berezin]): a) ϕ j (t) je polynom stupně j 1, např. ϕ j (t) = t j 1, j = 1, 2,..., n; b) pro n = 2N + 1, kde N je celé nezáporné číslo, voĺıme ϕ 1 (t) = 1, ϕ 2k (t) = cos kt, ϕ 2k+1 (t) = sin kt, k = 1, 2,..., N, a časy pozorování t i vybíráme z intervalu c, c + 2π), kde c je libovolné číslo. Aproximace R n (t) je v případě a) algebraický polynom a v případě b) trigonometrický polynom.

Metoda nejmenších čtverců Když je m = n a matice A je regulární, pak x = A 1 y a r = o, tj. R n (t i ) = y i, i = 1, 2,..., m. Pokud jsou však naměřená data y i zatížena chybami, pak není účelné, aby funkce R n (t) tyto chyby kopírovala. Naopak, aby R n (t) věrohodně vystihovala (rekonstruovala) neznámou funkci y(t), je žádoucí, aby R n (t) naměřená data vyrovnávala (vyhlazovala). To je ale možné jen tehdy, když počet pozorování m je výrazně větší než počet n návrhových parametrů, tj. pro m n.

Metoda nejmenších čtverců Příklad 3.7. Pro data předepsaná tabulkou t i 0 0,5 1 1,5 2 2,5 3 y i 3,57 2,99 2,62 2,33 2,22 2,10 2,05 určíme aproximaci R 2 (t) = x 1 + x 2 e t metodou nejmenších čtverců. Zřejmě ϕ 1 (t) = 1 a ϕ 2 (t) = e t. Normální soustava rovnic je tvaru 7 7 7 1 1 1 e t i x 1 1 y i=1 i=1 7 7 = i i=1 7. e t i 1 e t i e t i e t i y i i=1 i=1 Vypočteme-li příslušné sumy, dostaneme soustavu (zobrazujeme nejvýše 4 desetinná místa) ( ) ( ) ( ) 7 2,4647 x1 17,88 =, 2,4647 1,5805 7,4422.. jejíž řešení je x 1 = 1,9879 a x2 = 1,6087. Hledaná aproximace R 2 (t) =. 1,99 + 1,61e t a r =. 0,0651. x 2 x 2 i=1

Metoda nejmenších čtverců Příklad 3.8. Daty z předchozího příkladu proložíme postupně polynomy prvního, druhého a třetího stupně. Za bázové voĺıme funkce ϕ j (t) = t j 1, kde j = 1, 2,..., n a n = 2, 3, 4. a) Polynom prvního stupně. Pro ϕ 1 (t) = 1 a ϕ 2 (t) = t dostaneme normální soustavu rovnic ( ) ( ) ( ) 7 10,5 x1 17,88 =, 10,5 22,75 23,45 která má řešení x 1. = 3,28 a x2. = 0,48, takže R2 (t). = 3,28 0,48t a r. = 0,4756. Aproximace lineárním polynomem tedy není vhodná, nebot je málo přesná. b) Polynom druhého stupně. Normální soustava rovnic 7 10,5 22,75 x 1 17,88 10,5 22,75 55,125 x 2 = 23,45 22,75 55,125 142,1875 49,0625 má řešení x 1. = 3,53, x2. = 1,09 a x3. = 0,20, takže R 3 (t). = 3,53 1,09t + 0,2t 2 a r. = 0,1006. Velikost rezidua se zmenšila, je však stále větší než v příkladu 3.7. x 2 x 3

Metoda nejmenších čtverců c) Polynom třetího stupně. Normální soustava rovnic (zobrazujeme nejvýše 4 desetinná místa) 7 10,5 22,75 55,125 10,5 22,75 55,125 142,1875 22,75 55,125 142,1875 381,2813 55,125 142,1875 381,2813 1049,5469 x 1 x 2 x 3 x 4 17,88 23,45 = 49,0625 116,78 má řešení x 1. = 3,57, x2. = 1,35, x3. = 0,43 a x4. = 0,05, takže R 4 (t). = 3,57 1,35t + 0,43t 2 0,05t 3 a r. = 0,0360.

Metoda nejmenších čtverců Pokud bychom stupeň polynomu dále zvyšovali, zjistili bychom, že polynom R 7 (t) šestého stupně prochází všemi body [t i, y i ], takže je to interpolační polynom. Všimněte si ještě prvků Gramových matic: s rostoucím řádem největší koeficient prudce roste. Spolu s ním prudce roste také číslo podmíněnosti Gramových matic. Do následující tabulky jsme zaznamenali čísla podmíněnosti κ 2 (G) pro n = 2, 3,..., 7 (spočtená v MATLABu pomocí maticové 2 normy) n 2 3 4 5 6 7 κ 2 (G) 16 4,27 10 2 1,91 10 4 1,20 10 6 1,17 10 8 2,31 10 10 Pokud bychom tabulku dat z příkladu 3.7 rozšířili o další sloupce, mohli bychom teoreticky v regresní funkci n j=1 x jt j 1 zvětšovat n (až do počtu m sloupců). Prakticky to však možné není, nebot pro velké n by číslo podmíněnosti Gramovy matice bylo neúnosně velké. Regresní funkce R n (t) s bázovými funkcemi ϕ j (t) = t j 1, j = 1, 2,..., n, se proto pro větší n nepoužívají. Pokud potřebujeme polynomickou regresní funkci vyššího stupně, měli bychom použít tzv. ortogonální polynomy, viz např. [Stoer, Bulirsch].

Metoda nejmenších čtverců Řešení přeurčených soustav rovnic. Číslo podmíněnosti κ 2 (A) je definováno také pro obdélníkovou matici A a platí κ 2 (A T A) = [κ 2 (A)] 2. To znamená, že číslo podmíněnosti Gramovy matice A T A je výrazně větší než číslo podmíněnosti návrhové matice A. Normální rovnice se proto k řešení rozsáhlých soustav přeurčených rovnic nehodí. Existují lepší postupy využívající tzv. QR rozklad matice A nebo tzv. pseudoinverzi matice A,viz např. [Stoer, Bulirsch], [Moler]. Obě tyto metody jsou stabilní a Gramovu matici nepoužívají. Kvalitní implementace jsou dostupné např. v MATLABu, viz [Matlab]. Tyto metody se také bez potíží vypořádají s případem, když jsou sloupce matice A lineárně závislé. Dá se ukázat, že v tom případě má přeurčená soustava rovnic nekonečně mnoho řešení (ve smyslu metody nejmenších čtverců, tj. má nekonečně mnoho řešení, která mají stejnou délku rezidua). Jestliže A + je pseudoinverze matice A, pak A + y je jednoznačně definované řešení, které minimalizuje délku rezidua, a pokud je takových řešení nekonečně mnoho, pak A + y je to z nich, které má nejmenší délku.

Obsah Aproximace funkcí Literatura 3 Aproximace funkcí Aproximace a interpolace polynomem Interpolační splajny funkcí více proměnných Metoda nejmenších čtverců Literatura

Literatura I.S. Berezin, N.P. Židkov: Čislennyje metody I,II, Nauka, Moskva, 1962. G. Dahlquist, G. Å Bjőrk: Numerical Methods, Prentice-Hall, Englewood Cliffs, NJ, 1974. M. Fiedler: Speciální matice a jejich použití v numerické matematice, SNTL, Praha, 1981. D. Hanselman, B. Littlefield: Mastering MATLAB 7, Pearson Prentice Hall, Upper Saddle River, NJ, 2005. G. Hämmerlin, K. H. Hoffmann: Numerical Mathematics, Springer-Verlag, Berlin, 1991. M. T. Heath: Scientific Computing. An Introductory Survey, McGraw-Hill, New York, 2002. I. Horová, J. Zelinka: Numerické metody, učební text Masarykovy univerzity, Brno, 2004. J. Kobza: Splajny, učební text Palackého univerzity, Olomouc, 1993. J. Klapka, J. Dvořák, P. Popela: Metody operačního výzkumu, učební text, FSI VUT Brno, 2001.

Literatura J. H. Mathews, K. D. Fink: Numerical Methods Using MATLAB, Pearson Prentice Hall, New Jersey, 2004. MATLAB: Mathematics, Version 7, The MathWorks, Inc., Natick, 2004. G. Meurant: Computer Solution of Large Linear Systems, Elsevier, Amsterodam, 1999. S. Míka: Numerické metody algebry, SNTL, Praha, 1985.. C. B. Moler: Numerical Computing with MATLAB, Siam, Philadelphia, 2004. http://www.mathworks.com/moler. J. Nocedal, S. J. Wright: Numerical Optimization, Springer Series in Operations Research, Springer, Berlin, 1999. A. Quarteroni, R. Sacco, F. Saleri: Numerical Mathematics, Springer, Berlin, 2000. W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling: Numerical Recipes in Pascal, The Art of Scientific Computing, Cambridge University Press, Cambridge, 1990.

Literatura P. Přikryl: Numerické metody matematické analýzy, SNTL, Praha, 1985. A. R. Ralston: Základy numerické matematiky, Academia, Praha, 1973. K. Rektorys: Přehled užité matematiky I,II, Prometheus, Praha, 1995. J. Stoer, R. Bulirsch: Introduction to Numerical Analysis, Springer-Verlag, New York, 1993. E. Vitásek: Numerické metody, SNTL, Praha, 1987. W. Y. Yang, W. Cao, T. S. Chung, J. Morris: Applied Numerical Methods Using Matlab, John Willey & Sons, New Jersey, 2005.