Nel complesso, otteniamo il polinomio di Lagrange:
f(x)=m∑i=1yili(x)con: li(x)=∏j≠ix−xjxi−xj
Sarebbe meglio parlare di "polinomio interpolante in forma di Lagrange"
È un polinomio di grado (al più) m−1, come nel caso precedente
Di fatto, è lo stesso polinomio di prima!
Semplicemente, adesso lo otteniamo con una formula
In alcuni casi è un grosso vantaggio (esempi nella prossima lezione)!
Elementi di Informatica e Applicazioni Numeriche T
Due Limitazioni dell'Interpolazione con Polinomi
L1: Aggiunta di Punti da Interpolare
Se volessimo migliorare la qualità dell'approssimazione?
Metodo più naturale: incrementare la misurazioni
Dividiamo il diametro in m segmenti della stessa lunghezza
Per ogni punto xi misuriamo la velocità yi
Idealmente, incrementando m l'approssimazione dovrebbe convergere:
f(x)→m→∞g(x)
Dove g(x) è il profilo di velocità reale
In pratica, non è detto che succeda
L1: Funzione di Runge
Supponiamo di volere interpolare la funzione di Runge:
g(x)=11+25x2
Supponiamo di non conoscere g(x) direttamente
Ne vogliamo però misurare il valore...
...Per punti equispaziati nell'intervallo [−1,1]
E poi approssimarla con il polinomio interpolante
Intuitivamente:
Incrementando n...
...L'approssimazione dovrebbe migliorare
L1: Funzione di Runge
Questa è la funzione di Runge nell'intervallo [−1,1]
L1: Funzione di Runge
Questo è il polinomio interpolante con n=3
L1: Funzione di Runge
Questo è il polinomio interpolante con n=5
L1: Funzione di Runge
Questo è il polinomio interpolante con n=7
L1: Funzione di Runge
Questo è il polinomio interpolante con n=9
L1: Fenomeno di Runge
Le oscillazioni peggiorano con il numero dei campioni
Il polinomio interpolante diverge vicino agli estremi (i.e. −1,1)
Questo comportamento è noto come fenomeno di Runge
Aumentando il numero di punti, il comportamento in interpolazione del polinomio può peggiorare
È apparentemente paradossale (vedremo poi il motivo)
È un primo (grosso) limite del polinomio approssimante
L2: Difficoltà di Estrapolazione
Consideriamo ora il secondo dei nostri esempi iniziali
Vogliamo stimare come la velocità di una reazione chimica...
...Dipenda dalla temperatura a cui essa avviene
Innanzitutto dobbiamo fare degli esperimenti:
Facciamo variare la temperature x da 300∘K a 360∘K
Usiamo intervalli di 10 gradi (7 punti in tutto)
Misuriamo la velocità di reazione ad ogni punto
L2: Difficoltà di Estrapolazione
Supponiamo di avere ottenuto i punti seguenti:
xi (°K)
yi (num. puro)
300
1.01
310
1.02
320
1.04
330
1.08
340
1.15
350
1.30
360
1.44
L2: Difficoltà di Estrapolazione
Questi sono i dati grezzi sul piano cartesiano:
L2: Difficoltà di Estrapolazione
Questo è il polinomio interpolante (in interpolazione)
L2: Difficoltà di Estrapolazione
Questo è il polinomio interpolante (in estrapolazione)
L2: Difficoltà di Estrapolazione
Il comportamento in estrapolazione è pessimo!
Estrapolare è più difficile che interpolare in generale
C'è un margine di incertezza maggiore
In questo caso però la situazione è particolarmente brutta, perché:
Aumentando il numero di punti, il comportamento in estrapolazione del polinomio interpolante può peggiorare
Questo è un secondo limite del polinomio approssimante
Elementi di Informatica e Applicazioni Numeriche T
Metodo Lineare dei Minimi Quadrati
Alcune Considerazioni
Abbiamo osservato che, aumentando il numero di punti (xi,yi):
Il comportamento in interpolazione può peggiorare
Il comportamento in estrapolazione può peggiorare
La radice dei due problemi è comune.
Alcune Considerazioni
Abbiamo osservato che, aumentando il numero di punti (xi,yi):
Il comportamento in interpolazione può peggiorare
Il comportamento in estrapolazione può peggiorare
La radice dei due problemi è comune. In particolare:
I due problemi nascono dal fatto che il grado del polinomio interpolante diventa troppo alto
I polinomi di grado elevato possono variare in modo brusco...
...E si prestano a causare errori dovuti alla precisione finita
Utilizzo di Polinomi di Grado Inferiore
Cosa succede se utilizziamo un polinomio di grado n<m−1?
Il nostro sistema:
Vβ=y
Dove:
V è la matrice di Vandermonde corrispondente ad x
β è il vettore dei coefficienti
Diventa sovradeterminato (e probabilmente impossibile)
Se vogliamo utilizzare un polinomio di grado inferiore...
...Dobbiamo cambiare la formulazione del problema
Utilizzo di Polinomi di Grado Inferiore
Vediamo le idee principali del nuovo approccio:
Stabiliamo il grado n del polinomio a priori (HP: n≤m−1)
Non richiediamo che il polinomio passi per tutti i punti
Cerchiamo invece di minimizzare una stima di errore
In particolare, introduciamo il concetto di residuo
ri=yi−f(xi)
Dove, ancora una volta:
f(x)=n∑j=0βjxj
Residui e Stima dell'Errore
In sostanza il residuo ri è il nostro errore di stima per (xi,yi)
Come ottenere una stima dell'errore globale?
Idea 1: utilizziamo una somma
e=m∑i=1ri
Una pessima idea in pratica
Residui con segno diverso si possono cancellare
Residui e Stima dell'Errore
In sostanza il residuo ri è il nostro errore di stima per (xi,yi)
Come ottenere una stima dell'errore globale?
Idea 2: somma dei valori assoluti
e=m∑i=1|ri|
Già meglio!
Però è difficile da trattare (derivata discontinua)
Residui e Stima dell'Errore
In sostanza il residuo ri è il nostro errore di stima per (xi,yi)
Come ottenere una stima dell'errore globale?
Idea 3: somma dei residui al quadrato
e=m∑i=1r2i
La derivata è continua
Vantaggio addizionale: gli errori più grandi contano di più!
Minimizzazione ai Minimi Quadrati
Vogliamo che l'errore sia più piccolo possibile
Quindi si tratta di risolvere il problema:
min
Noto come problema di minimizzazione ai minimi quadrati
Nel problema abbiamo evidenziato la dipendenza di r_i da \beta
D'ora in poi, lo faremo sempre
La soluzione \beta^* del problema definisce la funzione approssimante
Il corrispondente errore e^* indica la qualità dell'approssimazione
Metodo (Lineare) dei Minimi Quadrati
Nel nostro caso, per ogni punto (x_i, y_i), abbiamo:
r_i(\beta) = y_i - \sum_{j = 0} \beta_j x_i^j
Conseguenza: i residui dipendono linearmente da \beta
Per questa ragione, il metodo di soluzione che vedremo...
...Si chiama metodo lineare dei minimi quadrati
Per via della linearità, possiamo definire i residui in forma matriciale:
r = y - \underbrace{V}_{m \times (n+1)} \beta
Dove V è la matrice di Vandermonde
Metodo (Lineare) dei Minimi Quadrati
Pertanto il nostro problema diventa:
\min e(\beta) = r(\beta)^T r(\beta)
r^T è un vettore riga e r un vettore colonna
Il prodotto scalare r^T r è la somma dei residui al quadrato
Di qui otteniamo:
e(\beta) = (y - V \beta)^T (y - V \beta)
E quindi:
e(\beta) = y^T y - y^TV\beta - (V \beta)^T y - (V\beta)^T V \beta
Metodo (Lineare) dei Minimi Quadrati
A questo punto osserviamo che, nell'equazione:
e(\beta) = y^T y - y^T V \beta - (V \beta)^T y - (V\beta)^T V \beta
Tutti i termini sono scalari e possono essere trasposti a piacimento
Per il prodotto matriciale, vale che (AB)^T = B^T A^T
Possiamo quindi ottenere:
e(\beta) = y^T y - (y^T V \beta)^T - (V \beta)^T y + (V\beta)^T V \beta\\
e(\beta) = y^T y - (V \beta)^T y - (V \beta)^T y + (V\beta)^T V \beta\\
e(\beta) = y^T y - 2 \beta^T V^T y + \beta^T V^T V \beta
Metodo (Lineare) dei Minimi Quadrati
A questo punto per trovare un punto estremo possiamo risolvere
\nabla e(\beta) = 0
Poi dovremmo valutare il numero di soluzioni possibili...
...E verificare se corrispondano a massimi o minimi
Metodo (Lineare) dei Minimi Quadrati
A questo punto per trovare un punto estremo possiamo risolvere
\nabla e(\beta) = 0
Poi dovremmo valutare il numero di soluzioni possibili...
...E verificare se corrispondano a massimi o minimi
Per poter calcolare \nabla e(\beta) in forma matriciale, è utile:
Ottenere una formula per la "derivata" di un prodotto scalare v^Tx
Ottenere una formula per la "derivata" di una forma quadratica x^TAx
Nelle prossime due slides vedremo come farlo...
Digressione: Derivata di un Prodotto Scalare
Consideriamo un prodotto scalare v^T x
Tecnicamente, si tratta di una funzione f : \mathbb{R}^n \rightarrow \mathbb{R}: