interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/spline_interp.pdf ·...

21
Carla Guerrini 4/11/2009 Interpolazione polinomiale a tratti Si intende l’interpolazione di un set di dati su un intervallo con pi` u polinomi ciascuno dei quali definito in un sottointervallo dell’intervallo dato. In particolare siano assegnate m +1 osservazioni in corrispondenza di m +1 punti distinti e ordinati, cio` e siano assegnati (x i ,y i ), i =0,...,m con x i <x i+1 . Allora una interpolante polinomiale a tratti consiste in m polinomi p i (x), i =0,...,m - 1 di grado n, definiti sugli intervalli [x i ,x i+1 ] con le seguenti propriet` a: p i-1 (x i ) p i (x i )= y i i =1,...,m - 1 fissato k n - 1, non negativo, deve valere p () i-1 (x i ) p () i (x i ), =1,...,k, i =1,...,m - 1 Si dir` a che l’interpolante a tratti ` e di classe C k intendendo che ` e una funzione continua fino alla derivata di ordine k. Polinomi a tratti Abbiamo osservato che i polinomi hanno un comportamento inaccettabile quando vengono utilizzati per approssimare dati o funzioni. Quando superano il quinto o sesto grado oscillano fortemente su intervalli di definizione grandi, mentre hanno un buon comportamento se di grado basso e su intervalli piccoli. Questo fenomeno suggerisce di utilizzare polinomi di grado relativamente basso e suddividere l’intervallo in piccole parti. Si pu´o dare la seguente definizione: Definizione: Polinomio a Tratti Sia [a, b] un intervallo limitato e chiuso e sia Δ la partizione dell’intervallo [a, b] data da: Δ= {x i } i=0,...,m – Typeset by Foil T E X 1

Upload: vunguyet

Post on 17-Feb-2019

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 2: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 3: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 4: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 5: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 6: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 7: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 8: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 9: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 10: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 11: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 12: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 13: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 14: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 15: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 16: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 17: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 18: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 19: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 20: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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

Page 21: Interpolazione polinomiale a tratti - dm.unibo.itguerrini/html/an_09_10/Spline_interp.pdf · interpolazione a tratti con polinomi lineari Si osserva che utilizzando i polinomi a tratti

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