INTERPOLAZIONE Quali condizioni si possono richiedere sulla

Transcript

INTERPOLAZIONE Quali condizioni si possono richiedere sulla
INTERPOLAZIONE
Problema generale di INTERPOLAZIONE
Dati n punti distinti (x i,yi)i=1,..,n
si vuole costruire una funzione f(x)
tale che nei nodi (x i)i=1,..n
soddisfi a certe condizioni, dette
Condizioni di interpolazione
Quali
Quali condizioni
condizioni si
si possono
possono richiedere
richiedere
sulla
sulla funzione
funzione interpolante
interpolante ??
1
Esempio 1
condizioni di interpolazione:
la funzione deve passare per i punti assegnati
in ciascun nodo
xi è assegnata una condizione
sulla funzione interpolante
x1
y1
x2
y2
…
xn
y2
Interpolazione di Lagrange
2
Interpolazione di Lagrange: formulazione generale
Sia F uno spazio di funzioni di variabile
reale o complessa.
Assegnati:
• n valori distinti reali o complessi {xi } i=1,..n
• n valori distinti reali o complessi {y i} i=1,..n
Si cerca una funzione f(x)∈F tale che:
f(xi)=yi i=1,…,n
Condizioni di interpolazione di Lagrange
Esempio 2
condizioni di interpolazione:
la funzione deve passare per i punti assegnati
con una fissata tangente
3
In ciascun nodo sono assegnate condizioni
sulla funzione f(x) e sulle sue derivate….
x1 x2
y01 y02
y11 y12
y22
y32
…
…
…
xn-1 xn
y0n-1 y0n
y1n-1 y1n
y2n-1
N.B.….se è assegnata in un nodo la condizione sulla derivata di
ordine q, deve essere assegnata anche la condizione sulle
derivate dall’ordine 0 fino a q-1.
Interpolazione di Hermite
Interpolazione di Hermite: Formulazione generale
Sia F uno spazio di funzioni di variabile
reale o complessa.
Assegnati
n numeri interi {li } i=1,..n tali che
Σ
n
i=1 li
= m+1
n valori distinti reali o complessi {xi }i=1,..n
m+1 valori distinti reali o complessi {y ji } i=1,…,n
j=0,1,…,l i -1
Si cerca una funzione f ∈F tale che:
f(j)(xi)=yji
i=1,…,n
j=0,1,…,l i-1
Condizioni di interpolazione di Hermite
4
In ciascun nodo c’è almeno una condizione
sulla funzione o sulla derivata di
qualunque ordine
x1 x2
y01 y02
y11
y22
y32
xn-1 xn
y0n-1 y0n
y1n
y2n-1
…
…
…
Interpolazione di Hermite-Birkoff
….
….quale
quale forma
forma può
può avere
avere una
una
funzione
funzione interpolante
interpolante
??
OVVERO:
OVVERO:
quale
quale spazio
spazio di
di funzioni
funzioni FF
utilizzare
utilizzare
??
5
Esempio
x
-2
-π/2
-1
π/ 3
π/ 2
3
y
0.41
1.08
-0.31
-0.39
-1.58
-0.97
Interpolazione mediante polinomio di quinto grado
x
-2
-π/2
-1
π/ 3
π/ 2
3
y
0.41
1.08
-0.31
-0.39
-1.58
-0.97
6
Interpolazione mediante polinomio
trigonometrico di quinto grado
x
-2
-π/2
-1
π/ 3
π/ 2
3
y
0.41
1.08
-0.31
-0.39
-1.58
-0.97
un confronto ……
Quale funzione scegliere
?
7
In generale,
la scelta della forma della funzione interpolante
ovvero
la scelta dello spazio F dipende :
• dalle caratteristiche del problema reale
•
dal costo computazionale relativo alla costruzione ed
alla valutazione della funzione interpolante
….
….fissiamo
fissiamo
lo
lo spazio
spazio dei
dei polinomi
polinomi
….
…. Costruiamo
Costruiamo ilil polinomio
polinomio
interpolante
interpolante di
di Lagrange
Lagrange
….è unico ?
8
Esempio: Siano P1, P2 due punti fissati.
Esistono infinite parabole per P1, P2
Ma una sola retta per P1, P2
dati
dati ii due
due punti
punti che
che grado
grado deve
deve avere
avere ilil
polinomio
polinomio affinché
affinché la
la curva
curva
interpolante
interpolante sia
sia univocamente
univocamente determinata
determinata
??
9
Quindi...
1) Per m < 1
(in generale m< n-1 )
Non esiste alcun polinomio interpolante
( tranne se i due punti hanno la stessa ordinata )
2) Per m =1
(in generale m=n-1 )
Esiste un unico polinomio di grado 1 interpolante i due punti
( esiste un’unica retta passante per due punti )
3) Per m > 1 (in generale m >n-1 )
Esistono infiniti polinomi di grado maggiore di 1
interpolanti i due punti
( esistono infinite parabole, cubiche , etc. per due punti )
Teorema
Dati
n nodi distinti {xi } i=1,..n
n valori corrispondenti {yi } i=1,..n
il polinomio p(x)∈Π m tale che:
p(xi ) = yi i=1,…,n
è unico se:
m = n-1
10
Dimostrazione 1
Siano p(x), q(x) ∈Π n-1 tali che:
p(xi ) = yi i=1,..n
q(xi ) = yi i=1,..n
Dimostriamo che i due polinomi sono identicamente
uguali. Posto:
z(x) = p(x)- q(x)
Si ha:
(z(x) ∈Π n-1 )
z(xi ) = 0 i=1,..n
1/2
1)Se z(xi ) = 0 i=1,..n ⇒ il polinomio ha n zeri distinti
⇓
z(x) =a(x- x1) (x- x2)… (x- xn) a∈ℜ
2) Un polinomio non nullo di grado al più n-1 ha al più
n-1 zeri distinti
(Teorema fondamentale dell’algebra)
3) L’unico polinomio al più di grado n-1 che ha n zeri
distinti è il polinomio identicamente nullo
z(x) è il polinomio identicamente nullo
cioè p(x)=q(x)
2/2
11
Dimostrazione 2
Se p(x) ∈Π n-1 è il polinomio interpolante gli n punti:
(xi , yi ) i=1,..n
dovendo soddisfare le condizioni di interpolazione
p(xi ) = yi i=1,..n
a0 + a1x1 +…+ an-1x1
n-1
=y 1
⇓
………………………………………………………………
a0 + a1xi +…+ an-1xi n-1 =yi
………………………………………………………………
a0 + a1xn +…+ an-1xn n-1 =y n
Sistema lineare di dimensione n
1/4
La matrice dei coefficienti di questo sistema è:
1

1
V =
...

 1
x1 ... x1n −1 

x2 ... x2n −1 
... ... ... 

xn ... xnn −1 
Matrice di Vandermonde
n
det(V ) = ∏ ( xi − x j )
j =1
i> j
2/4
12
Esistenza ed unicità del polinomio
Esistenza ed unicità della soluzione del sistema
lineare
Dimostriamo che il sistema ammette una ed
una sola soluzione
3/4
Poiché i nodi sono a due a due distinti allora
det(V)≠0
Il sistema è non singolare
Esiste un’unica soluzione
c.v.d
4/4
13
….
….quali
quali condizioni
condizioni garantiscono
garantiscono
l’unicità
l’unicità del
del polinomio
polinomio
interpolante
interpolante di
di Hermite
Hermite
??
ESEMPIO 6 Traiettoria di una pallottola
Una pallottola è sparata vero l’alto dalla sommità di un edificio
alto 100 m. Dopo 10 sec. dal lancio la pallottola raggiunge la
massima altezza a 590 . Disegnare la traiettoria della pallottola.
Q2 (10,590)
Q1 (0,100)
14
Come
Come costruire
costruire la
la
parabola
parabola che
che descrive
descrive la
la
traiettoria
traiettoria della
della pallottola
pallottola ??
L’espressione della parabola è p(x) = ax2 + bx + c
Sappiamo che p(0)=100
p(10)=590
Possono esistere
Più parabole…
•Q2 (10,590)
II condizione
I condizione
Q1 (0,100)
III condizione
Sappiamo inoltre che il punto
Q2 è il vertice della parabola
Esiste una sola
parabola…
15
Si ottiene il sistema …
p(x1)=y 1
ax12 + bx1 + c=y1
p(x2)=y2
ax22 + bx2 + c=y2
p’(x2)=0
2ax2+b=0
c=100
c=100
100 a + 10 b + 100=590
20a+b=0
b=88
a=4.4
UNICA SOLUZIONE
Interpolazione di Hermite
n=2 nodi
( 2 punti per cui deve passare la parabola)
m=3 nodi condizioni di interpolazione
(appartenenza dei due punti alla parabola + vertice
nel primo)
# condizioni
=
# incognite
16
TEOREMA
Dati
n nodi distinti {xi } i=1,..n
n numeri interi positivi {li } i=1,..n tali che
Σ ni=1 li = m+1
ed m+1 valori {y ji } con i=1,…,n j=0,1,…,l i-1
Il polinomio p (x) ∈ Π q tale che:
p(j)(xi )=y ji
è unico se:
q=m
Dimostrazione
Siano p(x), q(x) ∈Π m tali che:
p(j) (xi ) = y ji i=1,..n j=0,1,…,l i -1
q(j) (xi ) = y ji i=1,..n j=0,1,…,l i-1
dimostriamo che i due polinomi sono identicamente
uguali. Posto:
z(x) = p(x)- q(x)
(z(x) ∈Π m )
dimostriamo che z(x) è un polinomio identicamente
nullo. Si ha:
z(j) (xi ) = 0
1/2
17
Un polinomio z∈Π m tali che:
z(j) (xi ) = y ji i=1,..n j=0,1,…,l i -1
È necessariamente del tipo:
z(x) =a(x- x1)l1 (x- x2) l2 … (x- xn)
ln
a∈ℜ
Cioè ammette n zeri distinti x1 x2 … xn rispettivamente
con molteplicità :
l 1 , l 2 ,… ,l n
n
Poiché Σ i=1 li =m+1 e siccome z(x) ha la più grado m, z(x) è
necessariamente il polinomio identicamente nullo.
c.v.d
2/2
In generale…
Se poniamo F = Πm
spazio dei polinomi di
grado al più m
Interpolazione polinomiale
di Lagrange
di Hermite
18
Sia per l’interpolazione di Lagrange
che per
l’interpolazione di Hermite
l’unicità
della soluzione è garantita
# condizioni
=
# incognite
Metodi costruttivi del
polinomio interpolante di
di LAGRANGE
19
METODO DEI COEFFICIENTI INDETERMINATI
p(x) ∈Π n-1
è
p(x)= a0 + a1x +…+ an-1xn-1
Imponendo le condizioni di interpolazione
p(xi) = yi i=1,..n
p(x1 ) = y1
a0 + a1 x1 +…+ an-1 x1 n-1 =y 1
p(x2 ) = y2
a0 + a1 x2 +…+ an-1 x2 n-1 =y 2
…..…..
p(xn) = yn
……………………………
a0 + a1 xn +…+ an-1 xn n-1 =y n
Sistema di equazioni lineari di ordine n
La matrice dei coefficienti di questo sistema è:
1
1
V=
...
1

x1
x2
... x1n−1 
... x2n−1 

... ... ... 
xn ... xnn−1 
n
det(V) = ∏ (x i − x j )
j =1
i> j
Matrice di Vandermonde
( mal condizionata!)
20
Formula di Lagrange
Esempio: Siano P1(x1,y 1), P2(x2,y 2) punti del piano.
Costruiamo il polinomio p(x) interpolante P1, P2 .
Poniamo
p(x) =y 1 l 1 (x) + y 2 l2(x)
con l1(x), l2(x)
polinomi
di primo grado.
Di che tipo devono essere i polinomi l1(x) e l2(x)?
Dalle condizioni di interpolazione
1
0
p(x1) = y 1 l1 (x1) + y2 l2(x1) = y1
p(x2) = y 1 l1 (x2) + y 2 l2(x2) = y 2
0
l1(x2)=0
l2(x1)=0
l1(x1)=1
l2(x2)=1
1
l1(x)= a (x(x-x2)
l2(x)= b (x(x-x1)
l1(x1)= a (x1-x2) =1
l2(x2)= b (x2-x1)=1
a=1/(x1-x2)
b=1/(x2-x1)
21
Cioè:
p(x) = y1
(x − x2 )
(x − x1 )
+ y2
(x1 − x2 )
(x 2 − x1 )
IN GENERALE:
GENERALE :
p(x) = y1l 1(x) + y2 l 2 (x)+ ... + yn l n (x) FORMULA DI
LAGRANGE
con
n
l i(x) = ∏
j=1
j≠i
(x − xj )
i -mo polinomio fondamntale
di Lagrange
(xi − xj )
Complessità computazionale della formula di Lagrange
n
li (x) = ∏
i =1
i ≠j
(x − xi )
(xi − x j )
(n − 1)( 2 A + 1M )
complessità computazionale di un polinomio fondamentale di Lagrange
n
p(x) = ∑ yi li (x)
n [( n − 1)(2 A + 1M ) + M ]
i =1
complessità computazionale della formula di Lagrange
T (n) = O(n 2 )
22
Formula di Lagrange
nodi
( xi , yi )
punto di
valutazione
z
formula di
Lagrange
p (z )
valore del
polinomio in z
Complessità computazionale
T (n) = O(n 2 )
E se si vuole
cambiare il punto di
valutazione z ?
Osservazione
La formula di Lagrange
p(x) = y1l 1(x) + y2l 2(x) + ... + ynl n (x)
valuta il polinomio
contemporaneamente alla sua determinazione
cambiare punto di
valutazione
Rifare tutti i calcoli
(Complessità computazionale
T (n) = O(n 2 ) )
23
MA
se si conoscessero i coefficienti,
quanto costerebbe valutare il polinomio?
L’algoritmo di Horner valuta un polinomio
con una complessità T(n)=O(n)
Obiettivo:
Separare il calcolo dei coefficienti
del polinomio di Lagrange
dalla valutazione del polinomio stesso
FORMULA DI NEWTON
Assegnato il punto P1 =(x1,y 1)
Qual’e’ il polinomio P(0)(x)= a0 di grado 0
che interpola P1 ?
y1
x1
Imponendo la condizione di interpolazione P(0)(x1)= y 1
a0 = y 1
P(0)(x)= y1
24
Assegnato ora il punto P2 =(x2,y2)
Qual’e’ il polinomio P(1)(x) di grado 1
che interpola P2 (oltre che P1 ) ?
(x2 , y2 )
P(0)(x)=y 1
incognita
P(1)(x) = P(0)(x) + a1 (x-x1) = y 1+a1 (x-x1)
Determiniamo a1 imponendo che la retta passi oltre
che per (x 1,y 1 ) anche per (x2,y 2):
y 2 = P(1)(x2) =y1+a1(x2-x1)
a1 =
y2 − y1
x2 − x1
P (1) (x) = a0 + a1 (x − x 1 )
con
a0 = y 1
a1 =
y2 − y1
x2 − x1
25
Assegnato ora il punto P3 =(x3,y3)
Qual e’ il polinomio P(2)(x) di grado 2
che interpola P3 (oltre che P1 e P2 )?
P(1)(x)=y1 +a1 (x-x1 )
(x3 , y3 )
incognita
P(2)(x) = P(1)(x) +a2 (x-x1)(x-x2) = a0+a1 (x-x1) +a2 (x-x1)(x-x2)
Determiniamo a2 imponendo che la retta passi oltre
che per (x 1,y 1 ) e (x2,y 2) anche per (x3,y 3):
y 3 = P(2)(x3) =y 1 + a1 (x-x1) +a2 (x-x1)(x-x2)
y3 − y1 y2 − y 1
−
x3 − x1 x2 − x1
a2 =
x3 − x2
P (1) (x) = a0 + a1 (x − x1 ) + a2 (x − x1 )(x − x2 )
con
a0 = y 1
y − y1
a1 = 2
x2 − x 1
y 3 − y 1 y 2 − y1
−
x 3 − x1 x 2 − x1
a2 =
x3 − x2
26
FORMULA DI NEWTON
IDEA: costruire
il polinomio P(k-1) interpolante k punti (xi ,yi ) i=1,…,k
a partire
(k-2)
dal polinomio P
interpolante k-1 punti (xi ,yi ) i=1,…,k-1
P(k-1)(x) = P(k-2)(x) + Q(x)
con Q(x) = ak-1 (x-x1)(x-x2)...(x-xk-2)
k=1,2,....
e
P(0)(x)= y 1
FORMULA DI NEWTON
P(x)=a0+a1(x-x1)+…+an-1(x-x1)…(x-xn-1)
a0 = y 1
y − y1
a1 = 2
x2 − x 1
y3 − y1 y 2 − y1
−
x3 − x1 x 2 − x1
a2 =
x3 − x2
Osservazione
I coefficienti del polinomio
dipendono solo
dai nodi di interpolazione:
In generale come calcolare ak ?
27
Definizione:
y [x1 , x 2 ] =
y2 − y1
x2 − x 1
differenza divisa del primo ordine
y [x1 , x 2 ,...,xk ] =
y [x2 , x3 ,...,x k ] − y [x 1 , x2 ,...,xk -1 ]
x k − x1
differenza divisa di ordine k-1
Proprietà fondamentale delle differenze divise:
Detta i1 , i2 ,..., ik una permutazione degli indici 1,2,..,k
[
y[x1,x2,...,xk ] =y xi1 ,xi2 ,...,xik
]
non è importante l’ordine
con cui vengono interpolati i nodi
Esempi:
y [x1, x2 ] = y[x2, x1 ]
y[x1 , x2 , x3 ] = y[x3 , x2 , x1 ]
28
Teorema:
Dati
n nodi distinti {xi } i=1,..n
n valori corrispondenti {yi } i=1,..n
Detto
P(x)=a0+a1(x-x1)+…+an-1(x-x1)…(x-xn-1)
il polinomio interpolante di Lagrange
ak = y[x1x2…xk-1]
k=0,1,..,n-1
i coefficienti del polinomio di Lagrange
sono differenze divise
Dimostrazione (per induzione)
Siano:
• P(k-1)(x) polinomio interpolante i nodi x1,x2,…,xk
(per ip. di induzione)
P(k-1)(x) = P(k-2)(x) + y[x1… xk](x-x1)…(x-xk-1)
P(k-1) ∈∏k-1
• Q(k-1)(x) polinomio interpolante i nodi x2,…,xk+1
(per ip. di induzione)
Q(k-1)(x) = Q(k-2)(x) + y[x2… xk+1](x-x2)…(x-xk) Q(k-1) ∈∏k-1
29
Consideriamo il polinomio:
R(x) =
(x − x 1 )Q (k -1) (x) − (x − x k +1 )P (k- 1) (x)
x k +1 − x k
R(x) ∈ ∏k
Poiché R(xi)=yi i=1,…,k+1
( R(x) interpola i nodi x1, x2,…, xk+1)
Per l’unicità del polinomio interpolante
R(x) = P(k)(x)
per il principio di identità dei polinomi
coefficiente di
coefficiente di
grado massimo di P(k) (x)
grado massimo di R(x)
coincide
ak =
y[x2 ...x k +1 ] − y[x1 ...x k ]
x k +1 − x 1
= y [x1 ,..., xk +1 ]
30
Algoritmo costruttivo delle differenze divise
nodo 1
a0
x1 y1
a1
nodo 2
x2 y2
y[x1 x2]
nodo 3
x3 y3
y[x1 x3]
y[x1 x2 x3]
nodo 4
x4 y4
y[x1 x4]
y[x1 x2 x4]
y[x1 x2 x3 x4]
y[x1 x5]
y[x1 x2 x5]
y[x1 x2 x3 x5]
nodo 5
x5 y5
a2
a3
a4
y[x1 x2x3x4x5]
Complessità computazionale della formula di Newton
calcolo di a1
1 differenza divisa
calcolo di a2
2 differenze divise
calcolo di a3
3 differenze divise
calcolo di an-1
n-1 differenze divise
Totale = 1 + 2 +....+ n-1 = n(n-1)/2 differenze divise
T(n) =
n(n − 1)
(2A + 1M ) = O(n 2 )
2
31
Formula di Newton
nodi
(x i , y i )
formula di
Newton
T (n) = O(n 2 )
E se si vuole
cambiare il punto di
valutazione z ?
z punto di
coefficienti
valutazione
algoritmo di
Horner
Solo algoritmo
di Horner
T (n) = O(n)
T (n) = O(n)
p(z)
valore del
polinomio in z
E se si vuole aggiungere un nodo?
nodo 1
x 1 y1
nodo 2
x 2 y2
y[x 1 x 2]
nodo 3
x 3 y3
y[x 1 x 3]
y[x 1 x 2 x 3]
nodo 4
x 4 y4
y[x 1 x 4]
y[x 1 x 2 x 4]
nodo 5
x 5 y5
y[x 1 x 5]
nodo 6
x 6 y6
y[x 1 x 6]
y[x 1 x 2 x 5]
y[x 1 x 2 x 6]
y[x 1 x 2 x 3 x 4]
y[x 1 x 2 x 3 x 5]
y[x 1x 2x 3x 4x 5]
y[x 1 x 2 x 3 x 6]
y[x 1x 2x 3x 4x 6]
calcolo del solo coefficiente a5
a5
y[x 1x 2x 3x 4 x 5x 6]
T(n)=O(n)
32
Algoritmo di Horner per la valutazione dei polinomi
Si vuole valutare un polinomio p(x) di grado n
in un punto z.
Esempio:
p(x) = a0 + a1 x + a2 x2 + a3 x3 + … + an xn
Idea dell’algoritmo
L’algoritmo si basa sull’idea
di calcolare il valore del polinomio
nell’indeterminata x,
mediante successive messe in evidenza .
33
Esempio
Un polinomio di grado 3
P(x)=a3 x3 + a2 x2 + a1 x + a0
può scrivere nella forma:
(a3 x2 + a2 x + a1) x + a0
e ancora come:
((a3 x + a2) x + a1 ) x + a0 .
Da cui si ricava una semplice
relazione per ricorrenza:
y1 = a3 * x;
y2 = y1 + a2;
y3 = y2 * x;
y4 = y3 + a1;
y5 = y4 * x;
y6 = y5 + a0;
34
In generale
p(x)= an xn + … + a3 x3 + a2 x2 + a1 x + a0
avremo:
y1 = an * x;
y2 = y1 + an-1;
…
yn-1 = yn-2 * x;
yn = yn-1 + a0.
In matlab
function p=valnewton(a,x,xval)
n=length(x);
nval=length(xval);
p=a(n)*ones(1,nval);
for i=n:-1:1
p=p.*(xval-x(i))+a(i);
end
35