Numeeriset menetelmät Luento 7 Ti 27.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 1/39 p. 1/39
Interpolointi Ei tunneta funktion f : R R lauseketta, mutta tiedetään funktion arvot tietyissä pisteissä Tavoite: Arvioidaan funktion arvoja myös muissa pisteissä Korvataan f funktiolla p : R R, jonka lauseke tunnetaan, ja approksimoidaan f(x) p(x) Taulukoidut pisteet: (x i, y i ), missä y i = f(x i ) Interpolantti: p(x i ) = y i kaikilla i = 0, 1,..., n Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 2/39 p. 2/39
Polynomi-interpolaatio Datapisteet: (x i, y i ), i = 0, 1,..., n, siten että x i x j kun i j Kantafunktiot: ϕ 0, ϕ 1,..., ϕ n Interpolantti kantafunktioiden lineaarikombinaationa: n p(x) = a j ϕ j (x) j=0 missä a 0, a 1,..., a n vapaita parametreja Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 3/39 p. 3/39
Newtonin muoto Valitaan kantafunktioiksi { 1, j = 0 π j (x) = j 1 k=0 (x x k), 1 j n 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 ) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 4/39 p. 4/39
Newtonin muoto π j (x) = { 1, j = 0 j 1 k=0 (x x k), 1 j n π j (x i ) = 0 kun i < j X = (π j (x i )) i,j = alakolmiomatriisi Kertoimet a j helppo ratkaista Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 5/39 p. 5/39
Polynomin arvojen laskeminen 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 ) Lasketaan p(t) : p := a n do i = n 1, n 2,..., 0 p := a i + (t x i ) p end do Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 6/39 p. 6/39
Newtonin muoto Olkoon p n 1 pisteisiin i = 0, 1,..., n 1 liittyvä interpolaatiopolynomi Muodostetaan pisteisiin i = 0, 1,..., n liittyvä interpolaatiopolynomi p n siten että p n (x) = p n 1 (x) + C(x) C(x i ) = p n (x i ) p n 1 (x i ) = 0, i = 0, 1,..., n 1 Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 7/39 p. 7/39
Newtonin muoto Korjaustermi C on korkeintaan astetta n oleva polynomi ja sillä on n nollakohtaa x i, i = 0, 1,..., n 1 C(x) = a n (x x 0 )(x x 1 ) (x x n 1 ) p n (x) = p n 1 (x) + a n (x x 0 )(x x 1 ) (x x n 1 ) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 8/39 p. 8/39
Newtonin muoto p n (x) = p n 1 (x) + a n (x x 0 )(x x 1 ) (x x n 1 ) Koska p n (x n ) = y n = f(x n ), niin a n = f(x n ) p n 1 (x n ) (x n x 0 )(x n x 1 ) (x n x n 1 ) Funktion f kertalukua n oleva Newtonin jaettu differenssi: f[x 0 ] = a 0 = y 0 = f(x 0 ) f[x 0, x 1,..., x n ] = a n, n 1 Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 9/39 p. 9/39
Newtonin muoto p 0 (x) = f[x 0 ] p 1 (x) = f[x 0 ] + (x x 0 )f[x 0, x 1 ] p 2 (x) = f[x 0 ] + (x x 0 )f[x 0, x 1 ] + (x x 0 )(x x 1 )f[x 0, x 1, x 2 ]. p n (x) = f[x 0 ] + (x x 0 )f[x 0, x 1 ] + (x x 0 )(x x 1 )f[x 0, x 1, x 2 ] +... + (x x 0 ) (x x n 1 )f[x 0, x 1,..., x n ] Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 10/39 p. 10/39
Jaetut differenssit Kaikille j 1 ja 0 i < j on voimassa f[x i, x i+1,..., x j 1, x j ] = f[x i+1,..., x j ] f[x i,..., x j 1 ] x j x i (Todistus: Luentomonisteessa) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 11/39 p. 11/39
Jaettujen differenssien taulukko x 0 f(x 0 ) x 1 f(x 1 ) x 2 f(x 2 ) x 3 f(x 3 ) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 12/39 p. 12/39
Jaettujen differenssien taulukko x 0 f[x 0 ] x 1 f[x 1 ] x 2 f[x 2 ] f[x 1 ] f[x 0 ] x 1 x 0 f[x 2 ] f[x 1 ] x 2 x 1 f[x 3 ] f[x 2 ] x 3 x 2 x 3 f[x 3 ] Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 13/39 p. 13/39
Jaettujen differenssien taulukko x 0 f[x 0 ] f[x 0, x 1 ] x 1 f[x 1 ] f[x 1, x 2 ] f[x 1, x 2 ] f[x 0, x 1 ] x 2 x 0 f[x 2, x 3 ] f[x 1, x 2 ] x 3 x 1 x 2 f[x 2 ] f[x 2, x 3 ] x 3 f[x 3 ] Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 14/39 p. 14/39
Jaettujen differenssien taulukko x 0 f[x 0 ] f[x 0, x 1 ] f[x 0, x 1, x 2 ] f[x 0, x 1, x 2, x 3 ] x 1 f[x 1 ] f[x 1, x 2 ] f[x 1, x 2, x 3 ] x 2 f[x 2 ] f[x 2, x 3 ] x 3 f[x 3 ] Interpolaatiopolynomin arvojen laskemiseen tarvitaan taulukon ylin rivi Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 15/39 p. 15/39
Jaettujen differenssien taulukko Alustetaan d i := f(x i ), i = 0, 1,..., n do i = 1, 2,..., n do j = n, n 1,..., i d j := (d j d j 1 )/(x j x j i ) end do end do Nyt on d i := f[x 0, x 1..., x i ], i = 0, 1,..., n Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 16/39 p. 16/39
p. 17/39 Esimerkki n = 2: Datapisteet ( 1, 2), (0, 1), (1, 3) 1 2 1 2 0 ( 1) = 1 2 ( 1) 1 ( 1) = 3/2 0 1 3 1 1 0 = 2 1 3 p 2 (x) = 2 + ( 1)(x ( 1)) + 3 (x ( 1))(x 0) 2 = 3 2 x2 + 1 2 x + 1 Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 17/39
Etenevät ja takenevat differenssit Jos f on taulukoitu välillä [a, b] tasavälisessä pisteistössä x j = a + j h, j = 0, 1,..., n, h = b a n voidaan Newtonin muoto muodostaa joko etenevien differenssien tai takenevien differenssien avulla (Ei käsitellä) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 18/39 p. 18/39
Interpolaatiovirhe Interpolaatiopisteet: a = x 0 < x 1 < < x n = b Interpolaatiopolynomi: n asteinen polynomi p n siten, että p(x i ) = f(x i ) i = 0, 1,..., n Interpolaatiovirhe: f(x) p n (x) kun x [a, b] Oletetaan, että f on n + 1 kertaa jatkuvasti differentioituva välillä [a, b] Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 19/39 p. 19/39
Interpolaatiovirhe Lause: Jokaiselle x ]a, b[ on olemassa ξ x ]a, b[ siten, että f(x) p n (x) = 1 (n + 1)! f(n+1) (ξ x ) n (x x i ) i=0 (Todistus: Luentomonisteessa) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 20/39 p. 20/39
Interpolaatiovirhe Lause: Jos interpolaatiopisteistö on tasavälinen (h = x i+1 x i ), niin jokaiselle x ]a, b[ on f(x) p n (x) M n 4(n + 1) hn+1 missä M n = max x [x 0,x n ] f(n+1) (x) (Todistus: Luentomonisteessa) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 21/39 p. 21/39
Esimerkki f(x) = sinx, [a, b] = [0, π] f (n+1) (x) 1 max f(x) p n(x) h n+1 x [x 0,x n ] p n f tasaisesti, kun n Tässä esimerkissä datapisteiden lisääminen parantaa tarkkuutta Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 22/39 p. 22/39
Esimerkki f(x) = (1 + x 2 ) 1, [a, b] = [ 5, 5] Tasavälinen interpolaatiopisteistö... lim n max f(x) p n(x) = x [ 5,5] Tässä esimerkissä datapisteiden lisääminen heikentää tarkkuutta Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 23/39 p. 23/39
Esimerkki jatkuu f(x) = (1 + x 2 ) 1, [a, b] = [ 5, 5] Tšebyševin interpolaatiopisteistö... p n f tasaisesti, kun n Tasavälinen pisteistö ei yleensä ole paras mahdollinen valinta Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 24/39 p. 24/39
Tšebyševin pisteistö Olkoon [a, b] = [ 1, 1] Tšebyševin polynomit: T 0 (x) = 1 T 1 (x) = x T n+1 (x) = 2x T n (x) T n 1 (x), n 1 T n (x) = cos(n arccosx), n 0 Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 25/39 p. 25/39
Tšebyševin pisteistö T n (x) 1 T n (x) = cos(n arccosx), n 0 ja T n (cos ( )) 2i + 1 2n π = cos ( 2i + 1 2 ) π = 0, i = 0, 1,..., n 1 Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 26/39 p. 26/39
Tšebyševin pisteistö Valitaan interpolaatiopisteiksi T n+1 :n juuret ( ) 2i + 1 x i = cos 2n + 2 π, i = 0, 1,..., n... f(x) p n (x) 1 2 n (n + 1)! max t 1 f(n+1) (t) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 27/39 p. 27/39
Tšebyševin pisteistö Välin [ 1, 1] interpolaatiopisteet x i Välin [a, b] interpolaatiopisteet x i x i = 1 2 (a + b) + 1 2 (b a)x i Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 28/39 p. 28/39
Paloittainen interpolointi Koko välille muodostettu interpol.polynomi: Interpolaatiopisteiden lisäys kasvattaa polynomin astetta Korkea-asteinen polynomi usein oskilloiva Interpolaatiopolynomi ei välttämättä lähesty interpoloitavaa funktiota Osaväleille muodostettu interpol.polynomi: Osaväleillä matala-asteinen polynomi Yhdistetään siten, että saadaan koko välillä riittävän sileä funktio Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 29/39 p. 29/39
Splinit Interpolointiväli: I = [a, b] Solmut: a = t 0 < t 1 < < t n 1 < t n = b Osavälit: I i = [t i 1, t i ], i = 1, 2,..., n Funktio s : I R on k-asteinen splini, jos s on korkeintaan k-asteinen polynomi jokaisella osavälillä I i s on k 1 kertaa jatkuvasti derivoituva koko välillä I (Huom: 0 kertaa jatkuvasti derivoituva = jatkuva) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 30/39 p. 30/39
Splinit 1. asteen splini: Paloittain lineaarinen, jatkuva 2. asteen splini: Paloittain neliöllinen (kvadraattinen), jatkuvasti derivoituva 3. asteen splini eli kuutiosplini: Paloittain kuutiollinen, kaksi kertaa jatkuvasti derivoituva Yleisimmin käytetty splini Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 31/39 p. 31/39
Interpolointi kuutiosplinillä Osavälit: I i = [t i 1, t i ], i = 1, 2,..., n Osavälien pituudet: h i = t i t i 1, i = 1, 2,..., n Datapisteistö: (t i, y i ), i = 0, 1,..., n Interpolointiehdot: s(t i ) = y i, i = 0, 1,..., n Kuutiosplini: s paloittain kuutiollinen s paloittain neliöllinen s paloittain lineaarinen s, s ja s jatkuvia koko välillä Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 32/39 p. 32/39
Interpolointi kuutiosplinillä Toistaiseksi tuntemattomat vakiot M i, i = 0, 1,..., n, siten että s (t i ) = M i, i = 0, 1,..., n s lineaarinen osavälillä I i, ts. s :n kuvaaja on pisteiden (t i 1, M i 1 ) ja (t i, M i ) välinen suora s (x) = M i 1 t i x h i + M i x t i 1 h i, x I i Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 33/39 p. 33/39
Interpolointi kuutiosplinillä s (x) = M i 1 t i x h i + M i x t i 1 h i, x I i Integroidaan kerran s (t i x) 2 (x t i 1 ) 2 (x) = M i 1 + M i 2h i 2h i + (integroimisvakio), x I i Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 34/39 p. 34/39
Interpolointi kuutiosplinillä s (t i x) 2 (x t i 1 ) 2 (x) = M i 1 + M i 2h i 2h i + (integroimisvakio), x I i Integroidaan toisen kerran (t i x) 3 (x t i 1 ) 3 s(x) = M i 1 + M i 6h i 6h i + (vakio)x + (vakio), x I i Viimeiset termit voidaan kirjoittaa muodossa c i (t i x) + d i (x t i 1 ), missä c i ja d i vakioita Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 35/39 p. 35/39
Interpolointi kuutiosplinillä (t i x) 3 (x t i 1 ) 3 s(x) = M i 1 + M i 6h i 6h i + c i (t i x) + d i (x t i 1 ), x I i Interpolointiehdot s(t i 1 ) = y i 1 ja s(t i ) = y i Määrätään vakiot c i ja d i Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 36/39 p. 36/39
Interpolointi kuutiosplinillä s(t i 1 ) = y i 1 (t i t i 1 ) 3 s(t i 1 ) = M i 1 + c i (t i t i 1 ) 6h i = M i 1 h 2 i 6 + c ih i = y i 1 c i = 1 h i ( y i 1 M i 1 h 2 i 6 ) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 37/39 p. 37/39
Interpolointi kuutiosplinillä s(t i ) = y i (t i t i 1 ) 3 s(t i ) = M i + d i (t i t i 1 ) 6h i = M i h 2 i 6 + d ih i = y i d i = 1 h i ( y i M i h 2 i 6 ) Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 38/39 p. 38/39
Interpolointi kuutiosplinillä (t i x) 3 (x t i 1 ) 3 s(x) = M i 1 + M i 6h i 6h i ( h 2 ) i ti x + y i 1 M i 1 6 h i ( h 2 ) i x ti 1 + y i M i, x I i 6 h i Numeeriset menetelmät Syksy 2011 Luento 7 Ti 27.9.2011 p. 39/39 p. 39/39