handout - Vrije Universiteit Amsterdam

Onderwerpen
Numerieke Methoden I
College 4: Interpolatie
(Hoofdstuk 4)
1. Introductie en voorbeeld van interpolatie
2. Matlab functies
A.A.N. Ridder
3. §4.1 Polynomiale interpolatie
Department EOR
Vrije Universiteit Amsterdam
I
Lagrange
I
Vandermonde
I
Newton
4. §4.2 Fouten analyse van interpolatie
Huispagina: http://personal.vu.nl/a.a.n.ridder/numprog/default.htm
23 september 2014
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
c Ad Ridder (VU)
1 / 41
Numerieke Methoden I – Najaar 2014
2 / 41
Data
R2 (i = 0, 1, . . . , n);
I
Gegeven zijn n + 1 punten (xi , yi ) ∈
I
Verkregen via simulatie of metingen;
Introductie
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
3 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
4 / 41
Probleem
Interpolatie
Interpolerende modellen zijn polynomen en splines;
I
Gevraagd een model op te stellen voor die data;
I
M.a.w. een functie f :
“representeert”;
I
Vele modelleringen zijn mogelijk:
R → R die deze punten “beschrijft” of “reproduceert” of
I
Specifieke klasse van functies (bv polynomen; splines; ...)?
I
Continue functies?
I
Differentieerbare functies (een, twee, drie, ... keer)?
I
Interpolerende functies (f (xi ) = yi voor alle i) of hoeft dat niet?
polynomiale interpolatie alleen door
eerste 10 punten(!)
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
5 / 41
Regressie
c Ad Ridder (VU)
cubic spline
Numerieke Methoden I – Najaar 2014
6 / 41
Smoothing
Fittende (benaderde) modellen zijn regressie en smoothing.
smoothing met splines
lineaire regressie
c Ad Ridder (VU)
smoothing met splines
smoothing met splines
kwadratische regressie
Numerieke Methoden I – Najaar 2014
7 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
8 / 41
Spline regressie
Overzicht
regressie met splines
I
Vandaag: polynomiale interpolatie;
I
Later in Numerieke Methoden I: splines;
I
Regressie en smoothing in andere colleges van (bedrijfs)econometrie;
regressie met splines
Deze functies interpoleren een deelverzameling van de data!
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
9 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
10 / 41
Beschikbare Functies
Vele, bv
Matlab
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
11 / 41
I
polyfit: polynomiale interpolatie
I
interp1: splines (lineair en cubic)
I
spline: cubic splines
I
Zie Pratap §5.2;
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
12 / 41
Voorbeeld
I
Programma
xdata = [-4,-1,3,5,8,10];
ydata = [2,4,-9,1,12,0];
n = length(xdata)-1; % graad van polynoom
p = polyfit(xdata,ydata,n);
disp(p)
x = linspace(min(x)-1,max(x)+1,301); % x-as voor plotten
y = polyval(p,x);
plot(xdata,ydata,’dr’,x,y,’k’,’LineWidth’,2,’MarkerSize’,10);
grid on
set(gca,’GridLineStyle’,’:’);
legend(’data’, ’polynoom’,’Location’,’SouthEast’);
title(’Polynomiale interpolatie’,’FontSize’,16,’FontWeight’,’bold’);
Data 6 punten (n = 5):
xi
yi
−4
2
−1
4
3
−9
5
1
I
De x-coordinaten heten knopen of knooppunten;
I
Gevraagd 5-de graads interpolerend polynoom
8
12
10
0
p(x) = p0 + p1 x + p2 x2 + p3 x3 + p4 x4 + p5 x5 ,
zodat
p(xi ) = yi
c Ad Ridder (VU)
(i = 0, 1, . . . , 5).
Numerieke Methoden I – Najaar 2014
13 / 41
Uitvoer
I
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
14 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
16 / 41
Plot
p = polyfit(xdata,ydata,n) met n = 5 geeft
0.002, −0.055, 0.320, 0.989, −6.488, −3.099.
I
Dit zijn de 6 coefficienten van een 5-de graadspolynoom gerepresenteerd door de
rijvector p.
I
De coefficient van de hoogste macht x5 staat voorop.
I
Dus het polynoom is
p(x) = 0.002x5 − 0.055x4 + 0.320x3 + 0.989x2 − 6.488x − 3.099.
I
Plot, zie volgende slide.
I
Zie ook Pratap §5.2.2.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
15 / 41
Intermezzo
Horner’s Algoritme
I
y = polyval(p,x)
I
Zie pp 8-11 in het boek;
I
met p de vector van de 6 coefficienten van het 5-de graadpolynoom,
I
Efficient algoritme om polynomen te evalueren;
I
en met x een vector met de 301 punten die de ‘x-as’ representeren,
I
Zo is Matlab’s polyval geprogrammeerd;
I
berekent voor elke x(i) (i = 1, . . . , 301) de bijbehorende y(i) volgens
5
4
p(x) = 0.002x5 − 0.055x4 + 0.320x3 + 0.989x2 − 6.488x − 3.099
!
= −3.099 + x − 6.488 + x 0.989 + x 0.320 + x − 0.055 + 0.002x
3
y(i) = p(1) × x(i) + p(2) × x(i) + p(3) × x(i)
+ p(4) × x(i)2 + p(5) × x(i) + p(6).
I
Het resultaat staat in de vector y van lengte 301.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
I
17 / 41
Complexiteit (aantal rekenoperaties) is 2n voor n-de graads polynoomevaluatie.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
18 / 41
Probleem
§4.1 Polynomiale Interpolatie
I
I
R2 (i = 0, 1, . . . , n), met xi 6= xj voor alle i, j;
Vind een n-de graad polynoom p : R → R die deze punten verbindt; i.e.,
Gegeven n + 1 punten (xi , yi ) ∈
p(x) = p0 + p1 x + p2 x2 + · + pn xn ;
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
19 / 41
c Ad Ridder (VU)
zodat p(xi ) = yi ∀ i;
Numerieke Methoden I – Najaar 2014
20 / 41
Discussie
Existentie
Stelling (Theorem 1, blz 157)
Als alle xi 6= xj dan bestaat er een uniek n-de graad interpolerend polynoom.
I
Motivering?
I
In welke situaties doe je deze interpolatie?
I
Geschikt voor veel data?
I
Bestaat er altijd zo een polynoom?
I
Zijn er meer oplossingen of is een gevonden polynoom uniek?
I
Welke methoden en algorititmes zijn beschikbaar?
I
Wanneer nog zelf programmeren ipv Matlab functies?
Bewijs van existentie:
I
Definieer voor i = 0, 1, . . . , n de kardinale polynomen
`i (x) =
I
Y x − xj
.
x − xj
j6=i i
(2)
Dan is de Lagrange vorm van interpolerend polynoom:
p(x) =
n
X
(1)
yi `i (x);
i=0
I
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
21 / 41
Bewijs
Bewering: p(x) is een oplossing.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
22 / 41
Existentie en Uniciteit
I
Gezocht coefficienten p0 , p1 , . . . , pn van polynoom p zodat voor i = 0, . . . , n:
p(x0 ) = y0 ⇔ p0 + p1 x0 + p2 x02 + · · · + pn x0n = y0
p(x1 ) = y1 ⇔ p0 + p1 x1 + p2 x12 + · · · + pn x1n = y1
I
Elke `i (x) is een n-de graad polynoom;
I
Som van n-de graad polynomen is een n-de graad polynoom;
I
Substitueer x = xk in (1):
(
1
`i (xk ) =
0
..
.
..
.
p(xn ) = yn ⇔ p0 + p1 xn + p2 xn2 + · · · + pn xnn = yn
voor i = k;
voor i =
6 k;
I
⇒ p(xk ) = yk ;
Dit is een stelsel lineaire vergelijkingen Vp = y, met onbekende p en gegeven
matrix V en gegeven rechterkant y:

1 x0 x02 · · · x0n
2
n
1 x 1 x
· · · x1 
1

V=
. . . . . . . . . . . . . . . . . . . .
2
n
1 xn xn · · · xn

c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
23 / 41
c Ad Ridder (VU)
 
y0
y 1 
 
y=.
 .. 
Numerieke Methoden I – Najaar 2014
yn
24 / 41
Existentie en Uniciteit (vervolg)
Voorbeeld
I
Dit is een bekende matrix, een zogeheten Vandermonde matrix;
I
Als alle xi 6= xj , dan is de matrix V niet-singulier; i.e.,
xi
yi
1
1

1
V=
1
1
1

det(V) 6= 0
I
Stelsel is oplosbaar met oplossing p = V −1 y;
I
Dat wil zeggen dat een oplossing bestaat;
I
En dat de oplossing uniek is.
I
´ interpolerend polynoom.
Dus er is precies e´ en
−4
2
−1
4
3
−9
−4
−1
3
5
8
10
16
1
9
25
64
100
−64
−1
27
125
512
1000
5
1
8
12
256
1
81
625
4096
10000
10
0

−1024
−1 

243 

3125 
32768 
100000
Stelsel Vp = y oplossen in Matlab via p = V \ y geeft waarschuwing dat de matrix V
slecht geconditioneerd is.
Dat wil zeggen dat een kleine wijziging in de data een heel ander oplossing geeft.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
25 / 41
Illustratie
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
26 / 41
Numerieke Methoden I – Najaar 2014
28 / 41
Uniciteit
Oplossing van p = V \ y is
−3.0993 − 6.4882 0.9885 0.3203 − 0.0552 0.0020
Verander V(5, 2) van 8 in 10. Oplossing is
I
Alternatief bewijs van uniciteit;
I
Zie boek blz 157.
−1.1430 − 5.2819 0.1636 0.2910 − 0.0128 − 0.0013
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
27 / 41
c Ad Ridder (VU)
Newton’s Vorm
Newton’s gedeelde differenties
Definieer f [xi ] = yi , en voor 0 ≤ i < j ≤ n:
f [xi , . . . , xj ] =
I
Derde constructie (na Lagrange en Vandermonde);
I
Het interpolerende polynoom wordt geconstrueerd door
p(x) =
n
X
ai
i=0
I
f [xi+1 , . . . , xj ] − f [xi , . . . , xj−1 ]
.
xj − xi
(13)
De tabel van gedeelde differenties (voor n = 3):
i−1
Y
(x − xi ).
(3)
xi
x0
f [·]
f [x0 ]
x1
f [x1 ]
f [·, ·]
f [·, ·, ·]
f [·, ·, ·, ·]
f [x0 , x1 ]
j=0
¨
¨
Waarin de coeffici
enten
ai bepaald worden als de divided differences (gedeelde
differenties) van de gegevensvector y (zie volgende slide).
f [x0 , x1 , x2 ]
f [x1 , x2 ]
x2
f [x2 ]
x3
f [x3 ]
f [x0 , x1 , x2 , x3 ]
f [x1 , x2 , x3 ]
f [x2 , x3 ]
De constanten ak in Newton’s interpolatieformule staan in de bovenste diagonale rij:
ak = f [x0 , . . . , xk ] (k = 0, . . . , n).
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
29 / 41
Voorbeeld
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
30 / 41
Bewijs Newton’s interpolatie
−1
2
xi
yi
xi
−1
f [·]
2
f [·, ·]
−4−2
1−(−1)
1
5
5
10
f [·, ·, ·]
5−(−3)
3−(−1)
=2
2−5
5−1
− 34
=5
6
10−6
5−3
3
6
Lemma
Zij p(x) een k-de graads polynoom die (xi , yi )ki=0 interpoleert. En Zij q(x) een k-de
graads polynoom die (xi , yi )k+1
i=1 interpoleert. Dan is
f [·, ·, ·, ·]
= −3
−4
6−(−4)
3−1
3
1
−4
=
r(x) =
− 11
24
een k + 1-ste graads polynoom dat (xi , yi )k+1
i=0 interpoleert.
=2
Bewijs Lemma: substitutie.
10
Stelling (Theorem 2; blz 163
Bovenste rij geeft de constanten ak :
ak = f [x0 , . . . , xk ] in Newton’s interpolatieformule.
p(x) = 2 − 3(x + 1) + 2(x + 1)(x − 1) −
c Ad Ridder (VU)
(x − x0 )q(x) − (x − xk+1 )p(x)
xk+1 − x0
11
(x + 1)(x − 1)(x − 3).
24
Numerieke Methoden I – Najaar 2014
Bewijs Stelling: inductie naar k en het Lemma gebruiken.
31 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
32 / 41
Methoden en Algoritmen
Discussie
Waarom verschillende algoritmes?
We hebben gezien:
1. Lagrange vorm;
Ze produceren allemaal hetzelfde interpolerende polynoom p bij gegeven data
(xi , yi )ni=0 .
2. Vandermonde matrix;
Elk algoritme heeft voordeel/nadeel t.o.v. de andere algoritmes.
3. Newton’s vorm;
Bv:
4. Er zijn nog vele andere methoden, zie pp 169–172; en de website
http://mathworld.wolfram.com/topics/Interpolation.html
I
Vandermonde matrix is slecht geconditioneerd;
I
De polyfit van Matlab geeft de coefficienten van het interpolerend polynoom;
NB: Matlab’s polyfit is gebaseerd op 2 (Vandermonde matrix), maar lost
bijbehorende stelsel geavanceerd en efficient op.
I
Lagrange geeft direct de polynoomwaarde in elke x (maar niet de coefficienten);
I
Als een datapunt (xn+1 , yn+1 ) wordt toegevoegd, vereist de Newton’s formule veel
minder rekenwerk dan de Lagrange formule om het nieuwe polynoom te bepalen;
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
33 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
34 / 41
Probleem
Gegeven
§4.2 Fouten in
Polynomiale Interpolatie
R;
I
Een functie f : [a, b] →
I
knoopunten a ≤ x0 < x1 < · · · < xn ≤ b;
I
yi = f (xi ), i = 0, . . . , n;
I
p(·) het interpolerend polynoom door (xi , yi )ni=0 ;
Polynoom p(·) kan beschouwd worden als een benadering van de functie f (·) op het
interval [a, b];
Duidelijk is dat f (xi ) − p(xi ) = 0 in alle knopen xi ;
Gevraagd de fout te bepalen in elk punt x ∈ [a, b], dwz
f (x) − p(x).
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
35 / 41
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
36 / 41
Stelling
Bewijs
I
Kies een x ∈ [a, b];
I
Definieer de functies w(t) =
Stelling (Theorem 1; blz 181)
− xi ) en
n
Y
1
f (n+1) (ξ)
(x − xi ).
(n + 1)!
i=0
I
φ(t) heeft n + 2 nulpunten: x0 , . . . , xn , x.
Pas nu de stelling van Rolle n + 1 keer toe (op φ en zijn afgeleiden)!
I
φ0 heeft n + 1 nulpunten;
(2)
Numerieke Methoden I – Najaar 2014
37 / 41
Intermezzo: Uit de Analyse
f (x) − p(x)
w(t).
w(x)
I
I
c Ad Ridder (VU)
i=0 (t
φ(t) = f (t) − p(t) −
Veronderstel dat f (·) een n + 1 keer continu differentieerbare functie is, en dat p(·) het
n-de graads polynoom is dat de punten (xi , f (xi ))ni=0 interpoleert, waarbij
a ≤ x0 < x1 < · · · < xn ≤ b. Dan bestaat voor elke x ∈ [a, b] een punt ξ ∈ (a, b) zodat
f (x) − p(x) =
Qn
I
φ00 heeft n nulpunten;
I
···
I
φ(n+1) heeft 1 nulpunt, zeg ξ;
Werk uit φ(n+1) (ξ) = 0.
Merk op dat p(n+1) (ξ) = 0 en w(n+1) (ξ) = (n + 1)!.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
38 / 41
Illustratie
f (x) = (x2 + 1)−1 op [−5, 5] en 21 punten xi ∈ [−5, 5] (i = 0, 1, . . . , 20).
Stelling van Rolle
Als een functie f voldoet aan de voorwaarden:
1. f is continu op het gesloten interval [a, b];
2. f is differentieerbaar op het open interval (a, b);
3. f (a) = f (b);
dan bestaat er een getal c in het open interval (a, b), waarin de afgeleide van f gelijk is
aan 0 (f 0 (c) = 0).
Punten op gelijke afstand:
xi = −5 + 12 i.
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
39 / 41
c Ad Ridder (VU)
Chebyshev punten:
xi = 5 cos(iπ/20).
Numerieke Methoden I – Najaar 2014
40 / 41
Toelichting
I
Bekend fenomeen van polynomiale interpolatie is het Runge’s effect: het
interpolerend polynoom p geeft steeds grotere afwijkingen van de functie f als het
aantal punten n toeneemt en de knopen op gelijke afstand liggen;
I
Het effect is veel minder bij een slimmere keuze van knopen x0 < x1 < · · · < xn ;
I
Bv zogeheten Chebyshev abscissen; dwz nulpunten van Chebyshev polynomen;
c Ad Ridder (VU)
Numerieke Methoden I – Najaar 2014
41 / 41