Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43...

43
Numeeriset menetelm¨ at TIEA381 Luento 7 Kirsi Valjus Jyv¨ askyl¨ an yliopisto Luento 7 () Numeeriset menetelm¨ at 10.4.2013 1 / 43

Transcript of Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43...

Page 1: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Numeeriset menetelmat TIEA381

Luento 7

Kirsi Valjus

Jyvaskylan yliopisto

Luento 7 () Numeeriset menetelmat 10.4.2013 1 / 43

Page 2: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luennon 7 sisalto

Interpolointi ja approksimointi

Interpolaatiovirheesta

Paloittainen interpolointi

Luento 7 () Numeeriset menetelmat 10.4.2013 2 / 43

Page 3: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Interpolaatiovirheesta

Tasavalisella pisteistolla interpolaatiovirhetta voidaan arvioidaseuraavasti:

Lause 5.4 Olkoon a = x0 < x1 < · · · < xn = b tasavalinen pisteisto,h = xi+1 − xi ja f ∈ C (n+1)([a, b]). Silloin

|f (t)− pn(t)| ≤ Mn

4(n + 1)hn+1, t ∈ [a, b],

missaMn = max

x∈[x0,xn]|f (n+1)(x)|.

Luento 7 () Numeeriset menetelmat 10.4.2013 3 / 43

Page 4: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Esimerkki 5.5

Lause 5.4.:

|f (t)− pn(t)| ≤ Mn

4(n + 1)hn+1, Mn = max

x∈[x0,xn]|f (n+1)(x)|.

Olkoon f (x) = sin x , x0 = 0 ja xn = π. Talloin

maxt∈[x0,xn]

|f (t)− pn(t)| ≤ 1 · hn+1,

joten polynomi pn suppenee tasaisesti kohti funktiota f valilla [0, π],kun interpolaatiopisteiden lukumaaraa n kasvatetaan rajatta.

Luento 7 () Numeeriset menetelmat 10.4.2013 4 / 43

Page 5: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Interpolaatiovirheesta jatkuu

Lauseen 5.4. epayhtaloa on kaytettava varoen, silla vakio Mn

yleensa riippuu myos interp.polynomin asteesta n.

Lisaksi vakion Mn laskeminen mielivaltaiselle funktiolle f onkaytannossa aivan liian tyolasta.

Funktion f sileys ja datapisteiden paljous ei takaa pientainterpolaatiovirhetta, kuten seuraava klassinen Rungen esimerkkiosoittaa.

Luento 7 () Numeeriset menetelmat 10.4.2013 5 / 43

Page 6: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Esimerkki 5.6

Olkoon interpoloitava funktio f (x) = (1 + x2)−1.

Olkoon pn interpolaatiopolynomi, joka interpoloi funktiota ftasavalisissa pisteissa valilla [−5, 5].

Silloin voidaan osoittaa, etta

limn→∞

maxx∈[−5,5]

|f (x)− pn(x)| =∞.

Siis datapisteiden lisaaminen lisaa maksimi interpolaatiovirhetta.

Luento 7 () Numeeriset menetelmat 10.4.2013 6 / 43

Page 7: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Esimerkki 5.6 jatkuu

-0.5

0

0.5

1

1.5

2

-4 -2 0 2 4

’f.dat’’p10.dat’

Rungen funktiota interpoloiva oskilloiva interpolaatiopolynomi p10.

Luento 7 () Numeeriset menetelmat 10.4.2013 7 / 43

Page 8: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Esimerkki 5.7

Mikali interpolaatiopisteiden paikat voidaan itse valita, niintasavalinen pisteisto ei yleensa ole optimaalinen.Kuvassa on esitetty Rungen funktiota valilla [−5, 5] interpoloivatpolynomit p10 ja p20, kun interp.pisteina on kaytetty Tsebysevininterpolaatiopisteita. Tassa tapauksessa pn → f tasaisesti, kuninterp.pisteiden lukumaara n→∞.

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

-4 -2 0 2 4

’cheby10.dat’’cheby20.dat’

Luento 7 () Numeeriset menetelmat 10.4.2013 8 / 43

Page 9: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Tsebysevin interpolaatiopisteet

Mikali interpolaatiopisteiden paikat voidaan itse valita, eitasavalinen pisteisto yleensa ole optimaalinen.

Pyritaan seuraavassa valitsemaan interp.pisteeterikoistapauksessa [a, b] = [−1, 1] siten, etta interpolaatiovirheminimoituu.

Eras ns. ortogonalisten polynomien luokka on Tsebysevin polynomit,jotka voidaan maaritella rekursiivisesti

T0(x) = 1, T1(x) = x , Tn+1(x) = 2xTn(x)− Tn−1(x), n ≥ 1.

Luento 7 () Numeeriset menetelmat 10.4.2013 9 / 43

Page 10: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Tsebysevin interpolaatiopisteet jatkuu

Valilla [−1, 1] polynomit Tn voidaan lausua myos trigonometristenfunktioiden avulla

Tn(x) = cos(n arccos x), n ≥ 0.

Yo. esityksesta nahdaan, etta

|Tn(x)| ≤ 1, |x | ≤ 1,

Tn

(cos

(2i + 1

2nπ

))= 0, i = 0, ..., n − 1.

Luento 7 () Numeeriset menetelmat 10.4.2013 10 / 43

Page 11: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Tsebysevin interpolaatiopisteet jatkuu

Nyt voidaan osoittaa, etta jos interpolaatiopisteiksi valitaanTsebysevin polynomin Tn+1 juuret

xi = cos

(2i + 1

2n + 2π

), i = 0, ..., n,

niin

|f (x)− pn(x)| ≤ 1

2n(n + 1)!max|t|≤1|f (n+1)(t)|, |x | ≤ 1.

Luento 7 () Numeeriset menetelmat 10.4.2013 11 / 43

Page 12: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi Interpolaatiovirheesta

Tsebysevin interpolaatiopisteet jatkuu

Yleiseen valiin [a, b] liittyvat Tsebysevin interpolaatiopisteet {xi}saadaan valin [−1, 1] interpolaatiopisteista {xi} affiinimuunnoksella

xi =1

2(a + b) +

1

2(b − a)xi .

Luento 7 () Numeeriset menetelmat 10.4.2013 12 / 43

Page 13: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

5.3. Paloittainen interpolointi

Jono interpolaatiopolynomeja ei valttamatta lahesty interpoloitavaasileaa funktiota kun interp.pisteita lisataan.

Tasavalinen pisteisto ja korkea-asteinen interpolaatiopolynomiaiheuttavat usein voimakasta oskillointia, sita voimakkaammin mitakorkeamman asteen polynomia kaytetaan.

Ratkaisu: Jaetaan havaintovali osavaleihin havaintopisteiden avulla jakaytetaan osavaleilla paloittaisia, matala-asteisia polynomeja.

Edelleen vaaditaan, etta osavaleilta yhdistetty funktio on silea.

Luento 7 () Numeeriset menetelmat 10.4.2013 13 / 43

Page 14: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Maaritelma 5.2.

Olkoon vali I = [a, b] jaettu n:aan osavaliin pisteilla

a = t0 < t1 < · · · < tn−1 < tn = b.

Funktio s : I → R on k-asteinen splini, jos seuraavat ehdot ovat voimassa:

1 Jokaisella osavalilla Ii = [ti−1, ti ], i = 1, . . . n, funktio s onkorkeintaan k-asteinen polynomi.

2 Funktiolla s on valilla I jatkuvat derivaatat kertalukuun k − 1 asti.

Luento 7 () Numeeriset menetelmat 10.4.2013 14 / 43

Page 15: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Splinit

Pisteita ti sanotaan splinin solmuiksi.

Yksinkertaisin, ensimmaisen asteen splini on paloittain lineaarinenfunktio.

Toisen asteen splini on paloittain kvadraattinen funktio; lisaksi senderivaatta on jatkuva koko valilla I .

Yleisimmin kaytetty splini on kolmannen asteen splini eli kuutiosplini,koska se on kaytannossa riittavan silea, mutta samalla helpohkostikonstruoitava.

Matala-asteiset splinit sopivat erinomaisesti interpolaatiotehtaviin,koska niilla ei ole taipumusta oskillointiin.

Luento 7 () Numeeriset menetelmat 10.4.2013 15 / 43

Page 16: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Splinit

Splinien kayttomahdollisuudet eivat rajoitu vain interpolaatioon.

Yleisempi funktion approksimointi, numeerinen integrointi jadifferentiaaliyhtaloiden ratkaiseminen voidaan tehda splinien avulla.

Myos tietokonegrafiikassa kaytetaan usein splineja sileiden kayrien japintojen muodostamiseen.

Luento 7 () Numeeriset menetelmat 10.4.2013 16 / 43

Page 17: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa

Olkoon vali I = [a, b] jaettu n:aan osavaliin pisteillaa = t0 < t1 < · · · < tn = b ja olkoon annettu datapisteisto

(ti , yi ), i = 0, ..., n. Merkitaan

hi := ti − ti−1, i = 1, 2, . . . , n.

Splinin tulee nyt toteuttaa interpolointiehto

s(ti ) = yi , i = 0, ..., n.

Kuutiosplinin maar. perusteella s, s ′ ja s ′′ ovat jatkuvia valilla I .

s on paloittain kuutiollinen polynomi ⇒ s ′ paloittain kvadraattinenpolynomi ja s ′′ paloittain lineaarinen polynomi.

Luento 7 () Numeeriset menetelmat 10.4.2013 17 / 43

Page 18: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Nyt jokaisella osavalilla Ii s ′′ on lineaarinen, ts. s ′′ on suora, jokayhdistaa pisteet (x0, y0) = (ti−1,Mi−1) ja (x1, y1) = (ti ,Mi ), missas ′′(ti ) = Mi .

Ko. suoran yhtalo on

y =Mi −Mi−1

ti − ti−1(x − ti−1) + Mi−1

=Mi

hi(x − ti−1)− Mi−1

hi(x − ti−1) + Mi−1

=Mi

hi(x − ti−1) +

Mi−1

hi(ti−1 − x) + Mi−1 ·

hi

hi

=Mi

hi(x − ti−1) +

Mi−1

hi(ti − ti−1︸ ︷︷ ︸

hi

+ti−1 − x)

Luento 7 () Numeeriset menetelmat 10.4.2013 18 / 43

Page 19: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Nyt siis jokaisella osavalilla Ii patee (Mi ,Mi−1 tuntemattomia)

s ′′(x) = Mi−1ti − x

hi+ Mi

x − ti−1

hi, x ∈ Ii .

Integroimalla yo. saadaan:

s ′(x) = −Mi−1(ti − x)2

2hi+ Mi

(x − ti−1)2

2hi− ci + di .

Integroidaan viela kerran, saadaan osavalilla Ii :

s(x) = Mi−1(ti − x)3

6hi+ Mi

(x − ti−1)3

6hi+ ci (ti − x) + di (x − ti−1).

Luento 7 () Numeeriset menetelmat 10.4.2013 19 / 43

Page 20: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: interpolointiehdot

Maarataan vakiot ci , di asettamalla interpolointiehtos(ti−1) = yi−1 ja s(ti ) = yi :

s(ti−1) = Mi−1(ti − ti−1)3

6hi+ Mi

(ti−1 − ti−1)3

6hi

+ci (ti − ti−1) + di (ti−1 − ti−1)

= Mi−1(ti − ti−1)3

6hi+ ci (ti − ti−1)

= Mi−1h2i

6+ cihi = yi−1

⇒ ci =1

hi

(yi−1 −Mi−1

h2i

6

)

Luento 7 () Numeeriset menetelmat 10.4.2013 20 / 43

Page 21: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: interpolointiehdot

Samoin asetetaan interpolointiehto s(ti ) = yi ja saadaan:

s(ti ) = Mi(ti − ti−1)3

6hi+ di (ti − ti−1) = Mi

h2i

6+ dihi = yi

⇒ di =1

hi

(yi −Mi

h2i

6

)Nain saadaan (taas valilla Ii , i = 1, . . . , n)

s(x) = Mi−1(ti − x)3

6hi+ Mi

(x − ti−1)3

6hi

+1

hi

(yi−1 −

Mi−1h2i

6

)(ti − x) +

1

hi

(yi −

Mih2i

6

)(x − ti−1).

Luento 7 () Numeeriset menetelmat 10.4.2013 21 / 43

Page 22: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Derivoimalla edellinen saadaan (taas valilla Ii , i = 1, . . . , n)

s ′(x) = −Mi−1(ti − x)2

2hi+ Mi

(x − ti−1)2

2hi

− 1

hi

(yi−1 −

Mi−1h2i

6

)+

1

hi

(yi −

Mih2i

6

)

= −Mi−1(ti − x)2

2hi+ Mi

(x − ti−1)2

2hi+

yi − yi−1

hi− Mi

6hi +

Mi−1

6hi .

Luento 7 () Numeeriset menetelmat 10.4.2013 22 / 43

Page 23: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: toispuoleiset derivaatat

Erityisesti valin Ii paatepisteessa ti saadaan toispuoleiseksi derivaataksi

s ′(t−i ) = limx→t−i

−Mi−1(ti − x)2

2hi+ Mi

(x − ti−1)2

2hi

+yi − yi−1

hi− Mi

6hi +

Mi−1

6hi

= Mih2i

2hi+

yi − yi−1

hi− Mi

6hi +

Mi−1

6hi

=

(hi

2− hi

6

)Mi +

hi

6Mi−1 +

yi − yi−1

hi

=hi

6Mi−1 +

hi

3Mi +

yi − yi−1

hi

Luento 7 () Numeeriset menetelmat 10.4.2013 23 / 43

Page 24: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: toispuoleiset derivaatat

Samoin

s ′(t+i ) = lim

x→t+i

−Mi(ti+1 − x)2

2hi+1+ Mi+1

(x − ti )2

2hi+1

+yi+1 − yi

hi+1− Mi+1

6hi+1 +

Mi

6hi+1

= −Mih2i+1

2hi+1+

yi+1 − yi

hi+1− Mi+1

6hi+1 +

Mi

6hi+1

= −(

hi+1

2− hi+1

6

)Mi −

hi+1

6Mi+1 +

yi+1 − yi

hi+1

= −hi+1

3Mi −

hi+1

6Mi+1 +

yi+1 − yi

hi+1.

Luento 7 () Numeeriset menetelmat 10.4.2013 24 / 43

Page 25: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: toispuoleiset derivaatat

Koska s ′ on jatkuva valilla I , on oltava

s ′(t−i ) = s ′(t+i ), i = 1, ..., n − 1,

joten saadaan yhtalot (i = 1, ..., n − 1)

hi

6Mi−1 +

hi

3Mi +

yi − yi−1

hi= −hi+1

3Mi −

hi+1

6Mi+1 +

yi+1 − yi

hi+1

josta saadaan (i = 1, ..., n − 1)

hi

6Mi−1 +

hi + hi+1

3Mi +

hi+1

6Mi+1 =

yi+1 − yi

hi+1− yi − yi−1

hi.

Luento 7 () Numeeriset menetelmat 10.4.2013 25 / 43

Page 26: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Sievennetaan edella saatua lauseketta

hi

6Mi−1 +

hi + hi+1

3Mi +

hi+1

6Mi+1 =

yi+1 − yi

hi+1︸ ︷︷ ︸σi+1

− yi − yi−1

hi︸ ︷︷ ︸σi

.

Kertomalla yo. 6hi+hi+1

:lla saadaan (i = 1, ..., n − 1)

hi

hi + hi+1︸ ︷︷ ︸µi

Mi−1 + 2Mi +hi+1

hi + hi+1︸ ︷︷ ︸λi

Mi+1 =6

hi + hi+1(σi+1 − σi )︸ ︷︷ ︸di

⇒ Yhtalot saadaan yksinkertaisempaan muotoon

µiMi−1 + 2Mi + λiMi+1 = di , i = 1, ..., n − 1.

Luento 7 () Numeeriset menetelmat 10.4.2013 26 / 43

Page 27: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Edella siis maariteltiin merkintojen yksinkertaistamiseksi luvut

σi :=yi − yi−1

hi, i = 1, ..., n,

λi :=hi+1

hi + hi+1, i = 1, ..., n − 1,

µi := 1− λi , i = 1, ..., n − 1,

di :=6(σi+1 − σi )

hi + hi+1, i = 1, ..., n − 1.

Luento 7 () Numeeriset menetelmat 10.4.2013 27 / 43

Page 28: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Yhtalot kertoimien M0, . . . ,Mn ratkaisemiseksi saatiin edella muotoon

µiMi−1 + 2Mi + λiMi+1 = di , i = 1, ..., n − 1.

n − 1 yhtaloa, n + 1 kerrointa M0, . . . ,Mn

⇒ Yksikasitteiseen ratkeavuuteen tarvitaan viela kaksi lisaehtoa.

⇒ Esitetaan tarvittavat kaksi lisaehtoa muodossa

2M0 + λ0M1 = d0, µnMn−1 + 2Mn = dn,

missa λ0, d0, µn, dn ovat myohemmin maarattavia vakioita.

Luento 7 () Numeeriset menetelmat 10.4.2013 28 / 43

Page 29: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: yhtaloryhma

Nyt splinin kertoimien maaraaminen on siis palautunut tridiagonaalisenyhtaloryhman

26666666664

2 λ0

µ1 2 λ1

µ2 2 λ2

. . .

µn−2 2 λn−2

µn−1 2 λn−1

µn 2

37777777775

26666666664

M0

M1

M2

...Mn−2

Mn−1

Mn

37777777775=

26666666664

d0

d1

d2

...dn−2

dn−1

dn

37777777775(1)

ratkaisemiseen.

Luento 7 () Numeeriset menetelmat 10.4.2013 29 / 43

Page 30: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: lauseke

Kun yhtaloryhman ratkaisemisen jalkeen kertoimet Mi tunnetaan, niinsplinin arvo s(x) voidaan laskea lausekkeesta

s(x) = Mi−1(ti − x)3

6hi+ Mi

(x − ti−1)3

6hi

+

(yi−1 −

Mi−1h2i

6

)ti − x

hi+

(yi −

Mih2i

6

)x − ti−1

hi.

Luento 7 () Numeeriset menetelmat 10.4.2013 30 / 43

Page 31: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: lisaehdot

Yhtaloryhmalle (1) saadaan yksikasitteinen ratkaisu, jos asetetaan jokinseuraavista ehdoista:

Luonnollinen kuutiosplini, s.o. s ′′(a) = s ′′(b) = 0, saadaan kun yllavalitaan λ0 = d0 = µn = dn = 0.

Talloin siis M0 = Mn = 0.

Derivaattaehto s ′(a) = y ′0, s ′(b) = y ′n, saadaan kun

λ0 = µn = 1, d0 =6

h1

(y1 − y0

h1− y ′0

),

dn =6

hn

(y ′n −

yn − yn−1

hn

).

Luento 7 () Numeeriset menetelmat 10.4.2013 31 / 43

Page 32: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplini: lisaehdot

”Not a knot” -ehto saadaan asettamalla vain

valin I sisasolmut ti , i = 1, ..., n − 1 splinin maaritteleviksi solmuiksija vaatimalla s(a) = y0, s(b) = yn.

Talloin tulee yhtaloita kaksi kappaletta vahemman ja vakiotλ1, d1, µn−1, dn−1 saadaan sijoittamalla x = t0 ja x = tn splininlausekkeeseen. Tassa vaihtoehdossa lisaehtoja ei tarvita.

Luento 7 () Numeeriset menetelmat 10.4.2013 32 / 43

Page 33: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Nyt selvasti

0 < λi < 1, i = 1, . . . , n − 1

(λi =

hi+1

hi + hi+1

)ja

0 < µi < 1, i = 1, . . . , n − 1 (µi = 1− λi ) .

Jos nyt lisaksi |λ0| < 2, |µn| < 2, niin yhtaloryhman kerroinmatriisi ondiagonaalisti dominantti, ja yhtaloryhmalla (1) on 1-kas. ratkaisuvektori,joka sisaltaa splinin tuntemattomien M0, . . . ,Mn arvot.

Luento 7 () Numeeriset menetelmat 10.4.2013 33 / 43

Page 34: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

26666666664

2 λ0

µ1 2 λ1

µ2 2 λ2

. . .

µn−2 2 λn−2

µn−1 2 λn−1

µn 2

37777777775

26666666664

M0

M1

M2

...Mn−2

Mn−1

Mn

37777777775=

26666666664

d0

d1

d2

...dn−2

dn−1

dn

37777777775

Luento 7 () Numeeriset menetelmat 10.4.2013 34 / 43

Page 35: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9.

Olkoon annettu datapisteisto (1, 1), (2, 12), (3, 1

3), (4, 14).

Muodostetaan pisteistoon liittyva luonnollinen kuutiosplini. KoskaM0 = M3 = 0, splinin maaraava yhtaloryhma2664

2 λ0

µ1 2 λ1

µ2 2 λ2

µ3 2

37752664

M0

M1

M2

M3

3775 =

2664d0

d1

d2

d3

3775saa muodon »

2 λ1

µ2 2

– »M1

M2

–=

»d1

d2

–.

Luento 7 () Numeeriset menetelmat 10.4.2013 35 / 43

Page 36: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9. jatkuu

Nyt hi = ti − ti−1 = 1, i = 1, . . . , 3.

λi :=hi+1

hi + hi+1→ λ1 =

h2

h1 + h2=

1

2, λ2 =

h3

h2 + h3=

1

2

µi := 1− λi → µ2 = 1− λ2 =1

2

σi :=yi − yi−1

hi→ σ1 =

12 − 1

1= −1

2, σ2 =

13 −

12

1= −1

6,

σ3 =14 −

13

1= − 1

12

Luento 7 () Numeeriset menetelmat 10.4.2013 36 / 43

Page 37: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9. jatkuu

di :=6(σi+1 − σi )

hi + hi+1→ d1 =

6(−16 − (−1

2))

h1 + h2= 1,

d2 =6(− 1

12 − (−16))

h2 + h3=

1

4,

Siten yhtaloryhmaksi saadaan»2 1/2

1/2 2

– »M1

M2

–=

»1

1/4

josta M1 = 1/2 ja M2 = 0.

Luento 7 () Numeeriset menetelmat 10.4.2013 37 / 43

Page 38: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9. jatkuu

Splinin lauseke kullakin valilla Ii saadaan kaavasta

s(x) = Mi−1(ti − x)3

6hi+ Mi

(x − ti−1)3

6hi

+

(yi−1 −

Mi−1h2i

6

)ti − x

hi+

(yi −

Mih2i

6

)x − ti−1

hi

sijoittamalla M0 = 0,M1 = 12 ,M2 = 0,M3 = 0, hi = 1 ja

(t0, y0) = (1, 1), (t1, y1) = (2, 12), (t2, y2) = (3, 1

3), (t3, y3) = (4, 14).

Luento 7 () Numeeriset menetelmat 10.4.2013 38 / 43

Page 39: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9. jatkuu

Esimerkiksi valilla I1 = [1, 2] ts. (i = 1) ...

s(x) = M0(t1 − x)3

6h1+ M1

(x − t0)3

6h1

+

(y0 −

M0h21

6

)t1 − x

h1+

(y1 −

M1h21

6

)x − t0

h1

=1

2

(x − 1)3

6+ (1− 0)(2− x) +

(1

2− 1

2

1

6

)(x − 1)

=1

12x3 − 1

4x2 − 1

3x +

3

2

Luento 7 () Numeeriset menetelmat 10.4.2013 39 / 43

Page 40: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Esimerkki 5.9. jatkuu

Splinin koko lausekkeeksi saadaan

s(x) =

1

12x3 − 1

4x2 − 1

3x +

3

2, 1 ≤ x ≤ 2

− 1

12x3 +

3

4x2 − 7

3x +

17

6, 2 ≤ x ≤ 3

− 1

12x +

7

12, 3 ≤ x ≤ 4.

Huomaa, etta s ′ ja s ′′ ovat jatkuvia valilla [1, 4].

Luento 7 () Numeeriset menetelmat 10.4.2013 40 / 43

Page 41: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Kuutiosplinin kaytto interpoloinnissa jatkuu

Kuutiosplinin voidaan ajatella syntyvan kun suora, hoikka ja taipuisametallitanko pakotetaan kulkemaan datapisteiden kautta. Tangontaivutusenergia on 1

2

∫ ba [s ′′(x)]2 dx , missa s(x) on tangon poikkeama

lepotilasta pisteessa x . Seuraava lause sanoo, etta luonnollinenkuutiosplini minimoi taivutusenergian lausekkeen.

Lause 5.6.Jos luonnollinen kuutiosplini s interpoloi funktiota f ∈ C (2)([a, b])pisteissa a = t0 < t1 < . . . < tn = b, niin∫ b

a[s ′′(x)]2 dx ≤

∫ b

a[f ′′(x)]2 dx .

Luento 7 () Numeeriset menetelmat 10.4.2013 41 / 43

Page 42: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Lause 5.7.

Olkoon f ∈ C (2)([a, b]), yi := f (ti ) ja h = max hi . Jos luonnollinenkuutiosplini s on interpolaatiotehtavan s(ti ) = yi , i = 0, ..., n ratkaisu,niin interpolaatiovirheelle saadaan arviot

maxa≤x≤b

|f (x)− s(x)| ≤ h32E(f )

maxa≤x≤b

|f ′(x)− s ′(x)| ≤ h12E(f ),

missa

E(f ) =

√∫ b

a[f ′′(x)]2 dx .

Luento 7 () Numeeriset menetelmat 10.4.2013 42 / 43

Page 43: Luento 7users.jyu.fi/~majkir/numen/luento7_flat.pdfLuento 7 Numeeriset menetelm at 10.4.2013 15 / 43 Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi Splinit

Luku5: Interpolointi ja approksimointi 5.3. Paloittainen interpolointi

Huomautus 5.2.

Vaikka splini-interpolantti kayttaytyykin hyvin valilla I , ei sitakannata kayttaa extrapolaatioon.

Esimerkiksi tekija (x − tn−1)3 splinin lausekkeessa kasvaavoimakkaasti valin I ulkopuolelle, jolloin interpolaatiovirhe kasvaamyos hyvin voimakkaasti.

Tasta syysta ekstrapolaatiota on syyta valttaa tai ainakin rajoituttavaekstrapoloimaan mahdollisimman lahella annettua datapisteistoa.

Luento 7 () Numeeriset menetelmat 10.4.2013 43 / 43