23
Funktioiden approksimointi ja interpolointi Keijo Ruotsalainen Division of Mathematics

Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Funktioiden approksimointi ja interpolointi

Keijo Ruotsalainen

Division of Mathematics

Page 2: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

interpolaatio-ongelma

−2 −1.5 −1 −0.5 0 0.5 1 1.5 20

1

2

3

4

5

6

7

8Eksponenttifunktion exp(x) interpolointi

0 0.5 1 1.5 2 2.5 3 3.5 40

0.5

1

1.5

2

2.5

3

3.5Funktion e^{0.25x}−\sin(x) interpolointi

Funktion kuvaaja punaisella

Interpolaation kuvaaja vihreällä

Keijo Ruotsalainen Matematiikan jaos 2 / 22

Page 3: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Interpolaatio

◮ Funktion approksimointi, kun funktion arvot tunnetaanäärellisessä pistejoukossa

◮ Olkoon (xi , yi ), i = 1, . . . , n, annetut n + 1 pisteparia.

◮ Tehtävä: Määrää funktio Φ(x) siten, ettäΦ(xi ) = yi , ∀i = 0, . . . , n

◮ Sanotaan, että Φ interpoloi arvoja yi pisteissä xi .

◮ Polynomi-interpolaatio, jos Φ(x) on algebrallinen polynomi

◮ Trigonometrinen interpolaatio, jos Φ(x) on trigonometrinenpolynomi, so. sini- ja kosinifunktioiden summa

◮ Paloittain polynomi-interpolaatio, jos Φ(x) on paloittainpolynomi

Keijo Ruotsalainen Matematiikan jaos 3 / 22

Page 4: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Polynomi-interpolaatio

Interpolaatiopisteet (x0, x1, . . . , xn) ja f (x) annettu funktio.Määrää n-asteinen polynomi P siten, että

P(xi ) = fi , i = 0, . . . , n.

Lause 4.1

Interpolaatio-ongelmalla on yksikäsitteisesti määrätty ratkaisu

Pn(x) =

n∑

i=0

fiLi (x), Li(x) =

n∏

j = 0i 6= j

x − xj

xi − xj.

missä Li(x) on Lagrange’n kantapolynomi:

Keijo Ruotsalainen Matematiikan jaos 4 / 22

Page 5: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Newtonin esitys

◮ Interpolaatiopolynomia haetaan muodossa

Pn(x) = a0 + a1(x − x0) + a2(x − x0)(x − x1)

+ · · ·+ an(x − x0) · · · (x − xn−1).

◮ Polynomin kertoimet ratkaistaan interpolaatioehdosta

Pn(xj) = fj .

Keijo Ruotsalainen Matematiikan jaos 5 / 22

Page 6: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Yhtälöryhmä

Yhtälöryhmä on alakolmiomuotoa

f0 = a0

f1 = a0 + (x1 − x0)a1

f2 = a0 + a1(x2 − x0) + a2(x2 − x0)(x2 − x1)... =

...

fn = a0 + · · ·+ an(xn − x0) · · · (xn − xn−1),

jolla ilmeisesti on yksikäsitteinen ratkaisu.

Keijo Ruotsalainen Matematiikan jaos 6 / 22

Page 7: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Jaetut erotukset

Jaetut erotukset

Olkoon x = (x1, . . . , xn) ja f = (f1, . . . , fn) kaksi vektoria. Jaettuerotus f [xi , . . . , xi+k ] määritellään rekursiivisesti, kunj = i + 1, . . . , i + k :

f [xi ] = fi

f [xi , . . . , xj ] =f [xi+1, . . . , xj ]− f [xi , . . . , xj−1]

xj − xi

Keijo Ruotsalainen Matematiikan jaos 7 / 22

Page 8: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Newtonin erotustaulukko

x0

x1

x2

x3

x4

...

f0f1f2f3f4...

f [x0, x1]f [x1, x2]f [x2, x3]f [x3, x4]...

f [x0, x1, x2]f [x1, x2, x3]f [x2, x3, x4]...

f [x0, x1, x2, x3]f [x1, x2, x3, x4]...

f [x0, x1, x2, x3, x4]...

Lause 4.2

Newtonin interpolaatiopolynomin kertoimet ovat

aj = f [x0, x1, · · · , xj ], j = 0, 1, 2, · · · , n.

Keijo Ruotsalainen Matematiikan jaos 8 / 22

Page 9: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

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

◮ n2 kertolaskua

◮1

2n2 yhteenlaskua.

Keijo Ruotsalainen Matematiikan jaos 9 / 22

Page 10: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Newtonin interpolaatiopolynominlaskeminen

◮ Newtonin polynomin kertoimet ai , i = 0, . . . , n

◮ Teleskooppitulo:

P(t) = ((· · · ((an(t − xn−1)

+an−1)(t − xn−2) + an−2) · · · )(t − x1) + a1(t − x0) + a0.

pseudoalgoritmi

p = c[n];

for (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

Page 11: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Matlab-koodi interpolaatiollefunction [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

returnKeijo Ruotsalainen Matematiikan jaos 11 / 22

Page 12: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Interpolaatiovirhe

Lause 4.3

Olkoon [a, b] väli sisältäen interpolaatiopisteet {x0, . . . , xn}, jafunktio f(x) tällä välillä (n + 1)-kertaa jatkuvasti differentioituvafunktio. Silloin jokaisella x ∈ [a, b] on olemassa ξx ∈ [a, b] siten,että

f (x) − Pn(x) = (x − x0) · · · (x − xn)f (n+1)(ξx)

(n + 1)!

Keijo Ruotsalainen Matematiikan jaos 12 / 22

Page 13: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Todistus

◮ Funktiongλ(x) = f (x) − Pn(x) + λ(x − x0) · · · (x − xn), λ ∈ R.nollakohdat x0, . . . , xn.

◮ Olkoon α ∈ [a, b] \ {x0, . . . , xn} mielivaltainen.

◮ Valitaan λα = − f (α)−Pn(α)∏n

i=0(α−xi ).

◮ Funktiolla gλα(x) on välillä [a, b] n + 2 nollakohtaa.

x0 < x1 < . . . < xn < α = xn+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

Page 14: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Todistus jatkuu

◮ Siten funktiolla g(n+1)λ(α) (x) on nollakohta ξα ∈ [a, b]:

0 = gλ(α(n+1))(ξα) = f (n+1)(ξα)− P(n+1)n (ξα) + λα(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] \ {x0, . . . , xn}:

0 = gα(α) = f (α)− Pn(α) + λα(α− x0) · · · (α− xn).

◮ Sijoittamalla tähän identiteettiin λα saadaan väittämä. Väiteon triviaalisti tosi pisteissä x0, . . . , xn.

Keijo Ruotsalainen Matematiikan jaos 14 / 22

Page 15: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Huomiota konvergenssista

Interpolaatiopisteitä ei kannata valita aina tasavälisesti eikäainakaan kannata lisätä niiden lukumäärää määrättömästi kutenseuraava Runge’n esittämä esimerkki osoittaa.Tarkastellaan funktiota

f (t) =1

1 + t2

välillä [−5, 5]. Interpoloidaan sitä tasavälisellä hilalla n-asteisellapolynomilla. Jos interpolaatiopisteiden lukumäärä n kasvaa rajatta,niin voidaan ( ei kovin ) helposti osoittaa, että myösinterpolaation maksimivirhe kasvaa rajatta. Nimittäin n-asteiseninterpolaatiopolynomin virheelle on voimassa

limn→∞

maxx∈[−5,5]

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

Keijo Ruotsalainen Matematiikan jaos 15 / 22

Page 16: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Rungen esimerkki

−5 −4 −3 −2 −1 0 1 2 3 4 5−0.5

0

0.5

1

1.5

2

Interpolaatiopolynomi vihreällä

Funktion 1/(1+x2) kuvaaja punaisella

Keijo Ruotsalainen Matematiikan jaos 16 / 22

Page 17: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Chebyshevin pisteet◮ Chebyshevin pisteet valitaan siten, että virhepolynomi

ω(t) = (t − x0)(t − x1) · · · (t − xn),

on tasaisesti mahdollisimman pieni◮ Oletus: maxt∈[−1,1] |f

(n+1)(t)| ≤ M.◮ Tällöin

|f (t)− P(t)| ≤M

(n + 1)!max

x∈[−1,1]|ω(x)|.

◮ Virhepolynomin johtavan termin kerroin on yksi, ts.

ω(x) = xn+1 + qn(x),

missä qn(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 polynominnollakohdat ovat siten optimaalisia interpolaatiopisteitä.

Keijo Ruotsalainen Matematiikan jaos 17 / 22

Page 18: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Chebyshevin polynomit

◮ Chebyshevin polynomi

Tn(x) = Tn(cos(φ)) = cos(nφ), x = cos(φ) ∈ [−1, 1].

◮ Trigonometrinen identiteetti

cos((n + 1)φ) + cos((n − 1)φ) = 2 cos(φ) cos(nφ)

⇒ rekursiokaava

Tn+1(x) = 2xTn(x) − Tn−1(x).

◮ Kaksi ensimmäistä polynomia: T0(x) = 1, T1(x) = x .◮ Induktiolla voidaan päätellä, että funktio Tn(x) on n-asteinen

polynomi.◮ Chebyshevin polynomien maksimiarvot:

maxx∈[−1,1] |Tn(x)| = 1,

◮ Derivaatan nollakohdissa: xk = cos(kπn), k = 0, 1, 2, . . . , n.

Keijo Ruotsalainen Matematiikan jaos 18 / 22

Page 19: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Chebyshevin lause

◮ Rekursio Tn+1(x) = 2xTn(x) − Tn−1(x). ⇒ T-polynominjohtavan termin ( siis xn:n ) kerroin on 2n−1.

Lause 4.4

Kaikille x ∈ [−1, 1]:

|2−n+1Tn(x)| ≤1

2n−1

Lause 4.5

Jos polynomi Pn(x) on n-asteinen ja jonka johtavan termin kerroinon yksi, niin

maxx∈[−1,1]

|Pn(x)| ≥1

2n−1max

x∈[−1,1]|Tn(x)| =

1

2n−1.

Keijo Ruotsalainen Matematiikan jaos 19 / 22

Page 20: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Todistus◮ Oletetaan, että on olemassa polynomi Pn(x), jonka asteluku

on n ja

|Pn(x)| <1

2n−1, ∀x ∈ [−1, 1].

◮ Polynomin Tn(x) ääriarvokohdissa xk , k = 0, . . . , n:

Pn(x0) <1

2n−1

Pn(x1) > −1

2n−1

...

◮ Jatkuvuuden nojalla polynomilla Q(x) = Pn(x)−1

2n−1 Tn(x)on T-polynomin ääriarvokohtien välissä ainakin n erinollakohtaa.

Keijo Ruotsalainen Matematiikan jaos 20 / 22

Page 21: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Tod. jatkuu

◮ Pn(x) = xn+. . . , 1

2n−1Tn(x) = xn+· · · ⇒ deg(Q(x)) = n−1

◮ Algebran päälause ⇒ Q(x) ≡ 0, vastoin oletusta.

◮ Näin ollen oletus, että olisi olemassa polynomi Pn(x), joka onkaikille x ∈ [−1, 1] itseisarvoltaan pienempi kuin

1

2n−1

ja jonka johtavan termin kerroin olisi yksi, on väärä.

Keijo Ruotsalainen Matematiikan jaos 21 / 22

Page 22: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Chebyshevin pisteet

◮ Chebyshevin pisteet ovat polynomin ω(x) = 2−nTn+1(x)nollakohdat

x̃k = cos(π

2(n + 1)+

πk

n + 1), 0 ≤ k ≤ n.

◮ Chebyshevin pisteet optimaalinen valinta interpolaatiopisteillevälillä [−1, 1].

◮ Chebyshevin pisteet välillä [a, b]:

xk = a +b − a

2(x̃k + 1).

Keijo Ruotsalainen Matematiikan jaos 22 / 22

Page 23: Funktioiden approksimointi ja interpolointi - Oulus-mat-pcs.oulu.fi/~keba/NumMen/numer_kalvot5.pdf · 2012-02-15 · Polynomi-interpolaatio Interpolaatiopisteet (x0,x1,...,x n) ja

Runge ja Chebyshev

−5 −4 −3 −2 −1 0 1 2 3 4 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−5 −4 −3 −2 −1 0 1 2 3 4 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Keijo Ruotsalainen Matematiikan jaos 23 / 22