2. Approssimazioni di dati e funzioni con MathCad

23
Capitolo 2 APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

Transcript of 2. Approssimazioni di dati e funzioni con MathCad

Page 1: 2. Approssimazioni di dati e funzioni con MathCad

Capitolo 2

APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

Page 2: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

2

SOMMARIO 1. APPROSSIMAZIONE DI DATI E FUNZIONI ............................................................................................................ 3

1.1 Introduzione.............................................................................................................................................................. 3 1.2 I criteri di scelta ........................................................................................................................................................ 4

1.2.1 Osservazioni ...................................................................................................................................................... 5 2. LE CURVE DI REGRESSIONE.................................................................................................................................... 6

2.1 La retta di regressione............................................................................................................................................... 6 2.1.1 Calcolo dei coefficienti di regressione con il metodo dei minimi quadrati ....................................................... 6

2.2 La parabola di regressione ........................................................................................................................................ 7 2.3 Esame dei dati e dei risultati ..................................................................................................................................... 8

2.3.1 Il coefficiente di correlazione ........................................................................................................................... 8 2.3.2 Analisi degli scarti ............................................................................................................................................. 9 2.3.3 Varianza rispetto alla curva di regressione..................................................................................................... 10

3.1 Approssimazione polinomiale nel senso dei minimi quadrati ................................................................................ 11 3.2 Problemi nell’ interpolazione polinomiale globale. ................................................................................................. 12 3.3 Interpolazione mediante funzioni spline cubiche.................................................................................................... 13

4. INTERPOLAZIONE E REGRESSIONE CON MATHCAD ...................................................................................... 15 4.1 La retta di regressione............................................................................................................................................. 15 4.2 La parabola (e i polinomi) di regressione ............................................................................................................... 16 4.3 Le curve spline........................................................................................................................................................ 17 4.5 Regressioni specializzate ........................................................................................................................................ 20 4.6 Regressione non lineare generalizzata .................................................................................................................... 21

5 APPENDICE ................................................................................................................................................................. 22 5.1 Metodo di Lagrange................................................................................................................................................ 22

6 BIBLIOGRAFIA .......................................................................................................................................................... 23

Page 3: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

3

1. APPROSSIMAZIONE DI DATI E FUNZIONI

1.1 Introduzione In molti problemi matematici e nella costruzione stessa di alcuni metodi numerici di base emerge l’ esigenza di dover approssimare un funzione )(xg , definita mediante una sua rappresentazione analitica oppure nota solo in alcuni punti { }ix con Ni ..1,0= , soluzione di un problema matematico, con un'altra )(xf di forma più semplice su cui si possa facilmente operare (ad esempio derivare, integrare). Esaminiamo brevemente due diverse situazioni.

Nella prima dopo aver eseguito delle misurazioni { }iy corrispondenti a valori prefissati della variabile indipendente { }ix relative ad un determinato fenomeno sottoposto al nostro esame vogliamo costruire un modello matematico )(xf che descrive sufficientemente bene il fenomeno e ci permetta quindi di fare previsioni attendibili in punti x diversi dai nodi { }ii yx , . Se la x desiderata è compresa tra il più grande ed il più piccolo valore delle ix il problema si chiama interpolazione; se la x richiesta è al di fuori del range delle ix allora si parla più propriamente di estrapolazione . Le procedure di interpolazione ed estrapolazione richiedono di modellizzare la funzione tra i punti conosciuti o oltre essi da una qualche forma funzionale plausibile. La forma funzionale deve essere sufficientemente generale in modo da approssimare ampie classi di fenomeni. Le funzioni polinomiali sono di gran lunga le più usate ma anche funzioni razionali e trigonometriche hanno un notevole campo di applicazione.

Nella seconda invece supponiamo di dover operare su di una funzione )(xg nota

analiticamente; per esempio vogliamo calcolare l’ integrale �b

adxxg )( . Supponiamo però che

l’ espressione della )(xg sia tale da non permetterci di ottenere il valore incognito con i soli strumenti dell’ analisi matematica. Conviene allora approssimare la funzione, nell’ intervallo di interesse, con un’ altra funzione )(xf di forma più semplice su cui sia possibile operare analiticamente e dedurre il risultato incognito.

L’ interpolazione è quindi connessa ma distinta dal problema di approssimazione di funzioni. Questo problema consiste nell’ approssimare una funzione complessa con una più semplice. In questo caso la funzione è nota è può essere calcolata in qualsiasi punto desiderato o utile per costruire l’ approssimazione. Nel caso dell’ interpolaz ione la forma funzionale non è nota ma è noto solo il suo valore in alcuni punti { }ix non di nostra scelta.

Prima di affrontare un qualsiasi problema di approssimazione è indispensabile:

1. individuare la classe di funzione da usare per costruire le funzioni approssimanti

2. individuata la classe adottare un criterio per la scelta di una specifica funzione.

Riportiamo ora alcuni esempi di possibili classi di funzioni approssimanti

a) nP polinomi di grado ( ) 01

1 ... : axaxaxfn nn

nn +++=≤ −

b) ( )ωnΠ polinomi trigonometrici di grado n≤

Page 4: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

4

( ) ( ) ( )( )[ ]� ++==

n

kkk kxbkxaaxf

10 sencos ωω

Si tratta di una classe naturale per fenomeni periodici di frequenza circolare .ω

c) nm,R : funzioni razionali

( ) ( )( ) ( ) ( ) P e P m∈∈= xqxp,xqxp

xf n

Una tale scelta permette di simulare singolarità .

d) nE : somme esponenziali

( ) 1

�==

−n

k

xbki

keaxf

Una tale classe è conveniente per fenomeni aventi cadenza esponenziale.

e) mS : funzioni spline polinomiali di grado m, cioè polinomi a tratti di grado m, con derivate continue fino ad un certo ordine nei punti di raccordo.

1.2 I criteri di scelta

Dati quindi N coppie di punti sperimentali (o nodi) { }ii yx , , consideriamo ora alcuni criteri di scelta comunemente adottati per costruire la funzione approssimante f(x)

a) Concordanza esatta (interpolazione nel senso stretto): l’ approssimante è scelto in modo tale che

( ) Nixfy ii ...1,0 ==

Cioè il valore della funzione ( )ixf nel punto sperimentale

ix è esattamente uguale al valore sperimentale iy . N+1 è il numero di punti sperimentali. Un tale criterio di scelta è applicabile se il numero degli

ix è uguale al numero dei parametri della )(xf e risulta opportuno soltanto quando ci si fida dei valori iy .

L’ esempio è stato fatto usando MathCad. Per evitare confusioni con le variabili la funzione interpolante è stata chiamata f(z) e passa esattamente per i nodi { }ii yx , .

0 2 4 6

0

1

f z( )

y

z x,

���

����������{������}�

Page 5: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

5

b) Metodo dei minimi quadrati lineare. Si cerca la funzione che renda minima la somma dei quadrati degli scarti ( ) ii yxf − tra valore della funzione e valore sperimentale.

( )[ ] minimo 0

2 =−�=

N

iii yxf Ni ...1,0 =

Si possono impiegare metodi classici del calcolo infinitesimale per risolvere questo problema.

Un tale criterio di scelta è applicabile se il numero degli

ix è maggiore o uguale al numero dei parametri della

)(xf e risulta opportuno soltanto quando i valori iy non sono affidabili, ma sono per esempio il risultato di misure.

L’ esempio è stato fatto usando MathCad. Per evitare confusioni con le variabili nell'esempio la retta ai minimi quadrati è stata chiamata f(z). La retta approssima i nodi { }ii yx , ma non passa esattamente per quei punti. Il numero di punti sperimentali N+1 è maggiore dell'ordine m del polinomio interpolante (m=1 per la retta).

1.2.1 Osservazioni

Due importanti applicazioni di questo studio di dati sperimentali sono: l’ analisi delle tendenze e la verifica delle ipotesi . Nell’ analisi delle tendenze l’ andamento dei dati è utilizzato per fare delle previsioni. Se i dati sono misurati con grande precisione si usa l’ interpolazione, se al contrario la precisione dei dati è scarsa si usa il metodo dei minimi quadrati. Quindi l’ analisi delle tendenze si propone di valutare i valori della variabile dipendente o in punti interni all’ intervallo dei dati o oltre i limiti dei dati disponibili; in questo secondo caso si parla di estrapolazione.

Una seconda applicazione dell’ approssimazione di dati sperimentali mediante funzioni approssimanti è la verifica delle ipotesi. I dati infatti sono confrontati con un dato modello matematico, i cui parametri devono essere determinati in modo tale che il modello soddisfi il più possibile i dati sperimentali, secondo un certo criterio prefissato.

���

�������

0 5

0

5

10

y

f z( )

x z,

���{������}�

Page 6: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

6

2. LE CURVE DI REGRESSIONE 2.1 La retta di regressione Data una distribuzione di valori sperimentali }{ Niyx ii ,...1,0;, = . La forma più semplice di relazione tra due variabili, ed una delle più frequenti, è quella lineare, in cui la variabile dipendente è espressa in funzione della variabile indipendente x da una equazione del tipo:

xbaxf ⋅+=)( (1)

Sia che l'esistenza di una relazione lineare tra le due variabili si ammetta nota a priori, sia che venga solo ipotizzata, è conveniente calcolare i termini costanti a e b in base a dati sperimentali in modo da poter stimare anche la precisione con cui vengono determinati, per quanto concerne la varianza di campionamento. Questi calcoli vengono eseguiti con il procedimento della regressione lineare che fornisce i due termini cercati utilizzando come dati in ingresso almeno tre coppie di valori delle due variabili. La retta individuata dalla relazione 1 non passerà di regola per i punti sperimentali, definiti sul piano cartesiano dalle coppie di valori x, y usate per calcolare a e b; vi saranno cioè degli scarti tra il valore sperimentale yi associato ad un dato valore della variabile indipendente xi e il corrispondente valore calcolato f(xi) utilizzando la 1. In campo sperimentale questi scarti possono essere dovuti sostanzialmente a due tipi di cause, a carattere casuale o sistematico. Anche quando la relazione tra x e y è intrinsecamente lineare, gli effetti di errori casuali prodotti dall'influenza di altre variabili non controllate, fanno sì che ad un determinato valore di x possano in realtà corrispondere valori diversi della y a seconda delle circostanze; cioè anche quando la variabile indipendente è soggetta ad errori trascurabili, la variabile dipendente sarà soggetta a fluttuazioni. Dal punto di vista pratico il problema della regressione lineare si può porre sostanzialmente nei seguenti termini: ♦ Data una serie di coppie di valori x,y calcolare in base a questi i termini costanti a e b, in modo

da minimizzare una data funzione degli scarti tra valori sperimentali e valori calcolati della variabile dipendente e valutare l'entità presumibile di questi scarti in altri casi;

♦ Valutare l'attendibilità dell'ipotesi della relazione lineare tra x e y nel senso di determinare se gli

scarti tra valori sperimentali e calcolati della variabile dipendente hanno un carattere sostanzialmente casuale o risultano sistematici tanto da suggerire l'esistenza di termini non lineari nella relazione tra x e y

2.1.1 Calcolo dei coefficienti di regressione con il metodo dei minimi quadrati Risolvendo tale sistema si ricava il polinomio di primo grado ai minimi Dati gli N+1 punti sperimentali { }ii yx , determiniamo i coefficienti 10 aea della retta ( ) xaaxf 10 += che minimizzino la quantità ),( 10 aaR somma dei quadrati degli scarti tra valori sperimentali e calcolati della variabile dipendente

( )[ ]2

01010 ),( �

=

⋅+−=N

ii xaayaaR (2)

oppure

Page 7: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

7

( )[ ]2

010 ),( �

=

−=N

iii xfyaaR (3)

Cerchiamo i valori dei coefficienti 10 aea che rendano minima la somma dei quadrati degli scarti cioè la funzione ),( 10 aaR . La condizione di minimo richiede la nullità delle derivate prime. In un punto che minimizzi ),( 10 aaR le derivate parziali 10 // aReaR ∂∂∂∂ sono entrambe 0. Annullando tali derivate parziali otteniamo il seguente sistema lineare di due equazioni nelle due incognite

10 aea :

( )

��

��

=+

=++

� ��

� �

= ==

= =N

i

N

iii

N

iii

N

i

N

iii

yxaxax

yaxaN

0 001

20

0 010

.

1 (4)

Il sistema che si ottiene è quadrato in due equazioni e due incognite, quindi facilmente risolvibile. 2.2 La parabola di regressione Dati gli N+1 punti }{ ii yx , determiniamo i coefficienti 210 , aeaa della parabola

2210)( xaxaaxf ++= che minimizzi

[ ]2

0

2210210 )(),,( �

=

++−=N

iiii xaxaayaaaR (5)

Annullando le derivate parziali

210 //,/ aReaRaR ∂∂∂∂∂∂ si ottiene un sistema di tre equazioni nelle tre incognite

., 210 aeaa Risolvendo tale sistema si ottiene il polinomio di secondo grado ai minimi quadrati.

0 1 2 3 4 52

4

6

8

10

12

y

f x( )

x

{ }ii yx ,

iy

ix

)( ixf(((( ))))ii xfy −−−− Figura 1

0 54

2

0

2

4

y

f z( )

x z,

Page 8: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

8

2.3 Esame dei dati e dei risultati

2.3.1 Il coefficiente di correlazione Quando tra le due variabili vi è (o non vi è) una relazione di tipo lineare è utile disporre di un parametro che permetta di valutare l’ entità di tale associazione. Il parametro utilizzato è il coefficiente di correlazione indicato con r. Il fatto stesso che il coefficiente di correlazione venga utilizzato per smentire l’ ipotesi nulla, che non ci sia cioè alcuna correlazione tra le due variabili, basta ad indicare l’ inutilità di ricorrere a questo parametro quando è data per ammessa a priori l’ esistenza di una ben definita interdipendenza tra le due variabili o addirittura sussiste tra loro un rapporto di causa ad effetto. Ricordiamo che:

( ) ( )1

),( 1 1−

� � −⋅−= = =

n

yyxxyxCov

n

i

n

iii

(6)

( )2

11−

� −= =

n

xxn

ii

xσ (7) ( )

2

11−

� −= =

n

yyn

ii

yσ (8)

yx

yxCovr

σσ),(= (9)

risulta anche

y

xbrσσ= (10)

Il campo di variabilità di r è compreso tra –1 e 1; i due estremi corrispondono ad una correlazione perfetta in cui ogni variazione di una delle variabili è accompagnata da una di proporzionale entità dall’ altra. Se r risulta prossimo allo zero si deduce che le due variabili non sono legate da una relazione di tipo lineare. Questo non significa affatto però che le due variabili non siano strettamente collegate e dipendano in maniera funzionale l’ una dall’ altra.

Uno sguardo all’ equazione 10 basta per confermare che per qualsiasi relazione tra la x e la y che dia luogo a b=0 risulta identicamente r=0; è sufficiente che nel piano cartesiano la relazione y=f(x) dia origine ad una curva simmetrica (ad esempio cerchio, iperbole, parabola) perché tale condizione sia soddisfatta.

Si deve quindi tener presente che un basso valore del coefficiente di correlazione non implica automaticamente l’ assenza di associazione tra le due variabili; in alternativa vi è la possibilità che esista una correlazione, magari assai marcata, ma sostanzialmente non esprimibile mediante una relazione lineare.

Page 9: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

9

2.3.2 Analisi degli scarti Consideriamo i valori sperimentali riportati in Tabella 1. La retta di regressione ha come equazione

zzf ⋅+= 694.1190.2)( . I punti sperimentali e l’ equazione della retta sono riportati in figura 1. Gli scarti sono riportati in Tabella 1 e figura 2

Tabella 1

E’ importante analizzare gli scarti tra valori sperimentali e valori calcolati. In questo caso la figura 2 non fornisce motivi per mettere in questione la validità dell’ ipotesi si relazione lineare. Consideriamo ora un nuovo esempio. I dati sperimentali sono raccolti in Tabella 2 La retta di regressione ha come equazione xxf ⋅⋅⋅⋅++++−−−−==== 18556.4)( . I punti sperimentali, e la retta di regressione sono riportati in figura 3 e Tabella 2.

Tabella 2 x y scarti 1 16 2.56 2 32 0.56 3 49 -0.44 4 66 -1.44 5 83 -2.44 6 102 -1.44 7 121 -0.44 8 140 0.56 9 160 0.26

x y scarti 1.00 2.70 -1.184 1.50 5.80 1.069 1.75 3.60 -1.555 2.26 7.06 1.041 2.64 9.17 2.508 3.14 7.32 -0.189 3.60 7.88 -0.409 3.90 7.37 -1.421 4.23 8.33 -1.026 4.52 11.02 1.173

figura 3 0 5 10

0

100

200

f z( )

y

z x,

0 5 104

2

0

2

4

scarti

x

0 5

0

20

f z( )

y

z x,

0 2 4 62

0

2

4

scarti

x

figura 2

Page 10: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

10

In questo caso gli scarti hanno un andamento sistematico tali da suggerire ulteriori analisi. Il calcolo dei coefficienti di una retta di regressione permette di utilizzare la relazione lineare ottenuta per la stima dei valori di y associati a valori di x, senza però individuare esplicitamente quanto sia in realtà lecita l’ assunzione dell’ ipotesi di relazione lineare tra le due variabili.

Nel caso della relazione funzionale discussa in questi esempi se le due variabili fossero veramente legate da una legge lineare, le differenze )(xfy −−−− dovrebbero non solo essere in media uguale a zero ma anche avere segni positivi e negativi secondo una sequenza casuale quando vengono considerati valori crescenti della x. Questa considerazione suggerisce il più semplice metodo di controllo quello cioè di riportare in grafico i residui )( ii xfy −−−− . La figura 3 ricavata dalla Tabella 2 ne indica l’ andamento. E’ chiara la presenza di effetti sistematici; y risulta maggiore di f(x) ai due estremi del campo di variazione e minore nella zona centrale in modo da suggerire una effettiva curvatura della linea che rappresenta la relazione tra x e y nel piano cartesiano.

Quando l’ ipotesi di linearità si dimostra valida solo in prima approssimazione in quanto essa non risulta sufficiente a spiegare tutti gli effetti sistematici presenti si può ricorrere ad un modello più complicato –ad esempio alla rappresentazione mediante un polinomio di ordine superiore al primo- ad una trasformazione di variabili che diano luogo ad una relazione lineare tra le variabili trasformate.

In ogni caso il problema di determinare se una data ipotesi che dà luogo ad un modello matematico è adeguata a rappresentare una data serie di valori sperimentali non può essere risolto se non viene formulato un altro modello da contrapporre in alternativa. Va da sé che il modello più adatto può esser formulato solo da chi conosce a fondo sotto ogni aspetto tecnico il problema in corso di studio.

2.3.3 Varianza rispetto alla curva di regressione

La varianza 2σ (chiamato anche scarto quadratico medio) e la deviazione standard σ calcolate rispetto alla retta di regressione costituiscono una misura degli scarti tra gli n valori sperimentali e i corrispondenti calcolati utilizzando l'equazione della retta in corrispondenza degli stessi valori della variabile dipendente. L’ analisi della varianza è utile quando si disponga di due modelli diversi in alternativa.

�= −

=n

i

i

pnscarti

1

2

σ �= −

=n

i

i

pnscarti

1

22σ (11)

p è il numero dei parametri necessari per definire la curva di regressione. Infatti, p=2 per la retta, p=3 per la parabola, e così via.

Page 11: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

11

3. INTERPOLAZIONE POLINOMIALE

Consideriamo il seguente problema. Siano assegnati i seguenti N+1 dati sperimentali }{ Niyx ii ,...1,0;, = , dove iy indica il valore misurato corrispondente all’ ascissa ix . Costruire un

polinomio algebrico

( ) 01

1 ... axaxaxf nn

nn +++= −

in modo che sia soddisfatta la condizione di interpolazione in senso stretto, tale cioè che:

Niyxf ii , .... , 1 , 0 , )( == .

Imponendo le condizioni di interpolazione , si ottiene un sistema di equazioni lineari :

��

��

=++++

=++++=++++

−−

−−

−−

iin

inn

in

nn

nn

nn

nn

yaxaxaxa

yaxaxaxa

yaxaxaxa

011

1

10111

111

00011

010

........

...

...

Ni ....,1,0 = (12)

Si ottiene quindi un sistema si N+1 equazioni in N+1 incognite che sono gli N+1 coefficienti

naaaa ...,, 210 del polinomio interpolante. Il sistema ha un'unica soluzione se il determinante della matrice dei coefficienti è diverso da zero.

�������

nnnn

n

n

xxx

xxx

xxx

..... 1

. . . . . . . .

..... 1

..... 1

2

1211

0200

Dall’ algebra sappiamo che una matrice di questo tipo è di forma speciale (si chiamano matrici di Vandermonde) ed il suo determinate è sempre diverso da zero. Esiste quindi un polinomio unico di grado n (o ordine m=N+1) che assume valori dati in N+1 punti distinti.

La funzione ( )xf con tali caratteristiche è chiamata polinomio di interpolazione di grado n e nel seguito sarà denotata con ( )xPn .

Dal momento che i sistemi con matrici di Vandermonde sono mal condizionati, la costruzione del polinomio di interpolazione non è realizzata risolvendo il sistema sopra analizzato.

3.1 Approssimazione polinomiale nel senso dei minimi quadrati

Siano assegnati i seguenti dati sperimentali }{ Niyx ii ,...1,0;, = , dove iy indica il valore misurato

corrispondente all’ ascissa ix . Supponiamo che tutte le ascisse siano distinte tra di loro.

Vogliamo trovare una funzione ( )xPn cioè un polinomio di grado n :

Page 12: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

12

( ) 01

1 ... axaxaxP nn

nnn +++= −

− (13)

tale che sia minima la quantità

[ ]2

0

)(�=

−=N

iini xPyR (14)

Si può dimostrare che il problema ha un’ unica soluzione.

Nel caso n=1 la funzione )(1 xP è un polinomio di grado 1, che dà luogo alla cosiddetta retta di regressione lineare.

Nel caso n=2 si otterrà un polinomio di grado 2, rappresentato dalla parabola ai minimi quadrati. Sottolineiamo il fatto che nel caso n=N+1 (numero punti N+1 corrisponde all’ ordine m del polinomio) l’ approssimazione polinomiale nel senso dei minimi quadrati degenera nel polinomio di interpolazione per i punti dati, mentre nel caso n>N+1 il problema non ha soluzione unica (ne ha infinite). 3.2 Problemi nell’interpolazione polinomiale globale. Il numero di punti usato nell’ interpolazione si chiama ordine dell’ interpolazione. Aumentare l’ ordine non necessariamente aumenta l’ accuratezza. Se i punti aggiunti sono lontani dalla zona di interesse il polinomio interpolante tende ad avere forti oscillazioni. Le oscillazioni non hanno in genere alcuna relazione con la forma della funzione vera. Naturalmente aggiungere punti nella zona di interesse di solito aiuta la qualità dell’ interpolazione ma non sempre. Un tipico controesempio è quello dovuto a Runge che rende palese questo fatto nel caso che l’ interpolazione venga fatta per

nodi equidistanziati. Consideriamo la funzione: ,1

1)(

2xxf

+= nell’ intervallo 55 <<− x .

Dividiamo l’ intervallo in un numero di nodi 6, 8 e 10. Costruiamo i polinomi di interpolazione di grado 6, (P6(x)); 8 (P8(x)) e 10 (P10(x)). Notiamo il forte andamento oscillante anche nell’ intervallo

4 2 0 2 40.5

0

0.5

1

1.5

22

0.5−

f x( )

P 6 x( )

P 8 x( )

P 10 x( )

55− x

Page 13: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

13

in cui sono definiti i nodi che aumenta all’ aumentare dell’ ordine dell’ interpolazione (ordine del polinomio interpolante).

Quindi che nelle applicazioni può essere opportuno non usare l’ interpolazione polinomiale globale, ma la tecnica di interpolazione composta, che consiste nell’ interpolare i dati con un polinomio a tratti di basso grado, evitando così le forti oscillazioni che presenta il polinomio di interpolazione globale.

L’ esempio più semplice di applicazione di tale tecnica è l’ interpolazione lineare a tratti, che consiste nel costruire una funzione, che interpoli i punti dati e che su ogni intervallo ][ 1, +ii xx coincida con un polinomio di grado uno. La curva che rappresenta tale funzione risulta ovviamente la spezzata che unisce i punti dati.

3.3 Interpolazione mediante funzioni spline cubiche

Abbiamo già osservato che, poiché i polinomi interpolanti di grado elevato hanno un comportamento oscillante, per evitare tale problema si possono utilizzare funzioni polinomiali a tratti. Tuttavia tali polinomi presentano delle discontinuità nelle derivate nei punti di raccordo.

Al fine di costruire funzioni interpolanti regolari si introducono le funzioni spline.

Dati i punti nixi ,...,1,0 , = in un dato intervallo [ ]ba, tali che:

bxxxxa nn ≡<<<<≡ −110 ... . (15)

Sia ( )xs una funzione che su ogni intervallo [ ] nixx ii ,...,1 , ,1 =− , coincida con un polinomio di un dato grado k, che nei nodi ix assuma certi valori prefissati iy e tale che non solo sia continua ma abbia anche tutte le derivate continue fino all'ordine k-1 incluso in tutto l’ intervallo [ ]ba, . Una tale funzione si dirà funzione spline di grado k.

Usare un polinomio lineare a tratti (il grado k del polinomio è 1) è la soluzione più semplice (anche se non la più soddisfacente); vuol dire approssimare la funzione in ogni intervallo [ ] ,1 ii xx − con una funzione lineare S1(x) (un tratto di retta) passante per i punti ii xx ,1−−−− definita unicamente nell’ intervallo [ ] ,1 ii xx − (per due punti passa una sola retta).

Le funzioni più popolari sono certamente quelle cubiche. La loro costruzione è assai semplice. In particolare diremo spline interpolante cubica associata alla partizione (20) una funzione

323 )( xdxcxbaxS ⋅+⋅+⋅+= definita in ciascuno degli n intervalli [ ] ,1 ii xx − ; la funzione

k

kk

dx

xSdS

)(3)(3 ==== è una funzione continua nell’ intervallo [ ]ba, per k=0,1,2.

La costruzione di tale funzione richiede la determinazione di 4n parametri (4 per ciascuna cubica per gli n intervalli). Occorre definire quindi 4n condizioni.

1. ii yxS ====)(3 i=0,1...n

E’ la condizione di interpolazione: ci sono n+1 equazioni una per ciascun nodo

2. )()( 33−+ = ii xSxS n-1 equazioni

3. )()( )1(3

)1(3

−+ = ii xSxS n-1 equazioni

Page 14: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

14

4 2 0 2 40

0.5

1

1.2

0.037

f x( )

spline x( )

55− x

4. )()( )2(3

)2(3

−+ = ii xSxS n-1 equazioni

Per ogni nodo xi indichiamo )(3+ixS ( )(3

−−−−ixS ) il limite sinistro (destro) di S3(x) per x→xi

Complessivamente le condizioni 1, 2, 3 e 4 consentono di scrivere 4n-2 equazioni. Ne mancano due.

A seconda delle scelte di tali due ulteriori condizioni si otterranno diversi tipi di splines cubiche interpolanti , quali ad esempio :

i) splines naturali se si impone 0)()( )2(30

)2(3 == −+

nxSxS

ii) splines periodiche se )()( )2(30

)2(3

−+ = nxSxS ; )()( )2(30

)2(3

−+ = nxSxS

Vediamo la funzione di Runge approssimata ora da una funzione Spline cubica

Page 15: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

15

4. INTERPOLAZIONE E REGRESSIONE CON MATHCAD 4.1 La retta di regressione Le funzioni MathCad che consentono di calcolare la retta di regressione sono slope ed intercept (oppure la funzione line). Di seguito è riportata la sintassi di queste funzioni insieme ad esempi di utilizzo.

intercept

Sintassi intercept(vx,vy)

Descrizione Fornisce l’ intercetta b della retta di regressione ai minimi quadrati: f(x)=b+m⋅x Argomenti

vx, vy

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy

slope

Sintassi slope(vx,vy)

Descrizione Fornisce il coefficiente angolare m della retta di regressione ai minimi quadrati: f(x)=b+m⋅x

Argomentivx, vy

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy

line

Sintassi line(vx,vy)

Descrizione Fornisce un vettore i cui elementi contengono l’ intercetta ed il coefficiente angolare m della retta di regressione ai minimi quadrati: f(x)=b+m⋅x

Argomentivx, vy

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy

Interessante l’ uso della funzione line

vx

1

1

1

1

1

2

3

4

5

5

5

��������������

���������������

:= vy

1.1

1.05

1.12

1.07

2

2.1

3.05

3.7

4

4.8

5.2

��������������

���������������

:=

a1 slope vx vy,( ):= a0 intercept vx vy,( ):= a0 0.42318= a1 0.84603=

f x( ) a1 x⋅ a0+:=

0 2 4 6

2

4

vy

f x( )

vx x,

line vx vy,( )8.64286

1.60714− ��

���

=

Page 16: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

16

4.2 La parabola (e i polinomi) di regressione

La funzione MathCad che consente di calcolare il polinomio di regressione di grado n è regress. La funzione fornisce un vettore che può essere utilizzato come input della funzione interp che consente di valutare il polinomio di interpolazione. Di seguito è riportata la sintassi di queste funzioni insieme ad esempi di utilizzo.

regress

Sintassi regress(vx,vy,n)

Descrizione Fornisce un vettore con i coefficienti del polinomio che approssima i dati contenuti in vx e vy. Il vettore può essere fornito come input alla funzione interp che costruisce tale polinomio

Argomenti vx, vy n

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy n numero intero n>0

Commenti La funzione di regressione regress è utile per approssimare i dati di una misura sperimentale con un polinomio di grado n. Per n=1 si ha una regressione lineare, per n=2 parabolica, n=3 cubica ecc…Si usa regress quando si vuole usare un solo polinomio per approssimare tutti i dati sperimentali. In pratica raramente si va oltre n=6. Le prime tre componenti del vettore di output vr= regress(vx,vy,n) sono vr0 =3 specifica alla funzione interp che i dati provengono da regress, vr1 =3 è l’ indice del vettore da cui cominciano i coefficienti del polinomio, vr2 =n l’ ordine del polinomio. I successivi n+1 elementi contengono i coefficienti del polinomio dal termine di minor grado al termine di grado più elevato

y

3

1

1

3

�����

������

:= x

3−

0

2

4

�����

������

:=

coef2 regress x y, 2,( ):=

coef2

3

3

2

0.850519

0.192495−

0.178462

�������

��������

=

f xx( ) interp coef2 x, y, xx,( ):=

0 5

2

y

f xx( )

x xx,

f xx( ) 0.178462xx2⋅ 0.192405xx⋅− 0.850519+:=

0 5

2

y

f xx( )

x xx,

Page 17: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

17

4.3 Le curve spline

Il polinomio interpolante lineare a tratti viene costruito con la funzione linterp. I polinomi interpolanti a tratti cubici (le curve spine cubiche) vengono costruite con la funzione cspline. Questa funzione fornisce fornisce un vettore che può essere utilizzato come input della funzione interp che consente di valutare il polinomio di interpolazione. Di seguito è riportata la sintassi di queste funzioni insieme ad esempi di utilizzo.

linterp

Sintassi linterp(vx,vy,x )

Descrizione Interpola i valori contenuti in x usando una funzione lineare.

Argomenti vx, vy

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy. Gli elementi in vx dovrebbero essere in ordine crescente.

Commenti L’ interpolazione consiste nell’ usare i punti sperimentali o comunque disponibili per predire valori compresi tra questi punti. MathCad consente di connettere questi punti con delle linee rette (interpolazione lineare). A differenza delle funzioni di regressione, queste funzioni interpolanti forniscono una curva che passa per i punti sperimentali. Pertanto la funzione risultante è molto sensibile a dati spuri. Se i dati sperimentali presentano molto rumore dovrebbe essere meglio utilizzare un polinomio di regressione. Per trovare il valore di interpolazione per una particolare x, linterp trova i due punti tra cui x è compreso e fornisce il valore corrispondente di y usando l’ equazione della linea retta che congiunge i due punti. Per valori di x più piccoli del più piccolo valore in vx, MathCad estrapola il polinomio cubico nell’ intervallo descritto dai più piccoli valori in vx. Per valori di x più grandi del più grande valore in vx, MathCad estrapola il polinomio cubico nell’ intervallo descritto dai più grandi valori in vx. Per avere risultati sensati non usare interp con valori x lontani dai punti sperimentali. Infatti le funzioni linterp sono intese per interpolazione di dati ma non per estrapolazione.

0 50

0.5

11

0

vy

linterp vx vy, x,( )

61− vx x,

linterp

coef cspline vx vy,( ):= f x( ) interp coef vx, vy, x,( ):=

0 50

0.5

1

vy

f x( )

vx x,

Page 18: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

18

cspline

Sintassi cspline(vx,vy)

Descrizione Fornisce un vettore dei coefficienti di una spline cubica. Il vettore può essere fornito come input alla funzione interp che costruisce tale funzione.

Argomenti vx, vy

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy

interp

Sintassi interp(vs,vx,vy,x )

Descrizione Interpola i valori contenuti in x usando la funzione i cui coefficienti sono contenuti in vs. vx e vy sono i vettori dei punti sperimentali sui quali si è costuita la funzione approssimante.

Argomenti vs vx, vy

vettore fornito come output dalle funzioni cspline o regress vettori reali della stessa dimensione che contengano le coppie di valori sperimentali per la variabile indipendente vx e per la variabile dipendente vy

Commenti

Consideriamo prima il caso in cui interp è usata con l’ output della funzione cspline. Per trovare il valore interpolato in corrispondenza di un particolare valore x, MathCad trova i due punti tra i quali è compreso il valore x. Quindi MathCad fornisce il valore f(x) usando il polinomio cubico compreso tra i due punti. Per valori di x più piccoli del più piccolo valore in vx, MathCad estrapola il polinomio cubico nell’ intervallo descritto dai più piccoli valori in vx. Per valori di x più grandi del più grande valore in vx, MathCad estrapola il polinomio cubico nell’ intervallo descritto dai più grandi valori in vx. Per avere risultati sensati non usare interp con valori x lontani dai punti sperimentali. Infatti le curve Spline sono intese per interpolazione di dati ma non per estrapolazione. Nel caso si sia usata invece la funzione regress, interp calcola i valori f(x) usando il polinomio di regressione

Page 19: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

19

4.4 Regressione lineare generalizzata. Non tutti i dati possono essere modellizzati da rette o polinomi. Ci sono casi in cui c'è la necessità di modellizzare i dati con una combinazione lineare di funzioni arbitrarie. La funzione di MathCad linfit è costruita per risolvere questi problemi. Se si pensa che i dati in esame possano essere approssimati da una funzione F(x) combinazione lineare di alcune funzioni scelte arbitrariamente

)(...)()()( 1100 xfaxfaxfaxF nn ⋅++⋅+⋅= si usa linfit per determinare i coefficienti ai. L'esempio riportato sopra mostra una funzione F(x) combinazione lineare di tre funzioni x, x2 e (x-1)-1.

11

)( 322

1 +⋅+⋅+⋅=

xaxaxaxF . La funzione linfit utilizza una tecnica ai minimi quadrati per

determinare i coefficienti a1, a2 e a3 necessari per definire la funzione F(x).

vx

0

.2

.4

.6

.8

1

�������

��������

:= vy

.43

.22

.8

.2

1

2

�������

��������

:= F x( )

x2

x

1

x 1+

�����

������

:=

S linfit vx vy, F,( ):= S

2.914

1.295−

0.501

���

����

=

funzione approssimante

f x( ) 3.087x2⋅ 1.475x⋅− 0.5151

x 1+⋅+:=

linfit

Sintassi linfit(vx,vy,F)

Descrizione Fornisce un vettore con i coefficienti usati per creare una combinazione lineare di funzioni come specificato in F che meglio approssima i dati specificati in vx e vy. Fornisce come risultato un vettore che contiene i coefficienti per costruire la funzione F

Argomenti vx, vy F

vettori reali della stessa dimensione che contengano le coppie di valori sperimentali in ordine crescente per la variabile indipendente vx e per la variabile dipendente vy Funzione di una singola variabile costituita da un vettore contenenti singole funzioni

Commenti La funzione di MathCad linfit è basata sulla tecnica dei minimi quadrati lineari. Fornisce un vettore di coefficienti per costruire la combinazione lineare con cui ciascuna funzione specificata nel vettore F, contribuisce alla definizione della funzione F complessiva.

Ci sono situazioni in cui neanche linfit è sufficiente. Infatti i dati potrebbero non essere modellizzati da una combinazione lineare di funzioni. Ad esempio se i dati possono essere modellizzati dalla funzione )3tanh()2sin()( 21 xaxaxF ⋅⋅+⋅⋅= è sufficiente calcolare i pesi a1 e a2 usando linfit. Se invece è richiesta una funzione del tipo )tanh()sin()( 2211 xbaxbaxF ⋅⋅+⋅⋅= occorre determinare anche i parametri b1 e b2 ed è necessario l'utilizzo di altre funzioni specializzate di MathCad come expfit, logfit, ecc.. o la procedura generale mediante l'uso della funzione minerr

0 0.5 10

1

2

vy

f x( )

vx x,

Page 20: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

20

che si basano su tecniche ai minimi quadrati non lineari. La soluzione di equazioni non lineari è trattata nel capitolo 7. Alcune funzioni caratteristiche che si possono utilizzare con la funzione linfit sono: 1. Somme di potenze di x (polinomi di grado n in cui possono o no mancare uno o più termini). Ad

esempio 32)( xcxbxaxf ⋅⋅⋅⋅++++⋅⋅⋅⋅++++⋅⋅⋅⋅====

2. )exp()( xbaxf ⋅⋅⋅⋅++++==== 3. )exp()( xbaxf −−−−⋅⋅⋅⋅++++==== 4. )ln()( xbaxf ⋅⋅⋅⋅++++====

5. 1)()( −−−−⋅⋅⋅⋅++++==== xbaxf 4.5 Regressioni specializzate In alcuni casi è necessario utilizzare funzioni approssimanti i cui parametri da calcolare non sono semplicemente dei pesi che moltiplicano i vari termini che le compongono (vedi esempi 1-5 del punto precedente), ma sono essi stessi argomento della funzione. Ad esempio si confronti la funzione )exp()( xbaxg ⋅⋅⋅⋅++++==== con la funzione )exp()( xbaxf ⋅⋅⋅⋅++++==== . Nella funzione g(x) il parametro b non è semplicemente il peso del termine exp(x) nella funzione complessiva ma è esso stesso argomento dell’ esponenziale. La differenza è che i parametri a e b della funzione f(x) vengono determinati mediante il metodo dei minimi quadrati che porta a risolvere un sistema di equazioni lineari in a e b. Nel caso della funzione g(x) il calcolo dei parametri a e b mediante una tecnica ai minimi quadrati conduce a risolvere un sistema di equazioni non lineari in a e b che richiede quindi l’ uso di tecniche numeriche. MathCad possiede alcune funzioni specializzate per il calcolo dei parametri di alcune tipiche funzioni matematiche.

1. expfit calcola i parametri della funzione cxba ++++⋅⋅⋅⋅⋅⋅⋅⋅ )exp( 2. logfit calcola i parametri della funzione cbxa ++++++++⋅⋅⋅⋅ )ln(

3. pwrfit calcola i parametri della funzione cxa b ++++⋅⋅⋅⋅ 4. sinfit calcola i parametri della funzione cbxsina ++++++++⋅⋅⋅⋅ )(

5. lgsfit calcola i parametri della funzione )exp(1 xcb

a⋅⋅⋅⋅−−−−⋅⋅⋅⋅++++

expfit, lgsfit, logfit, pwrfit, sinfit

Sintassi expfit(vx,vy,vg), lgsfit(vx,vy,vg), logfit(vx,vy,vg), pwrfit(vx,vy,vg), sinfit(vx,vy,vg)

Descrizione Forniscono i parametri a, b e c per definire le funzioni descritte nei punti 1-5 Argomenti

vx, vyvg

vx e vy sono i vettori dei dati sperimentali vg è un vettore che contiene i valori di partenza per i parametri a, b e c (vedi le tecniche numeriche descritte nel capitolo 7.

Commenti Utilizzano tecniche basate sui minimi quadrati non lineari. Utilizzano quindi i metodi numerici descritti nel capitolo 7. Ridurreil valore della variabile TOL migliora l'accuratezza con cui queste funzioni calcolano i valori dei parametri

Page 21: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

21

4.6 Regressione non lineare generalizzata Si vuole approssimare una serie di dati con la funzione )exp(),,( 1 ββ αβαβα xxxF ⋅−⋅⋅⋅ − . Nessuna delle funzioni di MathCad viste finora può calcolare i parametri di questa funzione. Una possibilità è l’ utilizzo della funzione Minerr.

Given…Minerr

Sintassi Given somma scarti quadratici = 0 Minerr(var1, var2, …)

Descrizione Fornisce i valori delle variabili var1, var2, … più prossime a risolvere un sistema di equazioni specificate da Given. Le istruzioni Given… Minerr costituiscono un solve block.

Argomentivar1, var2,…

sono variabili reali o complesse a cui bisogna fornire valori di prova fuori dal blocco Given…Minerr

Commenti La funzione Minerr è molto simile alla funzione Find e usa esattamente lo stesso algoritmo. La differenza è che se anche il sistema non ha soluzioni, Minerr cercherà comunque i valori più prossimi a risolvere il sistema. La funzione Find in questo caso darebbe un messaggio di errore avvertendo di non poter trovare una soluzione. L’ uso di Minerr è esattamente identico a quello di Find. La necessità di una maggiore accuratezza dei risultati richiede di ridurre il valore di TOL (convergence tolerance). Il significato di TOL è descritto nel paragrafo 7.x. Allo stesso modo potrebbe essere utile ridurre il valore di CTOL (constraint tolerance). CTOL controlla quanto un vincolo deve essere rigido affinché una soluzione sia accetabile. Ad esempio CTOL=0.001 (valore di defaoult) indica che il vincolo x<2 può considerarsi soddisfatto se x<2.001 Minerr in genere fornisce una soluzione che minimizza l'errore. Minerr non garantisce che il risultato sia un minimo assoluto. La qualità delle soluzioni va sempre verificata con il calcolo della deviazione standard o dello scrto quadratico medio. Minerr è particolarmente utile nel risolvere problemi a minimi quadrati non lineari

F x α, β,( ) α β⋅ xβ 1−⋅ exp α− xβ⋅( )⋅:=

R α β,( )0

11

i

yi F xi α, β,( )−( )2�=

:=

α 1:= β 1:=

Given

R α β,( ) 0

α

β ��

���

Minerr α β,( ):= α 0.50218= β 2.00035=

0 1 2 3 40

0.5

1

yi

F z α, β,( )

xi z,

x

.132

.322

.511

.701

.891

1.081

1.27

1.46

1.65

1.839

2.029

2.219

����������������

�����������������

:= y

.1

.258

.543

.506

.606

.622

.569

.453

.438

.316

.29

.195

����������������

�����������������

:=

valori di prova

Page 22: 2. Approssimazioni di dati e funzioni con MathCad

A. M. Ferrari - Appunti di LPCAC

22

5 APPENDICE 5.1 Metodo di Lagrange

Presenteremo ora un metodo numerico per la costruzione del polinomio ( )xPn . Si ponga :

( ) nixx

xxxl

n

ijj ji

ji ,...,1,0 ,

0=∏ �

��

−=

≠=

(16)

evidentemente

( )

( )��

��

≠=

==

=∈

ij

nji

ij

xl

nixl

ijji

ni

0,...,1,0,

1

,...,1,0 , P

δ

I polinomi )(xl i , i=0,..n sono detti polinomi caratteristici di Lagrange ed attraverso di essi è possibile ottenere )(xPn nella seguente forma detta di Lagrange:

( ) ( ) in

iin fxlxP �=

=0 (17)

Infatti : ( ) njffxP jin

iijjn ,...,1,0 ,

0==�=

=δ . (18)

Page 23: 2. Approssimazioni di dati e funzioni con MathCad

2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD

23

6 BIBLIOGRAFIA [1] G. Monegato Calcolo Numerico Levrotto e Bella 1985 [2] A. Quarteroni Elementi di Calcolo Numerico Progetto Leonardo 1994 [3] W. H Press et al. Numerical Recipes Cambridge University Press 1992 [4] R. Levi Elementi di Statistica Sperimentale Istituto per le ricerche di tecnologie

meccaniche Vico Canavese 1972 [5] R. G. Mortimer Mathematics for Physical Chemsitry Academic Press 1999 [6] Mathcad2000 Reference Manual MathSoft 2000 [7] MathCad2000 User's Guide MathSoft 2000