Aproximace funkc´ı
Numerick´e metody ˇ Doc. RNDr. Libor Cerm´ ak, CSc.
RNDr. Rudolf Hlaviˇcka, CSc.
´ Ustav matematiky Fakulta strojn´ıho inˇzen´ yrstv´ı Vysok´ e uˇ cen´ı technick´ e v Brnˇ e
1. listopadu 2006
Aproximace funkc´ı
Obsah
3
Aproximace funkc´ı Aproximace a interpolace Interpolace Interpolace polynomem Interpolaˇ cn´ı splajny Interpolace funkc´ı v´ıce promˇ enn´ ych
Metoda nejmenˇs´ıch ˇctverc˚ u Literatura
Aproximace a interpolace
Aproximace funkc´ı
Aproximace a interpolace
Aproximovat funkci f (x) znamen´a nahradit ji funkc´ı ϕ(x), kter´a je k f (x) v jist´em smyslu bl´ızk´a. P´ıˇseme ϕ(x) ≈ f (x). Budeme se zab´yvat dvˇema z´akladn´ımi typy aproximace, a to interpolac´ı a metodou nejmenˇs´ıch ˇctverc˚ u. Interpolace je takov´a aproximace, pˇri n´ıˇz ϕ(x) nab´yv´a v zadan´ych bodech xi pˇredepsan´ych hodnot yi = f (xi ). Nˇekdy nav´ıc ˇz´ad´ame, aby funkce ϕ a f mˇely v bodech xi tak´e stejn´e derivace. Interpolaci je vˇenov´an odstavec 5. Metoda nejmenˇs´ıch ˇctverc˚ u je takov´a aproximace, pˇri n´ıˇz ϕ(x) prokl´ad´ame“ ” mezi zadan´ymi body [xi , yi ] tak, aby vzd´alenost“ funkc´ı f a ϕ byla ” v jist´em smyslu minim´aln´ı. Je pˇritom charakteristick´e, ˇze funkce ϕ body [xi , yi ] neproch´az´ı. Metoda nejmenˇs´ıch ˇctverc˚ u je vyloˇzena v odstavci 50.
Aproximace funkc´ı
Aproximace a interpolace
Aproximaci ϕ(x) pouˇzijeme k pˇribliˇzn´emu v´ypoˇctu hodnot funkce f (x), tˇreba pˇri vykreslov´an´ı ϕ ≈ f . Je ˇz´adouc´ı, aby v´ypoˇcet ϕ(x) byl jednoduch´y“. Proto se ϕ ” ˇcasto hled´a ve tvaru polynomu. Obecnˇe, ϕ(x) se pouˇz´ıv´a k ˇreˇsen´ı u ´loh, v nichˇz vystupuje funkce f , kterou je u ´ˇceln´e nebo dokonce nezbytn´e nahradit jej´ı vhodnou aproximac´ı ϕ. Jako pˇr´ıklad uved’me v´ypoˇcet derivace nebo urˇcit´eho integr´alu: f 0 (x) nahrad´ıme pomoc´ı ϕ0 (x) Rb Rb a a f (x) dx nahrad´ıme pomoc´ı a ϕ(x) dx.
Aproximace funkc´ı
Obsah
3
Aproximace funkc´ı Aproximace a interpolace Interpolace Interpolace polynomem Interpolaˇ cn´ı splajny Interpolace funkc´ı v´ıce promˇ enn´ ych
Metoda nejmenˇs´ıch ˇctverc˚ u Literatura
Interpolace
Aproximace funkc´ı
Interpolace
Interpolaˇcn´ı funkci ϕ(x) vyb´ır´ame z vhodn´e tˇr´ıdy funkc´ı. Omez´ıme se na dva nejbˇeˇznˇejˇs´ı pˇr´ıpady: a) ϕ(x) je polynom; b) ϕ(x) je po ˇc´astech polynom, na kaˇzd´em subintervalu obecnˇe jin´y.
Aproximace funkc´ı
Interpolace
Interpolace polynomem
Pˇredpokl´adejme, ˇze jsou d´any navz´ajem r˚ uzn´e body x0 , x1 , . . . , xn ,
xi 6= xj
pro i 6= j ,
ˇr´ık´ame jim tak´e uzly interpolace, a v kaˇzd´em z nich je pˇredeps´ana hodnota yi . Hled´ame interpolaˇcn´ı polynom Pn (x) stupnˇe nejv´yˇse n, kter´y splˇ nuje interpolaˇcn´ı podm´ınky Pn (xi ) = yi , i = 0, 1, . . . , n . (3.1)
Aproximace funkc´ı
Interpolace
Existenci interpolaˇcn´ıho polynomu dok´aˇzeme tak, ˇze ho zkonstruujeme. Lagrange˚ uv tvar interpolaˇ cn´ıho polynomu m´a vyj´adˇren´ı Pn (x) = y0 `0 (x) + y1 `1 (x) + · · · + yn `n (x) =
n X
yi `i (x) ,
(3.2)
i=0
kde `i (x) jsou tzv. fundament´aln´ı polynomy definovan´e pˇredpisem `i (x) =
(x − x0 )(x − x1 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn ) . (xi − x0 )(xi − x1 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
(3.3)
Snadno nahl´edneme, ˇze `i (xk ) =
1 0
pro k = i, pro k = 6 i,
takˇze interpolaˇcn´ı podm´ınky Pn (xk ) = splnˇeny.
Pn
i, k = 0, 1, . . . , n ,
i=0 yi `i (xk )
(3.4)
= yk , k = 0, 1, . . . , n, jsou
Aproximace funkc´ı
Interpolace
Interpolaˇcn´ı polynom je daty [xi , yi ], i = 0, 1, . . . , n, urˇcen jednoznaˇcnˇe. Skuteˇcnˇe, jsou-li P a Q interpolaˇcn´ı polynomy splˇ nuj´ıc´ı interpolaˇcn´ı podm´ınky P(xi ) = Q(xi ) = yi , pak polynom P − Q je roven nule v uzlech x0 , x1 , . . . , xn . Avˇsak polynom stupnˇe nejv´yˇse n nem˚ uˇze m´ıt v´ıce neˇz n koˇren˚ u, pokud se nerovn´a identicky nule. V naˇsem pˇr´ıpadˇe proto nutnˇe P − Q = 0 a tedy P = Q. T´ım je jednoznaˇcnost interpolaˇcn´ıho polynomu dok´az´ana.
Aproximace funkc´ı
Interpolace
Pˇr´ıklad 3.1. Urˇc´ıme interpolaˇcn´ı polynom pro data pˇredepsan´a tabulkou xi
−1
1
2
3
yi
−6
−2
−3
2
Nejdˇr´ıve z´ısk´ame fundament´aln´ı polynomy `0 (x) =
(x − 1)(x − 2)(x − 3) 1 = − (x 3 − 6x 2 + 11x − 6) , (−1 − 1)(−1 − 2)(−1 − 3) 24
`1 (x) =
(x + 1)(x − 2)(x − 3) 1 = (x 3 − 4x 2 + x + 6) , (1 + 1)(1 − 2)(1 − 3) 4
`2 (x) =
1 (x + 1)(x − 1)(x − 3) = − (x 3 − 3x 2 − x + 3) , (2 + 1)(2 − 1)(2 − 3) 3
`3 (x) =
(x + 1)(x − 1)(x − 2) 1 = (x 3 − 2x 2 − x + 2) (3 + 1)(3 − 1)(3 − 2) 8
a pak sestav´ıme interpolaˇcn´ı polynom P3 (x) = −6 · `0 (x) − 2 · `1 (x) − 3 · `2 (x) + 2 · `3 (x) = x 3 − 3x 2 + x − 1 .
2
Aproximace funkc´ı
Interpolace
Hlavn´ı pˇrednost´ı Lagrangeova tvaru interpolaˇcn´ıho polynomu je jeho elegantn´ı forma. Pouˇz´ıv´a se proto zejm´ena v teoretick´ych u ´vah´ach. Pro praktick´e pouˇzit´ı vˇsak ide´aln´ı nen´ı. Upozornˇeme na dva jeho hlavn´ı nedostatky. (a) Pˇrid´ame-li dalˇs´ı uzel xn+1 , mus´ıme pˇrepoˇc´ıtat vˇsechny fundament´aln´ı polynomy. (b) Poˇcet operac´ı potˇrebn´ych k v´ypoˇctu hodnoty Pn (¯ x ) je pomˇernˇe znaˇcn´y, vyˇzaduje 2n2 + 2n n´asobic´ıch operac´ı a 2n2 + 3n operac´ı sˇc´ıtac´ıch. Oba tyto nedostatky odstraˇ nuje Newton˚ uv tvar interpolaˇ cn´ıho polynomu, ve kter´em Pn (x) = a0 +a1 (x −x0 )+a2 (x −x0 )(x −x1 )+· · ·+an (x −x0 )(x −x1 ) · · · (x −xn−1 ) . (3.5) Pˇrid´an´ı dalˇs´ıho uzlu xn+1 je snadn´e, k Pn (x) staˇc´ı pˇriˇc´ıst jeden dalˇs´ı ˇclen, nebot’ Pn+1 (x) = Pn (x) + an+1 (x − x0 )(x − x1 ) · · · (x − xn ) . Nedostatek (a) Lagrangeova tvaru interpolaˇcn´ıho polynomu jsme tedy pˇrekonali.
Aproximace funkc´ı
Interpolace
Hodnotu z = Pn (¯ x ) urˇc´ıme podobnˇe jako v Hornerovˇe sch´ematu, tj. postupem: z := an a pak pro i = n − 1, n − 2, . . . , 0 poˇc´ıtej z := z(¯ x − xi ) + ai .
(3.6)
Koeficienty ai lze vypoˇc´ıtat pˇr´ımo z interpolaˇcn´ıch podm´ınek (3.1) a dos´ahnout tak v´yznamn´e u ´spory v poˇctu operac´ı. Existuje vˇsak jeˇstˇe lepˇs´ı zp˚ usob a ten si ted’ uvedeme. Nejdˇr´ıve definujeme pomˇern´e diference : P[xi ] := yi , P[xi , xi+1 ] := (P[xi+1 ] − P[xi ])/(xi+1 − xi ) , P[xi , xi+1 , xi+2 ] := (P[xi+1 , xi+2 ] − P[xi , xi+1 ])/(xi+2 − xi ), a d´ale, pro 3 ≤ k ≤ n: P[xi , xi+1 , . . . , xi+k−1 , xi+k ] := (P[xi+1 , . . . , xi+k ] − P[xi , . . . , xi+k−1 ])/(xi+k − xi ) . (3.7)
Aproximace funkc´ı
Interpolace
D´a se uk´azat, ˇze ai = P[x0 , x1 , . . . , xi ] ,
(3.8)
takˇze Newton˚ uv tvar interpolaˇcn´ıho polynomu je Pn (x) = P[x0 ] + P[x0 , x1 ](x − x0 ) + P[x0 , x1 , x2 ](x − x0 )(x − x1 ) + . . . + P[x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) . . . (x − xn−1 ) . Oznaˇc´ıme-li Pik = P[xi−k , . . . , xi ], pak ai = Pii . N´asleduje algoritmus v´ ypoˇ ctu pomˇ ern´ ych diferenc´ı Pro i = 0, 1, . . . , n proved’ Pi0 := yi . Pro k = 1, 2, . . . , n prov´adˇej : pro i = k, k + 1, . . . , n prov´adˇej : Pik := (Pi,k−1 − Pi−1,k−1 )/(xi − xi−k ) konec cyklu i , konec cyklu k .
(3.9)
Aproximace funkc´ı
Interpolace
x0
P00
x1
P10
P11
x2
P20
P21
P22
x3 .. .
P30 .. .
P31 .. .
P32 .. .
P33
xn
Pn0
Pn1
Pn2
...
..
.
Pn,n−1
Pnn
V´ypoˇcet lze pˇrehlednˇe zaznamenat do tabulky, kterou vyplˇ nujeme po sloupc´ıch. V´ypoˇcet koeficient˚ u ai = Pii a n´asledn´y v´ypoˇcet Pn (¯ x ) podle (3.6) vyˇzaduje 3 1 2 asobic´ıch operac´ı a n2 + 3n operac´ı sˇc´ıtac´ıch. Dos´ahli jsme tedy 2 n + 2 n n´ v´yznamnˇe niˇzˇs´ıho poˇctu operac´ı, neˇz kolik je jich tˇreba pro v´ypoˇcet Pn (¯ x) z Lagrangeova interpolaˇcn´ıho polynomu. To znamen´a, ˇze tak´e nedostatek (b) Lagrangeova interpolaˇcn´ıho polynomu je uspokojivˇe vyˇreˇsen.
Aproximace funkc´ı
Interpolace
Pˇr´ıklad 3.2. Sestav´ıme Newton˚ uv interpolaˇcn´ı polynom pro data z pˇr´ıkladu 3.1. Pr˚ ubˇeh v´ypoˇctu zaznamen´av´ame do tabulky. Dostaneme xi
Pi0
Pi1
Pi2
−1
−6
1
−2
2
2
−3
−1
−1
3
2
5
3
Pi3
1
=⇒
a0
=
−6
=⇒
a1
=
2
=⇒
a2
=
−1
=⇒
a3
=
1,
takˇze P3 (x) = −6 + 2 · (x + 1) + (−1) · (x + 1)(x − 1) + 1 · (x + 1)(x − 1)(x − 2) . V bodˇe x¯ = 0,5 podle (3.6) vypoˇcteme P3 (0,5) = ((1 · (0,5 − 2) − 1) · (0,5 − 1) + 2) · (0,5 + 1) − 6 = −1,125 .
Aproximace funkc´ı
Interpolace
Kdyˇz pˇrid´ame dalˇs´ı uzel x4 = 0 a v nˇem pˇredep´ıˇseme hodnotu y4 = 2, staˇc´ı dopoˇc´ıtat jeden ˇr´adek tabulky. Dostaneme x4
P40
P41
P42
P43
P44
0
2
0
2,5
0,5
−0,5
=⇒
a4
a tedy P4 (x) = P3 (x) + (−0,5) · (x + 1)(x − 1)(x − 2)(x − 3) .
=
−0,5 , 2
Aproximace funkc´ı
Interpolace
Chyba aproximace interpolaˇ cn´ım polynomem. Nejdˇr´ıve zavedeme n´asleduj´ıc´ı Oznaˇcen´ı. Symbolem C ha, bi budeme znaˇcit mnoˇzinu vˇsech funkc´ı, kter´e jsou v intervalu ha, bi spojit´e, a symbolem C k ha, bi pak mnoˇzinu vˇsech funkc´ı, kter´e jsou v intervalu ha, bi spojit´e spolu se sv´ymi derivacemi aˇz do ˇr´adu k vˇcetnˇe. Pro k = 0 zˇrejmˇe C 0 ha, bi ≡ C ha, bi. Pˇredpokl´adejme, ˇze ˇc´ısla yi nejsou libovoln´a, ale ˇze yi = f (xi ) jsou hodnoty funkce f v uzlech interpolace. Pak n´as jistˇe bude zaj´ımat chyba En (¯ x ) := f (¯ x ) − Pn (¯ x) ve zvolen´em bodˇe x¯. Pro x¯ = xi je En (xi ) = 0. Jak´a je ale chyba mimo uzly interpolace?
Aproximace funkc´ı
Interpolace
Necht’ tedy x¯ je libovoln´y bod, ha, bi je nˇejak´y interval obsahuj´ıc´ı vˇsechny uzly xi interpolace a tak´e zkouman´y bod x¯, a necht’ f ∈ C n+1 ha, bi. Pak pro chybu En (¯ x) plat´ı En (¯ x ) = f (¯ x ) − Pn (¯ x) =
f (n+1) (ξ) (¯ x − x0 )(¯ x − x1 ) . . . (¯ x − xn ) , (n + 1)!
(3.10)
kde ξ = ξ(¯ x ) je (bl´ıˇze neurˇcen´y) bod z intervalu ha, bi. Z´apisem ξ = ξ(¯ x ) pˇritom chceme zd˚ uraznit, ˇze poloha bodu ξ z´avis´ı nejen na funkci f a na interpolantu Pn , ale tak´e na zvolen´em bodu x¯.
Aproximace funkc´ı
Interpolace
Pozn´ amky. Abychom zjednoduˇsili v´yklad, budeme pˇredpokl´adat, ˇze x0 < x1 < · · · < xn . 1) Jestliˇze Mn+1 je takov´a konstanta, ˇze |f (n+1) (x)| ≤ Mn+1 pro kaˇzd´e x ∈ ha, bi, pak Mn+1 max |ωn+1 (x)| , |En (¯ x )| ≤ (n + 1)! x∈ha, bi
(3.11)
kde ωn+1 (x) = (x − x0 )(x − x1 ) . . . (x − xn ). Odhad (3.11) je vˇsak obvykle pˇr´ıliˇs pesimistick´y. 2) Jestliˇze m´a funkce f (x) derivace vˇsech ˇr´ad˚ u ohraniˇcen´e stejnou konstantou, pak pro dostateˇcnˇe velk´e n je chyba libovolnˇe mal´a. Pˇr´ıklad 3.3. Pro f (x) = sin x lze vz´ıt Mn+1 = 1, proto |En (x)| ≤
(b − a)n+1 . D´a se dok´azat, ˇze (n + 1)!
(b − a)n+1 →0 (n + 1)!
pro
n → ∞,
takˇze Pn (x) → f (x) pro kaˇzd´e x z libovoln´eho koneˇcn´eho intervalu ha, bi. 2
Aproximace funkc´ı
Interpolace
1 n=6 n=12 n=18
0.8 0.6 0.4 0.2 0 −1.5
−1
−0.5
0
0.5
Obr. 3.1: Graf funkce |ωn+1 (x)|
1
1.5
Aproximace funkc´ı
Interpolace
3) Jestliˇze interpolaˇcn´ı polynom pouˇz´ıv´ame k v´ypoˇctu hodnot interpolovan´e funkce vnˇe intervalu hx0 , xn i, ˇr´ık´ame, ˇze prov´ad´ıme extrapolaci. V tomto pˇr´ıpadˇe m˚ uˇze b´yt chyba aproximace velk´a, nebot’ hodnota |ωn+1 (x)| rychle roste, kdyˇz se x vzdaluje od x0 doleva nebo od xn doprava. 4) ωn+1 (x) m˚ uˇze nab´yvat velk´ych hodnot tak´e uvnitˇr intervalu hx0 , xn i, zejm´ena kdyˇz jsou uzly xi rozm´ıstˇeny rovnomˇernˇe, tj. kdyˇz xi = x0 + ih, kde h je pevnˇe zvolen´y krok. Na obr. 3.1 vid´ıme, ˇze ve stˇredu intervalu hx0 , xn i nab´yv´a |ωn+1 (x)| nejmenˇs´ıch hodnot, v bl´ızkosti stˇred˚ u krajn´ıch interval˚ u, zejm´ena interval˚ u hx0 , x1 i a hxn−1 , xn i, je vˇsak hodnota |ωn+1 (x)| znaˇcn´a. Toto chov´an´ı polynomu ωn+1 (x) se prom´ıtne i do pr˚ ubˇehu interpolantu Pn (x). Pˇr´ıklad 3.4. Sestroj´ıme interpolaˇcn´ı polynom Rungeovy funkce f (x) =
1 1 + 25x 2
na rovnomˇern´em dˇelen´ı intervalu h−1, 1i.
Aproximace funkc´ı
Interpolace
2 P10(x) 2
1/(1+25x ) 1.5
1
0.5
0
−0.5 −1
−0.5
0
0.5
1
Obr. 3.2: Interpolaˇcn´ı polynom Rungeovy funkce
Aproximace funkc´ı
Interpolace
Jde o zn´am´y pˇr´ıklad, na kter´em se demonstruje, ˇze pro rostouc´ı poˇcet d´ılk˚ u chyba interpolace neomezenˇe roste. 2 Vhodn´ym rozm´ıstˇen´ım uzl˚ u lze chybu |ωn+1 (x)| minimalizovat, viz cviˇcen´ı. Tuto moˇznost vˇsak obvykle nem´ame, nebot’ uzly jsou pevnˇe d´any. Proto pouˇz´ıv´an´ı interpolaˇcn´ıch polynom˚ u vysok´ych stupˇ n˚ u obecnˇe nelze doporuˇcit.
Aproximace funkc´ı
Interpolace
Hermitova interpolace. Doposud jsme se zab´yvali Lagrangeovou interpolac´ı. Jej´ım charakteristick´ym rysem je to, ˇze interpolaˇcn´ı polynom Pn (x) je urˇcen zadan´ymi hodnotami Pn (xi ) = yi v uzlech xi . Pokud interpolaˇcn´ı polynom urˇcuj´ı nav´ıc tak´e pˇredepsan´e derivace, hovoˇr´ıme o Hermitovˇe interpolaci. (0) Pˇredpokl´adejme tedy, ˇze v kaˇzd´em uzlu xi je zad´ano αi + 1 ˇc´ısel yi , Pn (αi ) (1) yi , . . . , yi . Oznaˇcme α = n + i=0 αi . Pak Hermitov´ym interpolaˇcn´ım polynomem Pα (x) nazveme polynom stupnˇe nejv´yˇse α, kter´y splˇ nuje interpolaˇcn´ı podm´ınky dj (j) Pα (xi ) = yi , dxj
j = 0, 1, . . . , αi ,
i = 0, 1, . . . , n .
(3.12)
Nultou derivac´ı pˇritom rozum´ıme funkˇcn´ı hodnotu. Je dok´az´ano, ˇze existuje jedin´y takov´y polynom. Jestliˇze (j)
yi
=
dj f (xi ) , dxj
j = 0, 1, . . . , αi ,
i = 0, 1, . . . , n ,
ˇr´ık´ame, ˇze Pα (x) je Hermit˚ uv interpolaˇcn´ı polynom funkce f (x).
Aproximace funkc´ı
Interpolace
Necht’ ha, bi je interval obsahuj´ıc´ı uzly interpolace. Jestliˇze f ∈ C α+1 ha, bi, pak pro chybu Hermitovy interpolace v bodˇe x¯ ∈ ha, bi plat´ı f (¯ x ) − Pα (¯ x) =
f (α+1) (ξ) (¯ x − x0 )α0 +1 (¯ x − x1 )α1 +1 . . . (¯ x − xn )αn +1 , (α + 1)!
(3.13)
kde ξ = ξ(¯ x ) je (nˇejak´y bl´ıˇze neurˇcen´y) bod z intervalu ha, bi. Pouˇzit´ı Hermitova polynomu vysok´eho stupnˇe obecnˇe nelze doporuˇcit, protoˇze (stejnˇe jako u Lagrangeovy interpolace) m˚ uˇze b´yt chyba interpolace mezi uzly znaˇcn´a. Vzorec pro urˇcen´ı koeficient˚ u Hermitova interpolaˇcn´ıho polynomu je pomˇernˇe komplikovan´y, lze ho naj´ıt napˇr. v [Stoer, Bulirsch], zde ho neuv´ad´ıme. M´ısto toho si na pˇr´ıkladu uk´aˇzeme, jak lze Hermit˚ uv polynom urˇcit pˇr´ımo z interpolaˇcn´ıch podm´ınek.
Aproximace funkc´ı
Interpolace
Pˇr´ıklad 3.5. Sestroj´ıme Hermit˚ uv interpolaˇcn´ı polynom pro data podle tabulky xi
yi
yi0
yi00
−1
2
−4
12
1
2
4 (0)
Tedy x0 = −1, α0 = 2, y0 x1 =
(0)
1, α1 = 1, y1
(1)
= 2, y0 (1)
= 2, y1
=
(2)
= −4, y0
= 12,
4.
Protoˇze je pˇredeps´ano celkem 5 podm´ınek, Hermit˚ uv polynom navrhneme jako polynom stupnˇe α = 4. Abychom si uˇsetˇrili pr´aci, zap´ıˇseme ho ve tvaru mocninn´eho rozvoje okolo toho bodu, v nˇemˇz je pˇredeps´an nejvˇetˇs´ı poˇcet podm´ınek, v naˇsem pˇr´ıpadˇe tedy okolo x0 = −1. Pak P4 (x) = a + b(x + 1) + c(x + 1)2 + d(x + 1)3 + e(x + 1)4 .
Aproximace funkc´ı
Interpolace
Koeficienty a, b, c z´ısk´ame snadno. Z podm´ınky P4 (−1) = 2 okamˇzitˇe dostaneme a = 2. Podobnˇe z podm´ınky P40 (−1) = −4 obdrˇz´ıme b = 4 a protoˇze P400 (−1) = 2c, z podm´ınky P400 (−1) = 12 dostaneme c = 6. D´ale P4 (1) = 2 − 4 · 2 + 6 · 22 + d · 23 + e · 24 = 2
=⇒
8d + 16e = −16 ,
P40 (1) = −4 + 2 · 6 · 2 + 3 · d · 22 + 4 · e · 23 = 4
=⇒
12d + 32e = −16 .
Tuto soustavu vyˇreˇs´ıme a dostaneme d = −4, e = 1. Tedy P4 (x) = 2 − 4(x + 1) + 6(x + 1)2 − 4(x + 1)3 + (x + 1)4 = x 4 − 1 .
2
Aproximace funkc´ı
Interpolace
Interpolaˇ cn´ı splajny
Jestliˇze chceme interpolovat funkci f (x) na pomˇernˇe dlouh´em intervalu ha, bi, mus´ıme ˇz´adat splnˇen´ı interpolaˇcn´ıch podm´ınek v dostateˇcnˇe velk´em poˇctu bod˚ u. Pokud bude interpolantem polynom, mus´ı b´yt vysok´eho stupnˇe a to, jak v´ıme, obvykle vede k velk´ych chyb´am mezi uzly. Tudy proto cesta nevede. Lepˇs´ı je rozdˇelit interval ha, bi na ˇradu menˇs´ıch subinterval˚ u a na kaˇzd´em z nich sestrojit interpolaˇcn´ı polynom niˇzˇs´ıho stupnˇe. Pˇredpokl´adejme, ˇze a = x0 < x1 < · · · < xi−1 < xi < xi+1 < · · · < xn−1 < xn = b
(3.14)
je dˇelen´ı intervalu ha, bi. V kaˇzd´em uzlu xi je pˇredeps´ana hodnota yi interpolantu. D´elku i-t´eho intervalu hxi−1 , xi i oznaˇc´ıme hi a d´elku nejdelˇs´ıho intervalu h, tj. hi = xi − xi−1 ,
i = 1, 2, . . . , n ,
h = max hi . 1≤i≤n
(3.15)
Aproximace funkc´ı
Interpolace
Hledan´y po ˇc´astech polynomick´y interpolant budeme znaˇcit S(x) a nazveme ho interpolaˇcn´ım splajnem. Na kaˇzd´em intervalu hxi−1 , xi i je S(x) polynom, jehoˇz pˇr´ısluˇsnost k i-t´emu intervalu vyznaˇc´ıme indexem i, tj. S(x) je na intervalu hxi−1 , xi i polynom Si (x) .
K vyj´adˇren´ı polynomu Si (x) s v´yhodou pouˇzijeme lok´aln´ı promˇennou s = x − xi−1 . Budeme tak´e pouˇz´ıvat prvn´ı pomˇernou diferenci δi =
yi − yi−1 yi − yi−1 = . xi − xi−1 hi
Aproximace funkc´ı
Interpolace
Line´ arn´ı interpolaˇ cn´ı splajn (d´ale jen line´arn´ı splajn) je to nejjednoduˇsˇs´ı, co n´as napadne: kaˇzd´e dva sousedn´ı body [xi−1 , yi−1 ] a [xi , yi ] spoj´ıme u ´seˇckou. Zˇrejmˇe Si (x) = yi−1 +
yi − yi−1 (x − xi−1 ) = yi−1 + sδi xi − xi−1
(3.16)
je line´arn´ı interpolaˇcn´ı polynom proch´azej´ıc´ı body [xi−1 , yi−1 ] a [xi , yi ]. Line´arn´ı splajn S(x) je spojit´a funkce, derivace S 0 (x) je vˇsak ve vnitˇrn´ıch uzlech obecnˇe nespojit´a. Jestliˇze yi = f (xi ), i = 0, 1, . . . , n, a f ∈ C 2 ha, bi, pak pro chybu interpolace plat´ı |f (x) − S(x)| ≤ Ch2 , kde x ∈ ha, bi je libovoln´e a C je konstanta nez´avisl´a na h.
(3.17)
Aproximace funkc´ı
Interpolace
Pro dostateˇcnˇe mnoho uzl˚ u lze uˇcinit chybu libovolnˇe malou. Napˇr´ıklad pˇri vykreslov´an´ı na obrazovku monitoru s rozliˇsen´ım 1024 x 768 bod˚ u jistˇe staˇc´ı pouˇz´ıt 1024 interpolaˇcn´ıch uzl˚ u k z´ısk´an´ı kvalitn´ıho grafu interpolovan´e funkce. Moˇzn´a bychom byli spokojeni, i kdybychom zvolili m´enˇe uzl˚ u, avˇsak pˇri postupn´em sniˇzov´an´ı poˇctu uzl˚ u by nutnˇe nastal okamˇzik, kdy by n´as jiˇz zaˇcaly ruˇsit ostr´e hrany grafu S(x) v interpolaˇcn´ıch uzlech. Pokud bychom souˇcasnˇe vykreslovali tak´e funkci f (x), pak by n´am zaˇcaly vadit tak´e viditeln´e odchylky interpolantu S(x) od interpolovan´e funkce f (x) mezi uzly interpolace. Pˇresnˇejˇs´ı interpolant bychom mohli sestrojit tak, ˇze bychom na intervalech hx0 , xk i, hxk , x2k i, . . . aproximovali f (x) pomoc´ı interpolaˇcn´ıch polynom˚ u stupnˇe (nejv´yˇse) k > 1. Chyba interpolace by v tom pˇr´ıpadˇe byla u ´mˇern´a hk+1 , derivace v uzlech xk , x2k , . . . by vˇsak z˚ ustaly nespojit´e. Velk´e k ale nem´a smysl pouˇz´ıvat, jinak bychom zase mohli dostat velk´e chyby mezi uzly interpolace a byli bychom zpˇet v situaci, kter´e jsme se pr´avˇe interpolac´ı po ˇc´astech chtˇeli vyhnout.
Aproximace funkc´ı
Interpolace
Velmi popul´arn´ı je aproximace po ˇc´astech kubick´ym polynomem, kter´a je nejen spojit´a, ale m´a tak´e spojit´e prvn´ı nebo dokonce i druh´e derivace. Popisu takov´ych aproximac´ı se budeme vˇenovat v n´asleduj´ıc´ıch odstavc´ıch. Hermit˚ uv kubick´ y interpolaˇ cn´ı splajn (d´ale jen Hermit˚ uv kubick´y splajn) hled´ame jako funkci S(x), kter´a a) je v intervalu ha, bi spojit´a spolu se svou prvn´ı derivac´ı, tj. S ∈ C 1 ha, bi, b) splˇ nuje interpolaˇcn´ı podm´ınky S(xi ) = yi ,
S 0 (xi ) = di ,
i = 0, 1, . . . , n ,
(3.18)
kde yi , di jsou pˇredepsan´e funkˇcn´ı hodnoty a derivace, c) je na kaˇzd´em intervalu hxi−1 , xi i, i = 1, 2, . . . , n, polynom (nejv´yˇse) tˇret´ıho stupnˇe. Si (x) je tedy kubick´y Hermit˚ uv polynom jednoznaˇcnˇe urˇcen´y podm´ınkami Si (xi−1 ) = yi−1 , Si0 (xi−1 ) = di−1 , Si (xi ) = yi , Si0 (xi ) = di .
Aproximace funkc´ı
Interpolace
Snadno ovˇeˇr´ıme, ˇze tyto podm´ınky jsou splnˇeny pro Si (x) = yi−1 + sdi−1 + s 2
di−1 − 2δi + di 3δi − 2di−1 − di . + s3 hi hi2
(3.19)
Funkce S(x) je spojit´a spolu se svou prvn´ı derivac´ı, druh´a derivace uˇz obecnˇe spojit´a nen´ı. Jestliˇze yi = f (xi ), di = f 0 (xi ), i = 0, 1, . . . , n, a f ∈ C 4 ha, bi, pak pro chybu interpolace plat´ı |f (x) − S(x)| ≤ Ch4 , (3.20) kde x ∈ ha, bi je libovoln´e a C je konstanta nez´avisl´a na h. Pokud derivace di nejsou k dispozici, mus´ıme je vypoˇc´ıtat pomoc´ı vhodnˇe zvolen´ych dodateˇcn´ych podm´ınek.
Aproximace funkc´ı
Interpolace
Hermit˚ uv kubick´ y interpolaˇ cn´ı splajn zachov´ avaj´ıc´ı tvar je jednou z moˇznost´ı. Derivace di se vyb´ıraj´ı tak, aby pr˚ ubˇeh S(x) kop´ıroval pr˚ ubˇeh line´arn´ıho splajnu proch´azej´ıc´ıho body [xi , yi ]. Konkr´etnˇe, je-li L(x) line´arn´ı splajn, poˇzadujeme: a) kdyˇz m´a L(x) ve vnitˇrn´ım uzlu lok´aln´ı extr´em, pak ho tam m´a tak´e S(x); b) kdyˇz L(x) mezi dvˇema sousedn´ımi uzly nekles´a, pak tam tak´e S(x) nekles´a, a podobnˇe, kdyˇz L(x) mezi dvˇema sousedn´ımi uzly neroste, pak tam neroste ani S(x). Jednu zdaˇrilou implementaci lze naj´ıt v MATLABu jako funkci pchip, viz [Matlab], [Moler]. V´ypoˇcet smˇernic di prob´ıh´a podle n´asleduj´ıc´ıch pravidel: a) Vnitˇrn´ı uzly. Jestliˇze smˇernice δi a δi+1 maj´ı opaˇcn´a znam´enka, nebo je-li nˇekter´a z nich rovna nule, tj. kdyˇz plat´ı δi δi+1 ≤ 0 ,
poloˇz´ıme
di = 0 .
V opaˇcn´em pˇr´ıpadˇe urˇc´ıme di jako zobecnˇen´y harmonick´y pr˚ umˇer smˇernic δi a δi+1 ze vztahu w1 w2 w 1 + w2 = + , di δi δi+1
kde w1 = hi + 2hi+1 , w2 = 2hi + hi+1 .
b) Okrajov´e uzly x0 a xn . Nejjednoduˇsˇs´ı je poloˇzit d0 = δ1 , dn = δn . V algoritmu pchip se ale pouˇz´ıv´a kvalitnˇejˇs´ı aproximace vych´azej´ıc´ı z kvadratick´e interpolace, viz [Moler].
Aproximace funkc´ı
Interpolace
Kubick´ y interpolaˇ cn´ı splajn (d´ale jen kubick´y splajn). Smˇernice di ve vnitˇrn´ıch uzlech m˚ uˇzeme urˇcit tak´e tak, ˇze poˇzadujeme, aby splajn S(x) mˇel nav´ıc spojitou tak´e druhou derivaci, tj. aby platilo 00 Si00 (xi ) = Si+1 (xi ) ,
i = 1, 2, . . . , n − 1 .
Derivov´an´ım (3.19) dostaneme Si00 (x) =
(6hi − 12s)δi + (6s − 4hi )di−1 + (6s − 2hi )di . hi2
Pro x = xi je s = hi , takˇze Si00 (xi ) =
−6δi + 2di−1 + 4di . hi
Pro x = xi−1 je s = 0 a Si00 (xi−1 ) =
6δi − 4di−1 − 2di . hi
(3.21)
Aproximace funkc´ı
Interpolace
Kdyˇz v posledn´ım vzorci zvˇetˇs´ıme index i o jedniˇcku, dostaneme 00 Si+1 (xi ) =
6δi+1 − 4di − 2di+1 . hi+1
Dosazen´ım do (3.21) tak dostaneme rovnice hi+1 di−1 + 2(hi+1 + hi )di + hi di+1 = 3(hi+1 δi + hi δi+1 ) ,
i = 1, 2, . . . , n − 1 . (3.22)
Jestliˇze pˇredep´ıˇseme okrajov´e podm´ınky S 0 (a) = da ,
S 0 (b) = db ,
(3.23)
pak v soustavˇe (3.22) dosad´ıme v prvn´ı rovnici d0 := da a ˇclen h2 da pˇrevedeme na pravou stranu, a v posledn´ı rovnici dosad´ıme dn := db a ˇclen hn−1 db pˇrevedeme na pravou stranu. Soustavu pak ˇreˇs´ıme a z´ısk´ame zb´yvaj´ıc´ı smˇernice di , i = 1, 2, . . . , n − 1.
Aproximace funkc´ı
Interpolace
Matice soustavy je tˇr´ıdiagon´aln´ı, diagon´alnˇe dominantn´ı, takˇze soustavu lze snadno vyˇreˇsit GEM upravenou pro soustavy s tˇr´ıdiagon´aln´ı matic´ı. Jestliˇze yi = f (xi ), i = 0, 1, . . . , n, d0 = f 0 (x0 ), dn = f 0 (xn ), a kdyˇz f ∈ C 4 ha, bi, pak pro chybu interpolace opˇet plat´ı (3.20). Obr´azek 3.3 potvrzuje, ˇze pomoc´ı kubick´eho splajnu lze pro data stejn´a jako v pˇr´ıkladu 3.4 dostat zcela vyhovuj´ıc´ı aproximaci Rungeovy funkce.
Aproximace funkc´ı
Interpolace
Kubický splajn
1
1/(1+25x2) 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
Obr. 3.3: Aproximace Rungeovy funkce kubick´ym splajnem
0.8
1
Aproximace funkc´ı
Interpolace
Kubick´y splajn m´a pozoruhodnou extr´em´aln´ı vlastnost, kterou si ted’ pop´ıˇseme. Oznaˇc´ıme V = {v ∈ C 2 ha, bi| v (xi ) = yi , i = 0, 1, . . . , n, v 0 (x0 ) = d0 , v 0 (xn ) = dn } mnoˇzinu vˇsech funkc´ı, kter´e maj´ı v intervalu ha, bi spojitou druhou derivaci, proch´azej´ı zadan´ymi body [xi , yi ], i = 0, 1, . . . , n, a v krajn´ıch bodech a = x0 Rb a xn = b jejich derivace nab´yvaj´ı pˇredepsan´ych hodnot d0 a dn . Pak a [v 00 (x)]2 dx nab´yv´a na mnoˇzinˇe funkc´ı V sv´e nejmenˇs´ı hodnoty pro kubick´y splajn S(x), tj. plat´ı Z b Z b 00 2 [S (x)] dx = min [v 00 (x)]2 dx . a
v ∈V
a
Tato vlastnost m´a zaj´ımavou interpretaci v mechanice. Je totiˇz zn´amo, ˇze ohybov´a energie homogenn´ıho izotropn´ıho prutu, jehoˇz stˇrednicov´a ˇc´ara m´a Rb rovnici y = v (x), x ∈ ha, bi, m´a pˇribliˇznˇe hodnotu E (v ) = c a [v 00 (x)]2 dx, kde c je vhodn´a konstanta. A d´ale je tak´e zn´amo, ˇze prut, kter´y je donucen proch´azet pevn´ymi interpolaˇcn´ımi body [xi , yi ] takov´ym zp˚ usobem, ˇze je nam´ah´an pouze silami p˚ usob´ıc´ımi kolmo k prutu, zaujme pozici s minim´aln´ı energi´ı. Extr´em´aln´ı vlastnost tedy tvrd´ı, ˇze kubick´y splajn aproximuje stˇrednicovou ˇc´aru takov´eho prutu.
Aproximace funkc´ı
Interpolace
Jestliˇze smˇernice da a db v krajn´ıch bodech intervalu ha, bi nezn´ame, osvˇedˇcil se postup, oznaˇcovan´y v anglicky psan´e literatuˇre jako not a knot. Myˇslenka je jednoduch´a: poˇzadujeme, aby splajn byl jednoduch´ym polynomem tˇret´ıho stupnˇe na prvn´ıch dvou intervalech, tj. pro x0 ≤ x ≤ x2 , a na posledn´ıch dvou intervalech, tj. pro xn−2 ≤ x ≤ xn . V uzlech x1 a xn−1 tedy uˇz nedoch´az´ı k napojov´an´ı dvou r˚ uzn´ych polynom˚ u, tj. uzel x1 a xn−1 uˇz nen´ı knot“, ˇcesky uzel splajnu, odtud ” n´azev postupu not a knot“. ” Polynomy S1 (x) a S2 (x) maj´ı v bodˇe x1 spoleˇcnou funkˇcn´ı hodnotu y1 , stejnou prvn´ı derivaci d1 a podle (3.21) tak´e stejnou druhou derivaci. Aby oba polynomy byly totoˇzn´e staˇc´ı, kdyˇz budou m´ıt v bodˇe x1 tak´e stejnou tˇret´ı derivaci. Stejnou u ´vahu lze prov´est v bodˇe xn−1 . Dost´av´ame tak okrajov´e podm´ınky S1000 (x1 ) = S2000 (x1 ) ,
000 Sn−1 (xn−1 ) = Sn000 (xn−1 ) .
(3.24)
Aproximace funkc´ı
Interpolace
Kdyˇz pomoc´ı (3.19) vyj´adˇr´ıme podm´ınku S1000 (x1 ) = S2000 (x1 ) a uprav´ıme ji pomoc´ı prvn´ı rovnice soustavy (3.22), dostaneme rovnici h2 d0 + (h2 + h1 )d1 = [(3h1 + 2h2 )h2 δ1 + h12 δ2 ]/(h1 + h2 ) .
(3.25)
000 Podobnˇe zpracujeme tak´e podm´ınku Sn−1 (xn−1 ) = Sn000 (xn−1 ) a dostaneme rovnici
(hn + hn−1 )dn−1 + hn−1 dn = [hn2 δn−1 + (2hn−1 + 3hn )hn−1 δn ]/(hn−1 + hn ) . (3.26) Nezn´am´e d0 , d1 , . . . , dn pak dostaneme jako ˇreˇsen´ı soustavy rovnic, z nichˇz prvn´ı je rovnice (3.25), pak n´asleduje n − 1 rovnic (3.22) a nakonec pˇrijde jeˇstˇe rovnice (3.26). Pouˇzijeme opˇet GEM upravenou pro soustavy s tˇr´ıdiagon´aln´ı matic´ı.
Aproximace funkc´ı
Interpolace
Shrnut´ı. Kubick´y interpolaˇcn´ı splajn S(x) je funkce, kter´a a) je v intervalu ha, bi spojit´a spolu se svou prvn´ı a druhou derivac´ı, tj. S ∈ C 2 ha, bi, b) splˇ nuje interpolaˇcn´ı podm´ınky S(xi ) = yi , i = 0, 1, . . . , n, kde yi jsou pˇredepsan´e funkˇcn´ı hodnoty, c) je na kaˇzd´em intervalu hxi−1 , xi i polynom (nejv´yˇse) tˇret´ıho stupnˇe, d) splˇ nuje okrajov´e podm´ınky (3.23) nebo (3.24).
Aproximace funkc´ı
Interpolace
Pˇr´ıklad 3.6. Oblouk [x(t), y (t)] ≡ [cos t, sin t], t ∈ h0, π/2i, budeme aproximovat kˇrivkou [S x (t), S y (t)], kde S x (t) resp. S y (t) jsou kubick´e splajny funkc´ı cos t resp. sin t na intervalu h0, π/2i. Interval h0, π/2i rozdˇel´ıme na n stejn´ych d´ılk˚ u, takˇze ti = πi/(2n). Oznaˇc´ıme dix = [S x ]0 (ti ), diy = [S y ]0 (ti ). Protoˇze x 0 (t) = − sin t, y 0 (t) = cos t, poloˇz´ıme d0x = − sin 0 = 0 , dnx = − sin(π/2) = −1 , d0y = cos 0 = 1 , dny = cos(π/2) = 0 . V dalˇs´ım budeme uvaˇzovat n = 3. Soustavu rovnic (3.22) sestav´ıme zvl´aˇst’ pro x-ovou a zvl´aˇst’ pro y -ovou sloˇzku. Matice obou soustav je stejn´a, prav´e strany jsou vˇsak r˚ uzn´e. Na dalˇs´ım ˇr´adku je uvedena soustava rovnic se dvˇema prav´ymi stranami a jej´ı ˇreˇsen´ı: 0 1 √ . y 1 1 x 1 4 1 0 d1y = −d2x = 0,865537, −√ 1 2 2 3 d1x d1y = 3 π . y 1 6 0 1 4 1 d2 d2 d2 = −d1x = 0,499813. − 12 3 2 −1 0 Six (t) a Siy (t) urˇc´ıme podle (3.19). Napˇr´ıklad pro t ∈ hπ/6, π/3i dostaneme . S2x (t) = 0,8660 − 0,4998(t − 61 π) − 0,4431(t − 16 π)2 + 0,1195(t − 61 π)3 , . S2y (t) = 0,5000 + 0,8655(t − 16 π) − 0,2554(t − 16 π)2 − 0,1195(t − 16 π)3 .
2
Aproximace funkc´ı
Interpolace
Konstrukce kubick´ eho interpolaˇ cn´ıho splajnu uˇ zit´ım druh´ ych derivac´ı. Snadno ovˇeˇr´ıme, ˇze kubick´y polynom Si (x) = yi−1 + s
6δi − 2hi Mi−1 − hi Mi Mi−1 Mi − Mi−1 + s2 + s3 . 6 2 6hi
(3.27)
splˇ nuje podm´ınky Si (xi−1 ) = yi−1 , Si00 (xi−1 ) = Mi−1 , Si (xi ) = yi , Si00 (xi ) = Mi . Funkce S(x), kter´a je na kaˇzd´em intervalu hxi−1 , xi i definov´ana pˇredpisem (3.27), proto zˇrejmˇe splˇ nuje podm´ınky S(xi ) = yi , S 00 (xi ) = Mi , i = 0, 1, . . . , n. S(x) je tedy na intervalu ha, bi spojit´a a m´a v nˇem spojitou druhou derivaci. Abychom dostali kubick´y splajn, mus´ı m´ıt S(x) v ha, bi spojitou tak´e prvn´ı derivaci. Protoˇze nespojitost S 0 (x) m˚ uˇze nastat jedinˇe ve vnitˇrn´ıch uzlech, staˇc´ı poˇzadovat 0 Si0 (xi ) = Si+1 (xi ) ,
i = 1, 2, . . . , n − 1 .
(3.28)
Aproximace funkc´ı
Interpolace
Vyj´adˇr´ıme-li (3.28) pomoc´ı (3.27), dostaneme rovnice hi Mi−1 +2(hi +hi+1 )Mi +hi+1 Mi+1 = 6(δi+1 −δi ) ,
i = 1, 2, . . . , n−1 . (3.29)
Kdyˇz zvol´ıme okrajov´e podm´ınky S 00 (a) = Ma ,
S 00 (b) = Mb ,
(3.30)
dosad´ıme je do (3.29), soustavu rovnic vyˇreˇs´ıme a z´ısk´ame Mi , i = 1, 2, . . . , n − 1. Vˇsimnˇete si, ˇze matice soustavy (3.29) je symetrick´a. Je samozˇrejmˇe moˇzn´e uvaˇzovat tak´e jin´e typy okrajov´ych podm´ınek, napˇr. (3.23) nebo (3.24). Kubick´y splajn s vlastnost´ı S 00 (a) = S 00 (b) = 0 se naz´yv´a pˇrirozen´y kubick´y splajn. Je zn´amo, ˇze pˇrirozen´y kubick´y splajn aproximuje pr˚ uhyb prostˇe podepˇren´eho (homogenn´ıho izotropn´ıho) nosn´ıku nam´ahan´eho (silami p˚ usob´ıc´ımi kolmo k nosn´ıku) tak, ˇze tento nosn´ık proch´az´ı body [xi , yi ]. Mi maj´ı v´yznam ohybov´ych moment˚ u v [xi , yi ].
Aproximace funkc´ı
Interpolace
Interpolace funkc´ı v´ıce promˇ enn´ ych
Omez´ıme se na pˇr´ıpad, kdy f je funkce dvou promˇenn´ych definovan´a v oblasti Ω. Interpolace po ˇ c´ astech line´ arn´ı. Pˇredpokl´adejme, ˇze Ω je mnoho´ uheln´ık. Oblast uheln´ık˚ u T1 , T2 , . . . , Tm , Ω triangulujeme, tj. vyj´adˇr´ıme ji jako sjednocen´ı troj´ z nichˇz kaˇzd´e dva r˚ uzn´e bud’to nemaj´ı ˇz´adn´y spoleˇcn´y bod nebo maj´ı spoleˇcn´y vrchol popˇr´ıpadˇe maj´ı spoleˇcnou stranu. Mnoˇzinu T = {Tk }m sech takov´ych k=1 vˇ troj´ uheln´ık˚ u naz´yv´ame triangulac´ı oblasti Ω. Vrcholy troj´ uheln´ık˚ u triangulace oznaˇc´ıme P1 = [x1 , y1 ], P2 = [x2 , y2 ], . . . , Pn = [xn , yn ] a nazveme je uzly triangulace. Pˇredpokl´adejme, ˇze v kaˇzd´em uzlu Pi je pˇredeps´ana hodnota fi = f (xi , yi ) interpolovan´e funkce f .
Aproximace funkc´ı
Interpolace
Po ˇc´astech line´arn´ım interpolantem funkce f na oblasti Ω rozum´ıme funkci S, kter´a je v Ω spojit´a, splˇ nuje interpolaˇcn´ı podm´ınky S(xi , yi ) = fi , i = 1, 2, . . . , n, a kter´a je na kaˇzd´em troj´ uheln´ıku Tk ∈ T line´arn´ı. Na Tk je tedy z = S(x, y ) ≡ Sk (x, y ) rovnice roviny urˇcen´e hodnotami funkce f ve vrcholech Tk . Pˇripomeˇ nme, ˇze rovnice roviny proch´azej´ıc´ı body [xa , ya , za ], [xb , yb , zb ] a [xc , yc , zc ] m˚ uˇze b´yt vyj´adˇrena ve tvaru x − xa y − ya z − za xb − xa yb − ya zb − za = 0 . xc − xa yc − ya zc − za Vypoˇc´ıtat hodnotu z = S(x, y ) pro (x, y ) ∈ Ω je snadn´e: urˇc´ıme troj´ uheln´ık Tk , v nˇemˇz bod [x, y ] leˇz´ı, a vypoˇcteme z = Sk (x, y ). Chyba interpolace je t´ım menˇs´ı, ˇc´ım jemnˇejˇs´ı triangulaci zvol´ıme. Kdyˇz f ∈ C 2 (Ω) (tj. kdyˇz f je v Ω spojit´a spolu se sv´ymi prvn´ımi a druh´ymi parci´aln´ımi derivacemi), pak |f (x, y ) − S(x, y )| ≤ Ch2 , kde h je nejdelˇs´ı strana troj´ uheln´ık˚ u triangulace a C je konstanta nez´avisl´a na h.
Aproximace funkc´ı
Interpolace
Interpolace po ˇ c´ astech biline´ arn´ı. Pˇredpokl´adejme, ˇze Ω = ha, bi × hc, di je obd´eln´ık. Pomoc´ı dˇelen´ı a = x0 < x1 < · · · < xn = b, c = y0 < y1 < · · · < ym = d rozloˇz´ıme v´ychoz´ı obd´eln´ık Ω na menˇs´ı obd´eln´ıky Rij = {(x, y ) | xi−1 ≤ x ≤ xi , yj−1 ≤ y ≤ yj }, i = 1, 2, . . . , n, j = 1, 2, . . . , m. Pˇredpokl´adejme, ˇze v uzlech [xi , yj ] jsou pˇredeps´any hodnoty fij = f (xi , yj ) funkce f. Na obd´eln´ıku Rij definujeme funkci Sij (x, y ) = fi−1,j−1
yj − y x − xi−1 yj − y xi − x + fi,j−1 + xi − xi−1 yj − yj−1 xi − xi−1 yj − yj−1
+ fi−1,j
xi − x y − yj−1 x − xi−1 y − yj−1 + fij . xi − xi−1 yj − yj−1 xi − xi−1 yj − yj−1
Funkce Sij je biline´arn´ı , tj. pro pevn´e x = C je Sij (C , y ) line´arn´ı funkce promˇenn´e y a pro pevn´e y = D je Sij (x, D) line´arn´ı funkce promˇenn´e x. Funkce Sij je interpolant funkce f na obd´eln´ıku Rij , tj. Sij nab´yv´a ve vrcholech [xi−1 , yj−1 ], [xi , yj−1 ], [xi−1 , yj ] a [xi , yj ] stejn´ych hodnot jako funkce f , jak se snadno pˇresvˇedˇc´ıme.
Aproximace funkc´ı
Interpolace
Na Ω definujeme funkci S pˇredpisem S(x, y ) = Sij (x, y ) pro (x, y ) ∈ Rij , i = 1, 2, . . . , n, j = 1, 2, . . . , m. Funkce S je po ˇc´astech ( = po obd´eln´ıc´ıch Rij ) biline´arn´ı. Protoˇze S(xi , yj ) = fij , i = 0, 1, . . . , n, j = 0, 1, . . . , m, ˇrekneme, ˇze S je po ˇc´astech biline´arn´ı interpolant funkce f na obd´eln´ıku Ω. Snadno ovˇeˇr´ıme, ˇze S je v Ω spojit´a (staˇc´ı si uvˇedomit, ˇze Sij , a tedy tak´e S, je na kaˇzd´e stranˇe obd´eln´ıka Rij jednoznaˇcnˇe urˇcena pomoc´ı hodnot funkce f v koncov´ych bodech t´eto strany). Kdyˇz f ∈ C 2 (Ω), pak pro chybu interpolace plat´ı odhad |S(x, y )−f (x, y )| ≤ C (h2 +k 2 ) , a C je konstanta nez´avisl´a na h, k.
kde h = max (xi −xi−1 ) , k = max (yj −yj−1 ) 1≤i≤n
1≤j≤m
Aproximace funkc´ı
Obsah
3
Aproximace funkc´ı Aproximace a interpolace Interpolace Interpolace polynomem Interpolaˇ cn´ı splajny Interpolace funkc´ı v´ıce promˇ enn´ ych
Metoda nejmenˇs´ıch ˇctverc˚ u Literatura
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
oznaˇcuje postup pro pˇribliˇzn´e ˇreˇsen´ı pˇreurˇcen´ych nebo nepˇresnˇe zadan´ych soustav rovnic, zaloˇzen´y na minimalizaci kvadr´at˚ u jejich rezidu´ı. Prokl´ ad´ an´ı dat kˇrivkami je v´yznamn´a skupina u ´loh, kter´e lze metodou nejmenˇs´ıch ˇctverc˚ u ˇreˇsit (v anglicky psan´e literatuˇre se pro tyto aplikace pouˇz´ıv´a ´loh´ach jde. oznaˇcen´ı curve fitting). Popiˇsme si, o co v takov´ych u Necht’ tedy t je nez´avisle promˇenn´a, napˇr´ıklad ˇcas, a y (t) je nezn´am´a funkce promˇenn´e t, kterou chceme aproximovat. Pˇredpokl´adejme, ˇze jsme provedli m pozorov´an´ı, tj. hodnoty y byly zmˇeˇreny pro urˇcit´e (navz´ajem r˚ uzn´e) hodnoty t: yi = y (ti ) ,
i = 1, 2, . . . , m .
Naˇs´ım z´amˇerem je modelovat y (t) line´arn´ı kombinac´ı n b´azov´ych funkc´ı pro nˇejak´e n ≤ m: y (t) ≈ x1 ϕ1 (t) + x2 ϕ2 (t) + · · · + xn ϕn (t) := Rn (t) . B´azov´e funkce navrhujeme podle oˇcek´avan´eho pr˚ ubˇehu nezn´am´e funkce y (t), urˇcit se maj´ı parametry x1 , x2 , . . . , xn . Funkce Rn (t) se ve statistice naz´yv´a line´arn´ı regresn´ı funkce.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
N´avrhov´a matice A modelu je obd´eln´ıkov´a matice, kter´a m´a m ˇr´adk˚ u a n sloupc˚ u: ϕ1 (t1 ) ϕ2 (t1 ) . . . ϕn (t1 ) ϕ1 (t2 ) ϕ2 (t2 ) . . . ϕn (t2 ) A= .. .. .. ≡ (ϕ1 , ϕ2 , . . . , ϕn ) , . . . ϕ1 (tm ) ϕ2 (tm ) . . . ϕn (tm ) kde ϕi = (ϕi (t1 ), ϕi (t2 ), . . . ϕi (tm ))T je i-t´y sloupec A. Maticov´a formulace modelu je y ≈ Ax , kde y = (y1 , y2 , . . . , ym )T jsou namˇeˇren´a data a x = (x1 , x2 , . . . , xn )T je vektor nezn´am´ych parametr˚ u. Symbol ≈ vyjadˇruje pˇribliˇznou rovnost.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
y
i 2 i
r
y
i+1
2 i+1
r =y −R (t ) i
i
n
r
i
2
ri−1 y
i−1
r2m
ym 2
r2
y2 y1
Σm r2 → min i=1 i
r21 t1
t2
ti−1
ti
Obr. 3.4: Princip metody nejmenˇs´ıch ˇctverc˚ u
ti+1
tm
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Rezidua jsou rozd´ıly mezi pozorov´an´ımi a modelem: ri = yi − Rn (ti ) = yi −
n X
ϕj (ti )xj ≡ yi −
j=1
n X
aij xj ,
i = 1, 2, . . . , n ,
j=1
kde aij = ϕj (ti ). V maticov´em z´apisu r = y − Ax .
(3.31)
Parametry xi chceme urˇcit tak, aby rezidua byla co nejmenˇs´ı. Metodu nejmenˇs´ıch ˇctverc˚ u dostaneme, kdyˇz minimalizujeme souˇcet ˇctverc˚ u rezidu´ı: krk2 :=
m X i=1
ri2 → min .
(3.32)
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Nˇekdy se pouˇz´ıv´a tak´e v´aˇzen´a metoda nejmenˇs´ıch ˇctverc˚ u: kdyˇz jsou nˇekter´a pozorov´an´ı d˚ uleˇzitˇejˇs´ı nebo pˇresnˇejˇs´ı neˇz ostatn´ı, pak m˚ uˇzeme pˇrisoudit jednotliv´ym pozorov´an´ım r˚ uzn´e v´ahy wi > 0 a minimalizovat souˇcet v´aˇzen´ych ˇctverc˚ u m X 2 krkw := wi ri2 → min . i=1
Je-li napˇr´ıklad chyba i-t´eho pozorov´an´ı pˇribliˇznˇe rovna ei , zvol´ıme wi = 1/ei . Je dobr´e si uvˇedomit, ˇze kaˇzdou metodu pro ˇreˇsen´ı nev´aˇzen´e metody nejmenˇs´ıch ˇctverc˚ u lze pouˇz´ıt pro ˇreˇsen´ı metody v´aˇzen´e: staˇc´ı pron´asobit yi a i-t´y ˇr´adek A √ souˇcinitelem wi .
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Pˇribliˇzn´e ˇreˇsen´ı pˇreurˇcen´e soustavy rovnic Ax = y (tj. rovnic je v´ıc neˇz nezn´am´ych), kter´e minimalizuje d´elku rezidua r = y − Ax, se naz´yv´a ˇreˇsen´ı soustavy line´arn´ıch rovnic metodou nejmenˇs´ıch ˇctverc˚ u. ˇ sen´ı minimalizaˇcn´ı u ´lohy (3.32) mus´ı splˇ novat Norm´ aln´ı soustava rovnic. Reˇ nutnou podm´ınku pro extr´em: 2 m n 2 X X ∂krk ∂ yi − k = 1, 2, . . . , n . = aij xj = 0 , ∂xk ∂xk i=1
j=1
Kdyˇz provedeme naznaˇcen´e derivov´an´ı, dostaneme m n X X ∂krk2 yi − =2 aij xj (−aik ) = 0 ∂xk i=1
a odtud
n m X X j=1
! aik aij
i=1
xj =
j=1
m X
aik yi ,
k = 1, 2, . . . , n ,
i=1
coˇz lze zapsat maticovˇe jako AT Ax = AT y .
(3.33)
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Soustava line´arn´ıch rovnic (3.33) je zn´ama jako norm´aln´ı soustava rovnic. Kdyˇz jsou sloupce matice A line´arnˇe nez´avisl´e, je matice G := AT A pozitivnˇe definitn´ı ´lohy (3.32), tj. plat´ı a ˇreˇsen´ı x∗ norm´aln´ı soustavy rovnic je jedin´e ˇreˇsen´ı u ky − Ax∗ k2 = min ky − Axk2 . x
Vyj´adˇr´ıme-li norm´aln´ı soustavu rovnic pomoc´ı vektor˚ u ϕi , dostaneme (ϕ1 , ϕ1 ) (ϕ , ϕ ) 2 1 .. . (ϕn , ϕ1 )
(ϕ1 , ϕ2 ) . . . (ϕ1 , ϕn ) x1 (ϕ1 , y) (ϕ2 , ϕ2 ) . . . (ϕ2 , ϕn ) x2 (ϕ2 , y) = .. .. .. .. , . . . ... . (ϕn , ϕ2 ) (ϕn , ϕn ) xn (ϕn , y)
kde (ϕk , ϕj ) =
m X i=1
ϕk (ti )ϕj (ti )
a
(ϕk , y) =
m X
(3.34)
ϕk (ti )yi
i=1
jsou skal´arn´ı souˇciny vektor˚ u ϕk , ϕj a ϕk , y. Matice G soustavy (3.34) se naz´yv´a Gramova matice soustavy vektor˚ u ϕj , j = 1, 2, . . . , n.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Pˇri n´avrhu aproximace Rn (t) bychom mˇeli vyb´ırat funkce ϕi (t) tak, aby sloupce ϕi matice A byly line´arnˇe nez´avisl´e. V opaˇcn´em pˇr´ıpadˇe, jak se d´a uk´azat, m´a u ´loha (3.32) nekoneˇcnˇe mnoho ˇreˇsen´ı, coˇz je zˇrejmˇe neˇz´adouc´ı. Uved’me si dva v´yznamn´e speci´aln´ı pˇr´ıpady, pro kter´e jsou sloupce matice A line´arnˇe nez´avisl´e (d˚ ukaz lze naj´ıt napˇr. v [Berezin]): a) ϕj (t) je polynom stupnˇe j − 1, napˇr. ϕj (t) = t j−1 , j = 1, 2, . . . , n; b) pro n = 2N + 1, kde N je cel´e nez´aporn´e ˇc´ıslo, vol´ıme ϕ1 (t) = 1,
ϕ2k (t) = cos kt,
ϕ2k+1 (t) = sin kt,
k = 1, 2, . . . , N ,
a ˇcasy pozorov´an´ı“ ti vyb´ır´ame z intervaluhc, c + 2π), kde c je libovoln´e ” ˇc´ıslo. Aproximace Rn (t) je v pˇr´ıpadˇe a) algebraick´y polynom a v pˇr´ıpadˇe b) trigonometrick´y polynom.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Kdyˇz je m = n a matice A je regul´arn´ı, pak x∗ = A−1 y a r = o, tj. Rn (ti ) = yi , i = 1, 2, . . . , m. Pokud jsou vˇsak namˇeˇren´a data yi zat´ıˇzena chybami, pak nen´ı u ´ˇceln´e, aby funkce Rn (t) tyto chyby kop´ırovala. Naopak, aby Rn (t) vˇerohodnˇe vystihovala (rekonstruovala) nezn´amou funkci y (t), je ˇz´adouc´ı, aby Rn (t) namˇeˇren´a data vyrovn´avala (vyhlazovala). To je ale moˇzn´e jen tehdy, kdyˇz poˇcet pozorov´an´ı m je v´yraznˇe vˇetˇs´ı neˇz poˇcet n n´avrhov´ych parametr˚ u, tj. pro m n.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Pˇr´ıklad 3.7. Pro data pˇredepsan´a tabulkou ti
0
0,5
1
1,5
2
2,5
3
yi
3,57
2,99
2,62
2,33
2,22
2,10
2,05
urˇc´ıme aproximaci R2 (t) = x1 + x2 e −t metodou nejmenˇs´ıch ˇctverc˚ u. Zˇrejmˇe ϕ1 (t) = 1 a ϕ2 (t) = e −t . Norm´aln´ı soustava rovnic je tvaru 7 7 7 P P P 1 · yi x1 1 · e −ti 1·1 i=1 i=1 i=1 . = P 7 7 7 P −ti P −ti −ti −ti e · yi x2 e ·1 e ·e i=1
i=1
i=1
Vypoˇcteme-li pˇr´ısluˇsn´e sumy, dostaneme soustavu (zobrazujeme nejv´yˇse 4 desetinn´a m´ısta) ! ! ! 7 2,4647 x1 17,88 = , 2,4647 1,5805 x2 7,4422 . . jej´ıˇz ˇreˇsen´ı je x1 = 1,9879 a x2 = 1,6087. Hledan´a aproximace . . −t R2 (t) = 1,99 + 1,61e a krk = 0,0651. 2
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Pˇr´ıklad 3.8. Daty z pˇredchoz´ıho pˇr´ıkladu proloˇz´ıme postupnˇe polynomy prvn´ıho, druh´eho a tˇret´ıho stupnˇe. Za b´azov´e vol´ıme funkce ϕj (t) = t j−1 , kde j = 1, 2, . . . , n a n = 2, 3, 4. a) Polynom prvn´ıho stupnˇe. Pro ϕ1 (t) = 1 a ϕ2 (t) = t dostaneme norm´aln´ı soustavu rovnic ! ! ! 7 10,5 x1 17,88 = , 10,5 22,75 x2 23,45 . . . kter´a m´a ˇreˇsen´ı x1 = 3,28 a x2 = −0,48, takˇze R2 (t) = 3,28 − 0,48t . a krk = 0,4756. Aproximace line´arn´ım polynomem tedy nen´ı vhodn´a, nebot’ je m´alo pˇresn´a. b) Polynom druh´eho stupnˇe. Norm´aln´ı soustava rovnic 7 10,5 22,75 x1 17,88 10,5 22,75 55,125 x2 = 23,45 22,75 55,125 142,1875 x3 49,0625 . . . m´a ˇreˇsen´ı x1 = 3,53, x2 = −1,09 a x3 = 0,20, takˇze . . R3 (t) = 3,53 − 1,09t + 0,2t 2 a krk = 0,1006. Velikost rezidua se zmenˇsila, je vˇsak st´ale vˇetˇs´ı neˇz v pˇr´ıkladu 3.7.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
c) Polynom tˇret´ıho stupnˇe. Norm´aln´ı soustava rovnic (zobrazujeme nejv´yˇse 4 desetinn´a m´ısta) 7 10,5 22,75 55,125 x1 17,88 10,5 22,75 55,125 142,1875 x2 23,45 = 22,75 x3 49,0625 55,125 142,1875 381,2813 55,125
142,1875
381,2813
1049,5469
x4
116,78
. . . . m´a ˇreˇsen´ı x1 = 3,57, x2 = −1,35, x3 = 0,43 a x4 = −0,05, takˇze . . R4 (t) = 3,57 − 1,35t + 0,43t 2 − 0,05t 3 a krk = 0,0360.
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
Pokud bychom stupeˇ n polynomu d´ale zvyˇsovali, zjistili bychom, ˇze polynom R7 (t) ˇsest´eho stupnˇe proch´az´ı vˇsemi body [ti , yi ], takˇze je to interpolaˇcn´ı polynom. Vˇsimnˇete si jeˇstˇe prvk˚ u Gramov´ych matic: s rostouc´ım ˇr´adem nejvˇetˇs´ı koeficient prudce roste. Spolu s n´ım prudce roste tak´e ˇc´ıslo podm´ınˇenosti Gramov´ych matic. Do n´asleduj´ıc´ı tabulky jsme zaznamenali ˇc´ısla podm´ınˇenosti κ2 (G) pro n = 2, 3, . . . , 7 (spoˇcten´a v MATLABu pomoc´ı maticov´e k · k2 normy) n
2
3
4
5
6
7
κ2 (G)
16
4,27 · 102
1,91 · 104
1,20 · 106
1,17 · 108
2,31 · 1010
Pokud bychom tabulku dat P z pˇr´ıkladu 3.7 rozˇs´ıˇrili o dalˇs´ı sloupce, mohli bychom n teoreticky v regresn´ı funkci j=1 xj t j−1 zvˇetˇsovat n (aˇz do poˇctu m sloupc˚ u). Prakticky to vˇsak moˇzn´e nen´ı, nebot’ pro velk´e n by ˇc´ıslo podm´ınˇenosti Gramovy matice bylo ne´ unosnˇe velk´e. Regresn´ı funkce Rn (t) s b´azov´ymi funkcemi ϕj (t) = t j−1 , j = 1, 2, . . . , n, se proto pro vˇetˇs´ı n nepouˇz´ıvaj´ı. Pokud potˇrebujeme polynomickou regresn´ı funkci vyˇsˇs´ıho stupnˇe, mˇeli bychom pouˇz´ıt tzv. ortogon´aln´ı polynomy, viz napˇr. [Stoer, Bulirsch]. 2
Aproximace funkc´ı
Metoda nejmenˇs´ıch ˇ ctverc˚ u
ˇ ıslo podm´ınˇenosti κ2 (A) je definov´ano ˇ sen´ı pˇreurˇ Reˇ cen´ ych soustav rovnic. C´ tak´e pro obd´eln´ıkovou matici A a plat´ı κ2 (AT A) = [κ2 (A)]2 . To znamen´a, ˇze ˇc´ıslo podm´ınˇenosti Gramovy matice AT A je v´yraznˇe vˇetˇs´ı neˇz ˇc´ıslo podm´ınˇenosti n´avrhov´e matice A. Norm´aln´ı rovnice se proto k ˇreˇsen´ı rozs´ahl´ych soustav pˇreurˇcen´ych rovnic nehod´ı. Existuj´ı lepˇs´ı postupy vyuˇz´ıvaj´ıc´ı tzv. QR rozklad matice A nebo tzv. pseudoinverzi matice A,viz napˇr. [Stoer, Bulirsch], [Moler]. Obˇe tyto metody jsou stabiln´ı a Gramovu matici nepouˇz´ıvaj´ı. Kvalitn´ı implementace jsou dostupn´e napˇr. v MATLABu, viz [Matlab]. Tyto metody se tak´e bez pot´ıˇz´ı vypoˇr´adaj´ı s pˇr´ıpadem, kdyˇz jsou sloupce matice A line´arnˇe z´avisl´e. D´a se uk´azat, ˇze v tom pˇr´ıpadˇe m´a pˇreurˇcen´a soustava rovnic nekoneˇcnˇe mnoho ˇreˇsen´ı (ve smyslu metody nejmenˇs´ıch ˇctverc˚ u, tj. m´a nekoneˇcnˇe mnoho ˇreˇsen´ı, kter´a maj´ı stejnou d´elku rezidua). Jestliˇze A+ je pseudoinverze matice A, pak A+ y je jednoznaˇcnˇe definovan´e ˇreˇsen´ı, kter´e minimalizuje d´elku rezidua, a pokud je takov´ych ˇreˇsen´ı nekoneˇcnˇe mnoho, pak A+ y je to z nich, kter´e m´a nejmenˇs´ı d´elku.
Aproximace funkc´ı
Obsah
3
Aproximace funkc´ı Aproximace a interpolace Interpolace Interpolace polynomem Interpolaˇ cn´ı splajny Interpolace funkc´ı v´ıce promˇ enn´ ych
Metoda nejmenˇs´ıch ˇctverc˚ u Literatura
Literatura
Aproximace funkc´ı
Literatura
ˇ ˇ I.S. Berezin, N.P. Zidkov: Cislennyje metody I,II, Nauka, Moskva, 1962. G. Dahlquist, G. ˚ A Bj˝ork: Numerical Methods, Prentice-Hall, Englewood Cliffs, NJ, 1974. M. Fiedler: Speci´aln´ı matice a jejich pouˇzit´ı v numerick´e matematice, SNTL, Praha, 1981. D. Hanselman, B. Littlefield: Mastering MATLAB 7, Pearson Prentice Hall, Upper Saddle River, NJ, 2005. G. H¨ ammerlin, K. H. Hoffmann: Numerical Mathematics, Springer-Verlag, Berlin, 1991. M. T. Heath: Scientific Computing. An Introductory Survey, McGraw-Hill, New York, 2002. I. Horov´ a, J. Zelinka: Numerick´e metody, uˇcebn´ı text Masarykovy univerzity, Brno, 2004. J. Kobza: Splajny, uˇcebn´ı text Palack´eho univerzity, Olomouc, 1993. J. Klapka, J. Dvoˇr´ak, P. Popela: Metody operaˇcn´ıho v´yzkumu, uˇcebn´ı text, FSI VUT Brno, 2001.
Aproximace funkc´ı
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´e 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.
Aproximace funkc´ı
Literatura
P. Pˇrikryl: Numerick´e metody matematick´e anal´yzy, SNTL, Praha, 1985. A. R. Ralston: Z´aklady numerick´e matematiky, Academia, Praha, 1973. K. Rektorys: Pˇrehled uˇzit´e matematiky I,II, Prometheus, Praha, 1995. J. Stoer, R. Bulirsch: Introduction to Numerical Analysis, Springer-Verlag, New York, 1993. E. Vit´asek: Numerick´e 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.