Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Funktioiden approksimointi ja interpolointi
Keijo Ruotsalainen
Division of Mathematics
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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