Fitting di dati - "PARTHENOPE"

Fitting di dati
La prima fase del processo di risoluzione
di un problema mediante elaboratore consiste nella
descrizione del problema
mediante un
modello matematico
Spesso le uniche informazioni sul
problema in esame consistono in un
insieme finito di dati
• misure sperimentali
• valori assunti da una funzione in certi punti
• dati provenienti da indagini statistiche
Si vuole costruire una funzione che,
che in qualche modo,
modo
possa rappresentare il fenomeno
La costruzione di tale funzione può avvenire in
diversi modi che dipendono:
•dagli scopi per cui si vuole costruire il modello:
•valutare il fenomeno in punti diversi da quelli
noti (nodi)
•semplice visualizzazione dei dati
•previsioni
•dalla qualità dei dati:
•i valori sono solo sperimentali e:
• giudicati esatti
• sono affetti da errori di misura
•i valori sono ottenibili per via analitica
•ecc.
•ecc
La funzione lineare a tratti costruita unendo i p
punti di coordinate (x,P) p
può
essere un modello utile per visualizzare i dati.
E’ utile per estrapolare?
Sapendo
S
d che
h l’l’estensione
t
i
d
della
ll molla,
ll nell’intervallo
ll’i t
ll considerato,
id
t è
direttamente proporzionale alla forza, un modello attendibile può essere la
la retta in figura che non passa per i punti (x,F) ma solo “vicino”.
Gli esempi precedenti costituiscono due semplici
esempi di MODELLI basati sull’interpolazione dei dati
Il problema generale dell’interpolazione
dell interpolazione è il seguente:
Assegnati n punti di coordinate (xi,yi), i=1,2,...,n,
i 1,2,...,n, e una
funzione F(x,a0,a1,...,am) che dipende dai parametri
a0,a1,...,am, si vogliono determinare i valori da assegnare
ai parametri affinché risulti:
i 1,2,...,n
• I caso F(x,a0,a1,...,am) = yi, i=1,2,...,n
• II caso F(x,a0,a1,...,am) ≈ yi, i=1,2,...,n
Qualità e quantità dei dati
Caratteristiche del problema
p
INTERPOLAZIONE
Matematica
Costruire una
f
funzione
i
che
h passii
per i punti assegnati
INTERPOLAZIONE
Statistica
Costruire una funzione
che
h sii scosti
ti poco dai
d i
dati
Modello che assume
esatti
tti i dati
d ti d
dell
problema
Modello che assume
affetti
ff tti d
da errore i
dati del problema
Interpolazione
Matematica
Interpolazione matematica
• Una possibile classe di funzioni
parametriche è quella costituita dai
p
polinomi:
F(x,a0,a1,...,am) = Pm(x) = a0 +ax
1 +... +amx
m
Problema dell’interpolazione di
Lagrange
Assegnati
ssegnat n punti
punt (x
( i , yi ) ssi vuole
uo e costruire
costru re un
polinomio Pm(x) che nei nodi soddisfi le
z
condizioni
Pm ( xi ) = yi , i = 11,K, n
Di che
h grado
d m deve
d
essere ill polinomio
l
interpolante affinché esista e sia unico?
Esempio
p
3 Punti allineati
3
2.5
Esiste un sol polinomio di
primo grado
d passante per
tre punti allineati
2
1.5
data 1
linear
1
0.5
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
3
Esempio
p
3 Punti non allineati
2
1.5
data 1
quadratic
1
0.5
0
-0.5
-1
-1.5
-2
-2.5
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
3
Polinomio di secondo grado
Esiste un sol polinomio di
secondo grado passante per tre
punti non allineati
Non esiste un p
polinomio di primo
p
grado (retta) passante per 3 punti
non allineati
Infiniti polinomi di
grado
d maggiore
i
di
2
Teorema di Lagrange
Assegnati n punti del piano (xi , yi ), esiste un
polinomio di grado
g
al p
più n-1 tale che
sol p
Pn−1 ( xi ) = yi , i = 1,K, n
Esercizio
E
Di che grado è il polinomio passante per i punti
generati con queste istruzioni?
x=1:15
y=x.^3-2*x-1
Esempio
punti,,
Dati 3 p
si vuole costruire la p
parabola
passante per i punti assegnati
3 coefficienti
ffi i ti d
da calcolare
l l
(a, b,
b c)
3 condizioni di interpolazione
Sistema di equazioni
lineari nelle incognite
a, b, c
Metodo dei coefficienti indeterminati
Metodo dei coefficienti
indeterminati
In generale
I
l assegnati
ss
ti n punti
ti si costruisce
st is il sistema
sist m
imponendo le condizioni di interpolazione
⎧ a1 x1n−1 + a2 x1n−2 + L + an−1 x1 + an = y1
⎪ a1 x2n−1 + a2 x2n−2 + L + an−1 x2 + an = y2
⎨
L
⎪ n−1
n−2
a
x
+
a
x
+ L + an−1 xn + an = yn
2 n
⎩ 1 n
Mc = y
⎛ x1n−1
⎜ x n−1
M =⎜ 2
L
⎜ x n−1
⎝ n
x1n−2 L x10 ⎞
n−2
0⎟
x2
L x2 , c = a ,L a T , y = y ,L y T
(
(
1
n)
1
n)
⎟
L
n−2
0⎟
xn
L xn ⎠
Il metodo
t d dei
d i coefficienti
ffi i ti iindeterminati
d t
i ti
è equivalente alla risoluzione di un
sistema
i t
li
lineare
ma
M è una matrice di Vandermonde
il sistema
i t
è malcondizionato
l
di i
t
Necessità di cambiare approccio al problema
Secondo approccio
Costruire il p
polinomio interpolante
p
come
combinazione di particolari polinomi di grado
n-1 (p
(polinomi fondamentali di Lagrange)
g
g ) con
coefficienti uguali alle yi
Pn−1 ( x ) = y1l1 ( x ) + y2l2 ( x ) + L + ynln ( x )
Formula di Lagrange
Esempio
Assegnati i punti:
( 0,1) (1, 2 ) ( 2, 9 )
vogliamo costruire il polinomio interpolante
di Lagrange
P2 ( x ) = y1l1 ( x ) + y2l2 ( x ) + y3l3 ( x )
Formula di Lagrange
⎛
x − xj ⎞
P( x) = ∑ ⎜ ∏
yk
⎟
⎜
⎟
k =1 ⎝ j ≠ k xk − x j ⎠
n
x − x2 ) ( x − x3 )L( x − xn )
x − x1 ) ( x − x3 )L( x − xn )
(
(
P( x) =
y1 +
y2 + L +
( x1 − x2 ) ( x1 − x3 )L( x1 − xn )
( x2 − x1 ) ( x2 − x3 )L( x2 − xn )
x − x1 )( x − x2 )L( x − xn−1 )
(
+
yn
( xn − x1 )( xn − x2 )L( xn − xn−1 )
P
( x1 ) =
y1 ; P
(x2 ) =
y 2 ;L P
(xn ) =
yn
Esercizio
Es
rc z o
Scrivere il polinomio di Lagrange interpolante
i punti
pun
x=0:3
Y=[-5 –6 –1 16]
x − 1)( x − 2 )( x − 3)
x − 0 )( x − 2 )( x − 3)
(
(
P( x) =
(−5) +
(−6) +
( 0 − 1)( 0 − 2 )( 0 − 3)
(1 − 0 )(1 − 2 )(1 − 3)
x − 0 )( x − 1)( x − 3)
x − 0 )( x − 1)( x − 2 )
(
(
+
(−1) +
(16)
( 2 − 0 )( 2 − 1)( 2 − 3)
( 3 − 0 )( 3 − 1)( 3 − 2 )
Formula di Lagrange
g
g in Matlab
function v = polinterp(x,y,u)
% POLINTERP Interpolazione polinomiale di Lagrange
% v = POLINTERP(x,y,u) calcola v(j) = P(u(j)) dove P è
% ill polinomio
pol nom o di
d grado d = length(x)-1
length(x) con P(x(
P(x(i))
)) = y(i).
y( ).
% Valuta tutti gli elementi di u contemporaneamente.
n = length(x);
v = zeros(size(u));
(
( ))
for k = 1:n
w = ones(size(u));
% calcola la prodottoria per j~=k
for j = [[1:k-1 k+1:n]]
f
w = (u-x(j))./(x(k)-x(j)).*w;
end
v = v + w*y(k);
* (k)
end
Complessità della formula di
Lagrange
for k = 11:n
f
w = ones(size(u));
% calcola la prodottoria per jj~=k
=k
for j = [1:k-1 k+1:n]
(2M+2A)(n-1)
w = (u-x(j))./(x(k)-x(j)).*w;
j
j
+
end
1M+1A
v = v + w*y(k);
end
d
O(n2)
O(
=
n(2n-1)(M+A)
(2 1)(M A)
n
volte
Complessità della formula di
Lagrange
La complessità non cambia se si vuole:
•Aggiungere un punto di interpolazione
•Calcolare il polinomio in un altro punto
Esempio
x=0:3
y=[ 5 -6
y=[-5
6 -11 16]
u=-0.25:0.1:3.25;
vv= polinterp(x,y,u);
polinterp(x y u);
plot(x,y,'or',u,v,'b')
25
20
15
10
5
0
-5
5
-10
-0.5
0
0.5
1
1.5
2
2.5
3
3.5
Usare p
polinterp
p con variabili
simboliche
>> symx=sym('x')
(' ')
symx =
x
>> p
p= polinterp(x,y,symx)
p
p( ,y, y )
p=
-5*(-1/3*x+1)*(-1/2*x+1)*(-x+1)-6*(-1/2*x+3/2)*(-x+2)*x1/2*( 3)*( 1)* 16/3*( 2)*(1/2* 1/2)*
1/2*(-x+3)*(x-1)*x+16/3*(x-2)*(1/2*x-1/2)*x
>> p=simplify(p)
p=
x^3-2*x-5
Cosa succede quando il numero di
punti
ti cresce?
?
Interpolation
0.5
0.4
0.3
02
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
0
1
2
3
4
5
6
7
8
Il polinomio interpolante oscilla, specialmente
agli estremi dell’intervallo
Fenomeno di Runge
Consideriamo la funzione definita nell’intervallo [-1 1]:
1
g ( x) =
2
1 + 25 x
e consideriamo come punti di interpolazione i
valori di tale funzione nei p
punti equispaziati
q p
xi = −1 + ih,
i = 0,L , n, x0 = −1, xn = 1
Vogliamo costruire il polinomio interpolante al
cr sc r d
crescere
dell num
numero
r n dei
d i punti di int
interpolazione
rp l zi n
Rungeinterp
Polinomi
m di grado
g
elevato oscillano
fortemente tra i dati
in genere non si usano polinomi di grado n > 6
Ma polinomi di grado basso
pochi dati da interpolare
Il modello risulta poco attendibile perché non
si usano tutte le informazioni disponibile
Interpolazione polinomiale a
tratti
Interpolazione
p
a tratti
A differenza dell’interpolazione polinomiale
((unico p
polinomio interpolante
p
l’insieme di dati))
l’interpolazione polinomiale a tratti utilizza
polinomi interpolanti
p
p
diversi su sottoinsiemi
contigui di nodi di interpolazione
Grado basso p
per i vari polinomi
p
che
costituiscono la funzione interpolante
qualunque
q
q sia il numero di nodi.
Interpolazione lineare a tratti
Valutazione di L(x)
( )
Polinomi di primo grado
⎧ L1 ( x) per x ∈ [ x1 , x2 ]
⎪
⎪ L2 ( x) per x ∈ [ x2 , x3 ]
L( x) = ⎨
L
⎪
⎪ Ln −1 ( x) per x ∈ [ xn −1 , xn ]
⎩
Polinomiale a tratti di I grado
•Individuare l’intervallo
[xk,xk+1] in cui cade la x
•Costruire la retta
passante per i due punti
(xk,yk), (xk+1,yk+1)
•Valutare la retta nel
punto
t x
L( ) è c
L(x)
continua
ntinu
ma
L’( ) non è continua
L’(x)
Polinomi cubici interpolanti a tratti
Scopo:
Scopo
Costruire una polinomiale a tratti di terzo
grado con derivate prime continue nei nodi
Con tali p
polinomi il
problema non ha
gradi di libertà
g
Polinomi interpolanti di terzo grado su 4 nodi
Univocamente determinati
In queste ipotesi
non è possibile
raggiungere lo scopo
Se sono noti i valori della derivata prima nei
punti di interpolazione, allora la polinomiale a
tratti è univocamente determinata
altrimenti
Si devono fissare dei valori opportuni per la
derivata prima
Se vogliamo costruire ad esempio una polinomiale
a tratti che preservi visivamente la forma dei
dati le pendenze possono essere determinate in
dati,
modo tale che i valori della funzione non superino
i valori dei dati almeno localmente.
localmente
Polinomi interpolanti
p
di terzo grado
g
su
2 nodi
pchip di Matlab
dk derivata nel punto
dk
(xk,yk)
δk
δk+1
δk+1
δk
pendenza della retta
per i punti
(xk-1,yk-1) e (xk,yk)
δ k e δ k +1 hanno segno opposto
δ k e δ k +1 hanno lo stesso segno
⇓
⇓
d k è la media armonica pesata
dk = 0
con l'ampiezza dei due intervalli
di δ k e δ k +1
w1 + w2
1
1
=
+
dk
δ k −1 δ k
Questa polinomiale cubica a tratti ha derivata
prima
p
m continua ma
m derivata seconda discontinua