Funktioiden approksimointi ja interpolointi Keijo Ruotsalainen Division of Mathematics
interpolaatio-ongelma 8 Eksponenttifunktion exp(x) interpolointi 3.5 Funktion e^{0.25x} \sin(x) interpolointi 7 3 Funktion kuvaaja punaisella 6 2.5 Interpolaation kuvaaja vihreã llã 5 2 4 1.5 3 2 1 1 0.5 0 2 1.5 1 0.5 0 0.5 1 1.5 2 0 0 0.5 1 1.5 2 2.5 3 3.5 4 Keijo Ruotsalainen Matematiikan jaos 2 / 22
Interpolaatio Funktion approksimointi, kun funktion arvot tunnetaan äärellisessä pistejoukossa Olkoon (x i,y i ), i = 1,...,n, annetut n+1 pisteparia. Tehtävä: Määrää funktio Φ(x) siten, että Φ(x i ) = y i, i = 0,...,n Sanotaan, että Φ interpoloi arvoja y i pisteissä x i. Polynomi-interpolaatio, jos Φ(x) on algebrallinen polynomi Trigonometrinen interpolaatio, jos Φ(x) on trigonometrinen polynomi, so. sini- ja kosinifunktioiden summa Paloittain polynomi-interpolaatio, jos Φ(x) on paloittain polynomi Keijo Ruotsalainen Matematiikan jaos 3 / 22
Polynomi-interpolaatio Interpolaatiopisteet (x 0,x 1,...,x n ) ja f(x) annettu funktio. Määrää n-asteinen polynomi P siten, että P(x i ) = f i, i = 0,...,n. Lause 4.1 Interpolaatio-ongelmalla on yksikäsitteisesti määrätty ratkaisu P n (x) = n f i L i (x), L i (x) = i=0 n j = 0 i j x x j x i x j. missä L i (x) on Lagrange n kantapolynomi: Keijo Ruotsalainen Matematiikan jaos 4 / 22
Newtonin esitys Interpolaatiopolynomia haetaan muodossa 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 n 1 ). Polynomin kertoimet ratkaistaan interpolaatioehdosta P n (x j ) = f j. Keijo Ruotsalainen Matematiikan jaos 5 / 22
Yhtälöryhmä Yhtälöryhmä on alakolmiomuotoa f 0 = a 0 f 1 = a 0 +(x 1 x 0 )a 1 f 2 = a 0 + a 1 (x 2 x 0 )+a 2 (x 2 x 0 )(x 2 x 1 ). =. f n = a 0 + +a n (x n x 0 ) (x n x n 1 ), jolla ilmeisesti on yksikäsitteinen ratkaisu. Keijo Ruotsalainen Matematiikan jaos 6 / 22
Jaetut erotukset Jaetut erotukset Olkoon x = (x 1,...,x n ) ja f = (f 1,...,f n ) kaksi vektoria. Jaettu erotus f[x i,...,x i+k ] määritellään rekursiivisesti, kun j = i + 1,...,i + k: f[x i ] = f i f[x i,...,x j ] = f[x i+1,...,x j ] f[x i,...,x j 1 ] x j x i Keijo Ruotsalainen Matematiikan jaos 7 / 22
Newtonin erotustaulukko x 0 x 1 x 2 x 3 x 4. f 0 f 1 f 2 f 3 f 4. f[x 0,x 1 ] f[x 1,x 2 ] f[x 2,x 3 ] f[x 3,x 4 ]. f[x 0,x 1,x 2 ] f[x 1,x 2,x 3 ] f[x 2,x 3,x 4 ]. f[x 0,x 1,x 2,x 3 ] f[x 1,x 2,x 3,x 4 ]. f[x 0,x 1,x 2,x 3,x 4 ]. Lause 4.2 Newtonin interpolaatiopolynomin kertoimet ovat a j = f[x 0,x 1,,x j ], j = 0,1,2,,n. Keijo Ruotsalainen Matematiikan jaos 8 / 22
Newtonin esityksen kertoimien laskeminen Algoritmi Alustus: a[i] = f(i), i = 0,...,n. for (j = 1; j <= n; j ++) for (i = n; i >= j; i ) a[i] = (a[i] a[i 1])/(x[i] x[i j]) Kertoimien laskemiseen tarvitaan n 2 kertolaskua 1 2 n2 yhteenlaskua. Keijo Ruotsalainen Matematiikan jaos 9 / 22
Newtonin interpolaatiopolynomin laskeminen Newtonin polynomin kertoimet a i, i = 0,...,n Teleskooppitulo: P(t) = (( ((a n (t x n 1 ) +a n 1 )(t x n 2 )+a n 2 ) )(t x 1 )+a 1 (t x 0 )+a 0. pseudoalgoritmi p for = c[n]; (i = n 1; i >= 0; i ) p = p (t x[i])+c[i]; Algoritmissa suoritetaan 2n yhteenlaskua ja n kertolaskua. Keijo Ruotsalainen Matematiikan jaos 10 / 22
Matlab-koodi interpolaatiolle function [f] = interpol(x,y,z) %interpol.m laskee interpolaatiopolynomin Newtonin esityksen % x on interpolaatiopisteistö, y on funktion arvot % z pisteet, joissa interpolaatiopolynomi evaluoidaan [m n]=size(y); for j=1:m a(:,1)=y(j,:) ; for i=2:n a(i:n,i)=(a(i:n,i-1)-a(i-1,i-1))./(x(i:n)-x(i-1)) ; end f(j,:)=a(n,n).*(z-x(n-1))+a(n-1,n-1); for i=2:n-1 f(j,:)=f(j,:).*(z-x(n-i))+a(n-i,n-i); end end return Keijo Ruotsalainen Matematiikan jaos 11 / 22
Interpolaatiovirhe Lause 4.3 Olkoon [a, b] väli sisältäen interpolaatiopisteet {x 0,...,x n }, ja funktio f(x) tällä välillä (n+1)-kertaa jatkuvasti differentioituva funktio. Silloin jokaisella x [a, b] on olemassa ξ x [a, b] siten, että f(x) P n (x) = (x x 0 ) (x x n ) f (n+1) (ξ x ) (n+1)! Keijo Ruotsalainen Matematiikan jaos 12 / 22
Todistus Funktion g λ (x) = f(x) P n (x)+λ(x x 0 ) (x x n ), λ R. nollakohdat x 0,...,x n. Olkoon α [a, b]\{x 0,...,x n } mielivaltainen. Valitaan λ α = f(α) Pn(α) n i=0 (α x i). Funktiolla g λα (x) on välillä [a, b] n+2 nollakohtaa. x 0 < x 1 <... < x n < α = x n+1. Rolle n lause derivaatalla g (j) (x) on n+2 j λ(α) nollakohtaa x (j) i, i = 0,1,...,n+1 j välillä [a,b] x (j 1) i < x (j) i < x (j 1) i. Keijo Ruotsalainen Matematiikan jaos 13 / 22
Todistus jatkuu Siten funktiolla g (n+1) λ(α) (x) on nollakohta ξ α [a, b]: 0 = g λ(α (n+1) ) (ξ α) = f (n+1) (ξ α ) P n (n+1) (ξ α )+λ α (n+1)!. Koska n-asteisen polynomin n+ 1-kertainen derivaatta häviää identtisesti, niin välttämättä λ α = f (n+1) (ξ α ) (n+1)!. Pisteessä α [a,b]\{x 0,..., x n }: 0 = g α (α) = f(α) P n (α)+λ α (α x 0 ) (α x n ). Sijoittamalla tähän identiteettiin λ α saadaan väittämä. Väite on triviaalisti tosi pisteissä x 0,...,x n. Keijo Ruotsalainen Matematiikan jaos 14 / 22
Huomiota konvergenssista Interpolaatiopisteitä ei kannata valita aina tasavälisesti eikä ainakaan kannata lisätä niiden lukumäärää määrättömästi kuten seuraava Runge n esittämä esimerkki osoittaa. Tarkastellaan funktiota f(t) = 1 1+t 2 välillä [ 5, 5]. Interpoloidaan sitä tasavälisellä hilalla n-asteisella polynomilla. Jos interpolaatiopisteiden lukumäärä n kasvaa rajatta, niin voidaan ( ei kovin ) helposti osoittaa, että myös interpolaation maksimivirhe kasvaa rajatta. Nimittäin n-asteisen interpolaatiopolynomin virheelle on voimassa lim max P n(x) f(x) =. n x [ 5,5] Keijo Ruotsalainen Matematiikan jaos 15 / 22
Rungen esimerkki 2 Interpolaatiopolynomi vihreã llã 1.5 Funktion 1/(1+x 2 ) kuvaaja punaisella 1 0.5 0 0.5 5 4 3 2 1 0 1 2 3 4 5 Keijo Ruotsalainen Matematiikan jaos 16 / 22
Chebyshevin pisteet Chebyshevin pisteet valitaan siten, että virhepolynomi ω(t) = (t x 0 )(t x 1 ) (t x n ), on tasaisesti mahdollisimman pieni Oletus: max t [ 1,1] f (n+1) (t) M. Tällöin M f(t) P(t) max (n+1)! ω(x). x [ 1,1] Virhepolynomin johtavan termin kerroin on yksi, ts. ω(x) = x n+1 + q n (x), missä q n (x) on n-asteinen polynomi Tavoite: Etsi n+1-asteinen polynomi, jonka maksimi välillä [ 1,1] on pienin mahdollinen. Tällöin tämän polynomin nollakohdat ovat siten optimaalisia interpolaatiopisteitä. Keijo Ruotsalainen Matematiikan jaos 17 / 22
Chebyshevin polynomit Chebyshevin polynomi T n (x) = T n (cos(φ)) = cos(nφ), x = cos(φ) [ 1,1]. Trigonometrinen identiteetti cos((n+1)φ)+cos((n 1)φ) = 2cos(φ)cos(nφ) rekursiokaava T n+1 (x) = 2xT n (x) T n 1 (x). Kaksi ensimmäistä polynomia: T 0 (x) = 1, T 1 (x) = x. Induktiolla voidaan päätellä, että funktio T n (x) on n-asteinen polynomi. Chebyshevin polynomien maksimiarvot: max x [ 1,1] T n (x) = 1, Derivaatan nollakohdissa: x k = cos( kπ n ), k = 0,1,2,...,n. Keijo Ruotsalainen Matematiikan jaos 18 / 22
Chebyshevin lause Rekursio T n+1 (x) = 2xT n (x) T n 1 (x). T-polynomin johtavan termin ( siis x n :n ) kerroin on 2 n 1. Lause 4.4 Kaikille x [ 1,1]: Lause 4.5 2 n+1 T n (x) 1 2 n 1 Jos polynomi P n (x) on n-asteinen ja jonka johtavan termin kerroin on yksi, niin max P n(x) 1 x [ 1,1] 2 n 1 max T n(x) = 1 x [ 1,1] 2 n 1. Keijo Ruotsalainen Matematiikan jaos 19 / 22
Todistus Oletetaan, että on olemassa polynomi P n (x), jonka asteluku on n ja P n (x) < 1 2n 1, x [ 1,1]. Polynomin T n (x) ääriarvokohdissa x k, k = 0,...,n: 1 P n (x 0 ) < 2 n 1 P n (x 1 ) > 1 2 n 1. Jatkuvuuden nojalla polynomilla Q(x) = P n (x) 1 2 n 1 T n (x) on T-polynomin ääriarvokohtien välissä ainakin n eri nollakohtaa. Keijo Ruotsalainen Matematiikan jaos 20 / 22
Tod. jatkuu P n (x) = x n +..., 1 2n 1 T n(x) = x n + deg(q(x)) = n 1 Algebran päälause Q(x) 0, vastoin oletusta. Näin ollen oletus, että olisi olemassa polynomi P n (x), joka on kaikille x [ 1, 1] itseisarvoltaan pienempi kuin 1 2 n 1 ja jonka johtavan termin kerroin olisi yksi, on väärä. Keijo Ruotsalainen Matematiikan jaos 21 / 22
Chebyshevin pisteet Chebyshevin pisteet ovat polynomin ω(x) = 2 n T n+1 (x) nollakohdat π x k = cos( 2(n+1) + πk ), 0 k n. n+1 Chebyshevin pisteet optimaalinen valinta interpolaatiopisteille välillä [ 1, 1]. Chebyshevin pisteet välillä [a, b]: x k = a+ b a 2 ( x k + 1). Keijo Ruotsalainen Matematiikan jaos 22 / 22
Runge ja Chebyshev 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 4 3 2 1 0 1 2 3 4 5 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 4 3 2 1 0 1 2 3 4 5 Keijo Ruotsalainen Matematiikan jaos 23 / 22