interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/spline_interp.pdf ·...
TRANSCRIPT
Carla Guerrini 4/11/2009
Interpolazione polinomiale a tratti
Si intende l’interpolazione di un set di dati su un intervallo con piu polinomi ciascunodei quali definito in un sottointervallo dell’intervallo dato. In particolare siano assegnatem + 1 osservazioni in corrispondenza di m + 1 punti distinti e ordinati, cioe siano assegnati(xi, yi), i = 0, . . . , m con xi < xi+1. Allora una interpolante polinomiale a tratticonsiste in m polinomi pi(x), i = 0, . . . , m − 1 di grado n, definiti sugli intervalli[xi, xi+1] con le seguenti proprieta:
•pi−1(xi) ≡ pi(xi) = yi i = 1, . . . , m− 1
• fissato k ≤ n− 1, non negativo, deve valere
p(`)i−1
(xi) ≡ p(`)i
(xi), ` = 1, . . . , k, i = 1, . . . , m− 1
Si dira che l’interpolante a tratti e di classe Ck intendendo che e una funzione continua finoalla derivata di ordine k.
Polinomi a tratti
Abbiamo osservato che i polinomi hanno un comportamento inaccettabile quandovengono utilizzati per approssimare dati o funzioni. Quando superano il quinto o sesto gradooscillano fortemente su intervalli di definizione grandi, mentre hanno un buon comportamentose di grado basso e su intervalli piccoli. Questo fenomeno suggerisce di utilizzare polinomi digrado relativamente basso e suddividere l’intervallo in piccole parti. Si puo dare la seguentedefinizione:
Definizione: Polinomio a TrattiSia [a, b] un intervallo limitato e chiuso e sia ∆ la partizione dell’intervallo [a, b] data da:
∆ = {xi}i=0,...,m
– Typeset by FoilTEX – 1
Carla Guerrini 4/11/2009
su un insieme di punti , detti nodi, tali che:
a = x0 < x1 < . . . < xm = b
La partizione di [a, b] indotta dall’insieme ∆ risulta
• I0 = [x0, x1]
• Ii = [xi, xi+1] i = 1, . . . , m− 1
• Im = [xm, xm+1]
Indichiamo con Pn lo spazio dei polinomi a coefficienti reali di ordine al piu n, definiamo lospazio dei polinomi a tratti:
T Pn = {ϕ | ∃p0, p1, . . . pm ∈ Pn; tale cheϕ(x) = pi(x),
∀x ∈ Ii, i = 0, 1, . . . , m}
EsempioConsideriamo il polinomio a tratti di grado 1 che interpola la funzione di Runge f(x) = 1
1+x2nei 7 nodi equidistanti assegnati in figura
– Typeset by FoilTEX – 2
Carla Guerrini 4/11/2009
−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
1interpolazione a tratti con polinomi lineari
Si osserva che utilizzando i polinomi a tratti si e guadagnato in flessibilita, ma si e persoin regolarita: l’interpolante non ha piu’ la derivata prima continua. In molte applicazioni si
richiede che la funzione approssimante sia almeno di classe C1.
Interpolazione locale
Per interpolazione locale si intende un metodo che individua il polinomio interpolantea tratti determinando ogni singolo polinomio pi(x) in modo indipendente dagli altri.
Consideriamo il caso particolare di polinomi a tratti cubici, con regolarita C1; i singolipolinomi cubici pi(x) possono essere espressi nella base di Bernstein e determinati in modo dainterpolare le ordinate yi e yi+1 in corrispondenza di xi e xi+1 sull’intervallo [xi, xi+1] e
i valori di derivata y′i e y′i+1 sempre in corrispondenza di xi e xi+1. In questo caso si parladi interpolanti cubiche di Hermite. I metodi di interpolazione locale fanno uso delle derivatey′i in corrispondenza dei punti assegnati xi. Se queste non sono date, devono essere calcolatee diventano parte integrante del problema di interpolazione.
Interpolazione globale
Per interpolazione globale si intende un metodo che determina il polinomio a trattiinterpolante ricavando ciascun polinomio pi(x) in modo dipendente dagli altri. Nel caso
– Typeset by FoilTEX – 3
Carla Guerrini 4/11/2009
particolare di polinomi a tratti cubici con massima regolarita C2 si parla di Spline cubichedi Interpolazione.
Lo spazio delle funzioni Spline polinomiali di grado n puo essere sinteticamente scrittocome :
Sn(∆) = T Pn(∆) ∩ C(n−1)[a,b]
Questa condizione implica che ogni elemento di Sn(∆) e sufficientemente flessibile, perchesi hanno funzioni continue e derivabili con continuita sino all’ordine n − 1 che e la massimaregolarita che si puo richiedere ai polinomi a tratti di grado n.Consideriamo le funzioni Spline cubiche.Riassumendo:siano x0 < x1 < x2 < . . . < xm punti dati detti nodi , una Spline Cubica e unafunzione S(x), definita sull’intervallo [x0, xm] con le seguenti proprieta:
• e una funzione con derivate prime e seconde continue
• ristretta ad ogni intervallo Ii e un polinomio di grado 3
• S(xj) = f(xj), per j = 0, 1, 2, . . . , m
Se poniamo S(x) = si(x) per xi ≤ x ≤ xi+1, gli si(x) saranno m + 1 polinomi cubici
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
S0
S1
Sm−1S
m−2
x0
x1
x2
xm−1 x
m
– Typeset by FoilTEX – 4
Carla Guerrini 4/11/2009
del tipo si(x) = ai + bix + cix2 + dix
3 per x ∈ [xi, xi+1], i = 0, 1, . . . , mper ciascuna cubica occorrono 4 condizioni quindi in totale 4m+4 condizioni per determinaretutti i coefficienti. Ogni polinomio interpola la f negli estremi del proprio intervallo. Questo da2m + 2 condizioni. Le condizioni di continuita delle derivate nei nodi interni rispettivamente:
• s′i−1(xi) = s′i(xi) per i = 1, 2, . . . , m
• s”i−1(xi) = s”i(xi)
sono altre 2(m) condizioni.In tutto si hanno 2m + 2(m + 1) = 4m + 2 condizioni per detereminare i 4m + 4coefficienti. Le restanti due condizioni vengono scelte fra:
1. s′0(x0) = y′0 e s′m(xm+1) = y′m+1, con y′0 e y′m+1 assegnati dall’utente Splinecon derivate agli estremi,
2. s”(x0) = s”(xm+1) = 0 Spline di Interpolazione Naturali
3. s0(x0) = sm(xm+1), s′0(x0) = s′m(xm+1) e s0”(x0) = sm”(xm+1)Spline di Interpolazione periodiche (si usano quando y0 = ym+1, cioe’ quando sivogliono interpolare curve chiuse o periodiche).
In alternativa alla seconda condizione, si puo richiedere che la derivata terza di S(x) neinodi x0 e xm+1 sia continua. Questa condizione a cui viene attribuito il nome not-a-knot-condition e quella implementata nel comando Matlab spline ( si veda anche il toolboxSplines).Per determinare i coefficienti ai, bi, ci, di si potrebbero al solito usare tutte le condizionielencate sopra per ricavare un sistema avente come incognite i coefficienti e risolverlo, ma none il modo piu efficiente. Un metodo efficiente si ottiene prendendo come incognite i momenticioe le derivate seconde nei nodi xi
Mi = s”i(xi)
essendo ogni s”i(x) una spline di primo grado cioe una funzione lineare a tratti avremo
s”i(x) =(x− xi)Mi+1 + (xi+1 − x)Mi
xi+1 − xix ∈ [xi, xi+1]
– Typeset by FoilTEX – 5
Carla Guerrini 4/11/2009
Posto hi = (xi+1 − xi) integrando due volte nell’intervallo [xi, xi+1]si ha
s′i(x) =
(x− xi)2Mi+1 − (xi+1 − x)2Mi
2hi+ Ci x ∈ [xi−1, xi]
e
si(x) =(x− xi)
3Mi+1 + (xi+1 − x)3Mi
6hi+ Ci(x− xi) + Di x ∈ [xi, xi+1]
imponendo le condizioni di interpolazione si(xi) = yi e si(xi+1) = yi+1 si ottengono iparametri Ci e Di in funzione dei momenti Mi piu precisamente
(xi+1−xi)3Mi
6hi+ Di = yi i = 1, . . . , m
(xi+1−xi)3Mi+1
6hi+ Ci(xi+1 − xi) + Di = yi+1
da cui si ricava
Di = yi −h2
i6
Mi, Ci =(yi+1 − yi)
hi− hi
(Mi+1 −Mi)
6
infine sostituendo nella s′i(x) si ottiene per x ∈ [xi, xi+1]
s′i(x) =
(x− xi)3Mi+1 + (xi+1 − x)3Mi
6hi+
yi+1 − yi
2hi− hi
Mi+1 −Mi
6
– Typeset by FoilTEX – 6
Carla Guerrini 4/11/2009
Imponendo la continuita di S′(x) allora nei nodi interni dovranno essere verificate le seguentirelazioni: s′i(xi+1) = s′i+1(xi+1)) per i = 0, . . . , m− 1 e quindi avremo
hiMi + 2(hi + hi+1)Mi+1 + hi+1Mi+2 = 6
yi+2 − yi+1
hi+1−
yi+1 − yi
hi
!.
Tenendo conto che per le spline naturali M0 = Mm+1 = 0 si ottiene un sistema diequazioni lineari nelle m incognite M1, M2, . . . Mm la cui matrice dei coefficienti e
0BBBBBB@
2(h1 + h2) h2 . . . 0h2 2(h2 + h3) . . . 0
0. . . . . .
......
. . . hm−10 . . . hm−1 2(hm−1 + hm)
1CCCCCCA
La risoluzione di questo sistema comporta un costo computazionale dell’ordine di 3nmoltiplicazioni. Si osservi che nel caso in cui hi ≡ 1 ∀i il sistema si semplifica in
0BBBB@
4 1 0 0 . . . 01 4 1 0 . . . 00 1 4 1 . . . 0
. . .0 . . . 0 0 1 4
1CCCCA
D’ora in poi per calcolare una spline utilizzeremo il comando MATLABspline(x,y,z) i parametri di ingresso di questa function sono i vettori x e y dei nodi diinterpolazione ed il vettore z delle ascisse nelle quali si vuole che venga valutata la spline.
Le curve spline sono usate in numerose applicazioni industriali e sono alla base deimoderni sistemi CAD, il vantaggio di usare una spline e di fornire movimenti regolari evitandobruschi cambi di velocita e accelerazione se regolare sino alla derivata seconda.
– Typeset by FoilTEX – 7
Carla Guerrini 4/11/2009
Riprendiamo l’esercizio riguardante l’interpolazione della funzione di Runge:
f(x) =1
x2 + 1
.
Interpolazione con il polinomio di grado 6 sui 7 punti equidistanti della funzione di Rungef(x) = 1
1+x2 definita sull’intervallo [−5, 5]
−5 −4 −3 −2 −1 0 1 2 3 4 5−0.5
0
0.5
1interpolazione funzione di Runge punti equidistanti
grado del polinomio 6 −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
1Interpolazione mediante spline cubica naturale della funzione Runge con 7 punti di interpolazione
Funzione RungeSpline cubica interpolantePunti di interpolazione
Interpolazione della funzione di Runge con una spline cubica naturale su una partizione nodaledi 7 punti equidistanti nell’intervallo [−5; 5].
−5 −4 −3 −2 −1 0 1 2 3 4 5−0.5
0
0.5
1
1.5
2interpolazione funzione di Runge punti equidistanti
grado del polinomio 10 −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
1Interpolazione mediante spline cubica naturale della funzione Runge con 11 punti di interpolazione
Funzione RungeSpline cubica interpolantePunti di interpolazione
Interpolazione della funzione di Runge con una spline cubica naturale su una partizione nodaledi 11 punti nell’intervallo [−5; 5].
– Typeset by FoilTEX – 8
Carla Guerrini 4/11/2009
−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
1Interpolazione mediante spline cubica naturale della funzione Runge con 19 punti di interpolazione
Funzione RungeSpline cubica interpolantePunti di interpolazione
Figure 1: Interpolazione della funzione di Runge con una spline cubica naturale su una
partizione contenente 19 punti nell’intervallo [−5; 5].
N.punti maxx|R(x)| N.punti maxx|R(x)|
11 0.02193 12 0.0838221 0.00318 22 0.0080231 0.00084 32 0.0013141 0.00063 42 0.00061
In tabella e riportato l’errore massimo per l’interpolazione polinomiale cubica a tratti
C2 della funzione di Runge su punti equidistanti.
– Typeset by FoilTEX – 9
Carla Guerrini 4/11/2009
Esempio
Nella tabella seguente sono riportate le variazioni di temperatura media annua del globoal variare della concentrazione K di acido carbonico e della latitudine:
latitudine K=0.67 K=1.5 K=2.0 K=3.065 -3.1 3.52 6.05 9.355 -3.22 3.62 6.02 9.345 -3.3 3.65 5.92 9.1735 -3.32 3.52 5.7 8.8225 -3.17 3.47 5.3 8.115 -3.07 3.25 5.02 7.525 -3.02 3.15 4.95 7.3-5 -3.02 3.15 4.97 7.35-15 -3.12 3.2 5.07 7.62-25 -3.2 3.27 5.35 8.22-35 -3.35 3.52 5.62 8.8-45 -3.37 3.7 5.95 9.25-55 -3.25 3.7 6.1 9.5
Le tecniche di approssimazione previste consentono di ricostruire a partire dai datidisponibili i valori della temperatura anche per latitudini o concentrazioni non previste dallatabella stessa. Consideriamo la colonna K = 0.67 e calcoliamo la spline cubica interpolatoriaS3 . Per ottenere le valutazioni di S3 in corrispondenza dei valori zi = −55 + i, i =0, . . . , 120 occorre dare le seguenti istruzioni:
À x = [−55 : 10 : 65];
À y = [−3.25,−3.37,−3.35,−3.2,−3.12,−3.02,−3.02, ...
−3.07,−3.17,−3.32,−3.3,−3.22,−3.1]
À z = [−55 : 1 : 65];
s = spline(x, y, z)
– Typeset by FoilTEX – 10
Carla Guerrini 4/11/2009
Si noti l’uso dei tre punti di continuazione tramite i quali si informa Matlab che la rigacontenete l’istruzione continua.
−60 −40 −20 0 20 40 60 80−3.5
−3.4
−3.3
−3.2
−3.1
−3
−2.9
−2.8
−2.7pol.12 grad0nodispline cubica
La linea tratteggiata e il grafico del polinomio interpolatore di grado 12.
– Typeset by FoilTEX – 11
Carla Guerrini 4/11/2009
Errore di interpolazione
La teoria dell’errore nell’approssimazione spline e piu complessa di quella relativaall’ordinaria interpolazione a tratti, qui illustriamo i risultati principali:TeoremaFra tutte le funzioni g(x) ∈ C2
[a,b]tali che g(xi) = f(xi) per i = 0, . . . , n (cioe
soddisfano le condizioni di interpolazione), la spline naturale s(x) e quella che minimizzal’integrale Z b
a[g”(x)]
2dx
L’integrale puo essere assunto come una misura della curvatura globale della funzione g(x),quindi risulta che la spline cubica naturale e quella che minimizza la curvatura globale. Siricorda che la curvatura descritta dall’equazione
y = f(x)
e data da:
|f”(x)| · {1 + f′(x)
2}−3/2
quindi se f ′(x) e sufficientemente piccolo, f”(x) risulta una approssimazione della curvaturae l’operazione di integrazione risulta una misura di quanto oscilla la funzione. Quando non siconosce nulla circa la f(x), la scelta della spline not a knot condition implementata sottoMatlab e la migliore. Il nome indica che il primo e l’ultimo nodo interno x1, xm−1 non
si comportano come nodi normali infatti se richiediamo la continuita della s3(x) in queipunti troviamo che i primi due tratti cubici sono identici analogamente per gli ultimi due, ledue condizioni di continuita equivalgono ad eliminare i nodi x2 e xm−1 dalla suddivisionemantenedo comunque le condizioni di interpolazione.Per tale motivo tali condizioni sono notecome not a knot condition e fornisce una esemplificazione del fatto che nel caso di funzionipolinomiali a tratti i punti della suddivisione non coincidono necessariamente con i nodidell’interpolazione.
– Typeset by FoilTEX – 12
Carla Guerrini 4/11/2009
Dal teorema sopra esposto segue anche che se f(x) ∈ C2[a,b]
allora
Z b
a[S”(x)]
2dx ≤
Z b
a[f”(x)]
2dx
a differenza di quanto accade per i polinomi che interpolano la f(x) su tutto l’intervallo[a, b] quando si infittiscono i nodi xi, i = 0, . . . , n le funzioni spline convergono alla f(x). Nell’ipotesi in cui la f(x) abbia derivate continue sino a quella del quart’ordine vale lasequente disuguaglianza
maxx∈I
|fr(x)− s
r3(x)| ≤ CrH
4−rmaxx∈I
|f4(x)|, r = 0, 1, 2, 3
ove H e la masima ampiezza degli intervalli Ii e le costanti Cr sono indipendenti da H. Equindi evidente che non solo la funzione f , ma anche le sue derivate prima, seconda e terzavengono bene approssimata dalla S(x).
– Typeset by FoilTEX – 13
Carla Guerrini 4/11/2009
Approssimazione di funzioni
0 1000 2000 3000 4000 5000 6000 7000 8000 90002
2.2
2.4
2.6
2.8
3
3.2x 10
4 indice di borsa degli ultimi 8 mesi
Siamo interessati a capire se il prezzo dell’azione tendera a salire o scendere nei giorniimmediatamente successivi all’ultima seduta. L’uso dell’ interpolazione polinomiale non puocondurre ad alcun risultato ragionevole. L’interpolazione composita di grado 1 porta a questografico e per estrapolare il valore dell’azione sfrutta esclusivamente gli ultimi due valoridisponibili e trascura tutta la storia passata dando origine a un risultato poco plausibile.Analoghe considerazioni valgono anche nel caso dell’approssimazione con funzioni spline. Perottenere il risultato cercato, rinunciamo al requisito alla base cioe all’interpolazione procedendocome segue:
Il polinomio di grado maggiore di 1 puo introdurre delle oscillazionio che non sono presentioriginariamente. In questa situazione e conveniente costruire una funzione di approssimazione.Questa approssimazione puo persino non passare per alcuno dei punti (xi, yi), ma vienecostruita in modo da approssimarli nel modo migliore. Possono essere scelti criteri diversi pertrovare la migliore approssimazione in questa lezione tratteremo il criterio dei minimi quadrati,che corrisponde ad una particolare scelta.
Il polinomio di miglior approssimazione nel senso dei minimi quadrati puo esserecostruito in modo che abbia il grado voluto.
– Typeset by FoilTEX – 14
Carla Guerrini 4/11/2009
EsempioConsideriamo il problema di stimare i valori della funzione f nota solo nei seguenti datisperimentali (2,2), (4,11), (6,28), (8,40). L’interpolazione di questi dati richiede la costruzionedel polinomio di grado 3
1 2 3 4 5 6 7 8 90
5
10
15
20
25
30
35
40
45interp. pol.3 grado
1 2 3 4 5 6 7 8 9−5
0
5
10
15
20
25
30
35
40
45approssimazione lineare
Fissato un insieme di n + 1 funzioni φj(x), j = 0, 1, . . . , n definite sull’intervallo [a, b]
contenente i punti di osservazione xi, e in [a, b] linearmente indipendenti, cioe tali che unaloro combinazione lineare a coefficienti reali:
nX
j=0
ajφj(x)
e identicamente nulla su [a, b] ↔ aj = 0 ∀j. Assegnate m osservazioni in corrispondenza
di m punti distinti. Il problema di approssimare i dati (xi, yi), i = 1, . . . , m nel senso deiminimi quadrati consiste nel determinare una funzione
φ∗(x) =
nX
j=0
a∗jφj(x) ∈ Φ
– Typeset by FoilTEX – 15
Carla Guerrini 4/11/2009
in modo che
mX
k=1
[φ∗(xk)− yk]
2 ≤mX
k=1
[φ(xk)− yk]2, ∀φ ∈ Φ
Questo equivale a cercare il minimo della seguente funzione in n + 1 variabili
g(a0, a1, . . . , an) =
mX
k=1
[
nX
i=0
aiφi(xk)− yk]2,
cioe
minai∈R
g(a0, a1, . . . , an)
Un metodo per risolvere questo problema di minimo consiste nell’impostare e risolvere ilsistema delle equazioni normali che derivano dall’imporre che
∂g(a0, a1, . . . , an)
∂ai= 0 i = 0, . . . , n
cioe
∂
∂ai
mX
k=1
24
nX
i=0
aiφi(xk)− yk
35
2
= 0, i = 0, . . . , n
Infatti essendo la funzione g quadratica con coefficienti positivi per i termini a2i avra un
minimo. Prima di procedere alla derivazione riscriviamo la funzione g sviluppando i quadrati
g(a0, a1, . . . , an) =mX
k=1
y2k−2
nX
i=0
ai
mX
k=1
ykφi(xk)+nX
i=0
nX
j=0
aiaj
mX
k=1
φi(xk)φj(xk)
– Typeset by FoilTEX – 16
Carla Guerrini 4/11/2009
allora
∂g
∂ai= −
mX
k=1
ykφi(xk) +
nX
j=0
aj
0@
mX
k=1
φi(xk)φj(xk)
1A , i = 0, . . . , n
da cui il sistema lineareGa = r
dove
G = {gi,j}i,j=0,...,n, gi,j =
mX
k=1
φi(xk)φj(xk)
ed
r = {ri}i=0,...,n, ri =mX
k=1
ykφi(xk)
Si puo anche notare che algoritmicamente il sistema Ga = r puo essere costruito calcolando lamatrice H = {hi,j}i=1,...,m,j=0,...n delle funzioni base nei punti, cioe hi,j = φj(xi)e quindi ottenere la matrice G ed il vettore r come:
G = HT
H; r = HT
y
In partica e richiesta la risoluzione del sistema di equazioni normali
HT
Ha = HT
y
ove
H =
0BBBBBB@
φ0(x1) φ1(x1) φ2(x1) . . . φn(x1)φ0(x2) φ1(x2) φ2(x2) . . . φn(x2)φ0(x3) φ1(x3) φ2(x3) . . . φn(x3)
. . .
. . .φ0(xm) φ1(xm) φ1(xm) . . . φn(xm)
1CCCCCCA
– Typeset by FoilTEX – 17
Carla Guerrini 4/11/2009
Nel caso generale qui descritto, la scelta dello spazio Φ e solitamente dettato dal fatto cheesista sempre una soluzione unica al problema dalla regolarita desiderata per l’approssimante edalla particolarita dei dati. Noi tratteremo solamente il caso dell’approssimazione polinomialein cui la matrice G risulta simmetrica e definita positiva, il che garantisce sempre l’esistenza el’unicita della soluzione e una buona regolarita della stessa.
Forma MonomialeTeorema Siano dati i punti (xi, yi), i = 1, . . . , m con xi distinti allora esiste ed e unico ilpolinomio p ∈ Pn con n ≤ m, di approssimazione nel senso dei minimi quadrati.Si considera p(x) nella forma monomiale e la matrice H ha la forma:
H =
0BBBBBBBB@
1 x1 x21 . . . xn
11 x2 x2
2 . . . xn2
1 x3 x23 . . . xn
3. . .. . .
1 xm x2m . . . xn
m
1CCCCCCCCA
si tratta di una matrice di vandermonde rettangolare, ed essendo i punti xi distinti, avra
rango massimo n + 1; segue che la matrice G = HT H sara non singolare e il sistemadelle equazioni normali avra un’unica soluzione, da cui segue che il polinomio di migliorapprossimazione esiste ed e unico.
−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
– Typeset by FoilTEX – 18
Carla Guerrini 4/11/2009
approssimazione polinomiale nella base delle xk della funzione di Runge di 51 puntiequidistanti con polinomio di grado 10 (a sinistra), e di grado 30 (a destra)
Chiameremo residuo la quantita
dn =nX
k=1
hp∗(xk)− yk
i2.
Si osserva che all’aumentare di n (n < m) sara dn+1 < dn, e per n = m − 1
dm−1 ≡ 0, questo ovviamente non assicura che p∗(x) converga alla funzione test neanaliticamente ne numericamente. Nel caso in cui n = m− 1 il problema di approssimazionediventa di interpolazione, e il calcolo dell’interpolante avviene utilizzando le equazioni normalicon matrice H di ordine n + 1×n + 1 conincidente con la matrice di Vandermonde definitasul set di dati x1, x2, . . . , xm con m = n + 1. In questo caso il metodo dei minimiquadrati risulta essere un metodo piu costoso e meno stabile per il calcolo dell’interpolante.Approssimare dati con polinomi di grado eccessivamente elevato non e consigliato, comemostra l’esempio perche i polinomi di grado alto risultano poco flessibili e numericamenteinstabili. Per l’approssimazione nel senso dei minimi quadrati e possibile utilizzare polinomi atratti o spline tipicamente di grado basso, con il vantaggio di avere delle ottime funzioni diapprossimazione senza i problemi numerici e di inflessibilita tipici dei polinomi di grado alto.EsempioSiano dati i seguenti punti del piano
k 1 2 3 4
xk 2 4 6 8yk 2 11 28 40
si vuole calcolare il polinomio di grado uno p(x) = a0 + a1x che meglio approssima nelsenso dei minimi quadrati. La matrice
H =
0BB@
1 21 41 61 8
1CCA ; H
TH =
„4 2020 120
«e H
Ty =
„81536
«
– Typeset by FoilTEX – 19
Carla Guerrini 4/11/2009
Dobbiamo quindi risolvere il seguente sistema 2× 2
„4 2020 120
«„a0a1
«=
„81536
«⇒(
a0 = −252
a1 = 13120
Retta di approssimazione in minimi quadrati o retta di RegressioneDato un set di dati sperimentali acquisiti da un fenomeno ad andamento lineare viene utilizzatala tecnica nota come retta di regressione lineare. Consiste nel determinare il polinomio linearedi approssimazione nel senso dei minimi quadrati dei dati assegnati. Esempio
La determinazione di tale polinomio viene effettuata mediante soluzione del sistema delleequazioni normali che in questo caso risultera di dimensione 2× 2 otenuto:
H =
0BBBBB@
1 x11 x21 x3...1 xn
1CCCCCA
sara
G = HT
H =
Pmk=1 1
Pmk=1 xkPm
k=1 xkPm
k=1 x2k
!
e definendo
x =1
m
mX
k=1
xk, y =1
m
mX
k=1
yk
il baricentro dei punti dati, il sistema puo essere scritto in modo semplificato:
m mx
mxPm
k=1 x2k
!„a0a1
«=
„myPm
k=1 xkyk
«.
da cui si ricava
a0 = y − a1x a1 =
Pmk=1 xkyk −mxyPm
k=1 x2k−mx2
– Typeset by FoilTEX – 20
Carla Guerrini 4/11/2009
In modo ancor piu operativo l’espressione del polinomio di miglior approssimazione puo esserescritta come
p(x) = a0 + a1x = y + a1(x− x)
che comporta solo la valutazione di a1, geometricamente ci dice che la retta di regressionelineare passa per il baricentro del set di dati e ha pendenza a1
Nell’esempio precedente
k 1 2 3 4
xk 2 4 6 8yk 2 11 28 40
quindi per questi dati
x =2 + 4 + 6 + 8
4= 5
X
k
xkyk = 536;
y =2 + 11 + 28 + 40
4=
81
4
X
k
x2k = 120
calcolando a0, a1 dalle formule si ottiene
a0 =−25
2, a1 =
131
20
Il valore di minimo in questo caso e:
nX
k=1
[yk − r(xk)]2
=107
10= 10.7
Una qualsiasi altra retta passante per il baricentro dei dati da origine ad un valore residuo piugrande
– Typeset by FoilTEX – 21