2. Approssimazioni di dati e funzioni con MathCad

Capitolo 2
APPROSSIMAZIONI DI DATI
E FUNZIONI CON MATHCAD
2
A. M. Ferrari - Appunti di LPCAC
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
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 g (x) , definita mediante una sua rappresentazione
analitica oppure nota solo in alcuni punti {xi } con i = 0,1..N , soluzione di un problema
matematico, con un'
altra f (x) 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 {y i } corrispondenti a valori prefissati
della variabile indipendente {xi } relative ad un determinato fenomeno sottoposto al nostro esame
vogliamo costruire un modello matematico f (x) che descrive sufficientemente bene il fenomeno e
ci permetta quindi di fare previsioni attendibili in punti x diversi dai nodi {xi , yi }. Se la x desiderata
è compresa tra il più grande ed il più piccolo valore delle xi il problema si chiama interpolazione; se
la x richiesta è al di fuori del range delle xi 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 g (x) nota
analiticamente; per esempio vogliamo calcolare l’ integrale
b
g ( x)dx . Supponiamo però che
a
l’ espressione della g (x) 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 f (x) 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 {xi } 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)
Pn polinomi di grado ≤ n :
b)
Π n (ω )
f (x ) = an x n + a n −1 x n −1 + ... + a0
polinomi trigonometrici di grado ≤ n
A. M. Ferrari - Appunti di LPCAC
4
f ( x ) = a0 +
n
[(ak cos(kxω ) + bk sen(kxω ))]
k =1
Si tratta di una classe naturale per fenomeni periodici di frequenza circolare ω .
c)
R m, n
: funzioni razionali
f (x ) =
p( x )
q (x )
,
p ( x ) ∈ Pn e q ( x ) ∈ Pm
Una tale scelta permette di simulare singolarità .
En
d)
: somme esponenziali
f ( xi ) =
n
a k e − bk x
k =1
Una tale classe è conveniente per fenomeni aventi cadenza esponenziale.
e) S m : 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) {xi , yi }, 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
yi =
f ( xi )
i = 0,1...N
1
f(z)
y
{
}
0
0
2
4
z,x
6
Cioè il valore della funzione
f (xi ) nel punto sperimentale
xi è
esattamente uguale al
valore sperimentale yi . N+1 è
il numero di punti sperimentali.
Un tale criterio di scelta è
applicabile se il numero degli
x i è uguale al numero dei
parametri della f (x) e risulta
opportuno soltanto quando ci si
fida dei valori yi .
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 {xi , yi }.
2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD
b)
5
Metodo dei minimi quadrati lineare. Si cerca la funzione che renda minima la somma dei
quadrati degli scarti f ( xi ) − yi tra valore della funzione e valore sperimentale.
N
i =0
[ f (xi ) − yi ]2 =
i = 0,1...N
minimo
Si possono impiegare metodi
classici
del
calcolo
infinitesimale per risolvere
questo problema.
10
y
f ( z)
{
5
}
0
0
5
x,z
Un tale criterio di scelta è
applicabile se il numero degli
x i è maggiore o uguale al
numero dei parametri della
f (x)
e risulta opportuno
soltanto quando i valori yi
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 {xi , yi } 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.
A. M. Ferrari - Appunti di LPCAC
6
2. LE CURVE DI REGRESSIONE
2.1 La retta di regressione
Data una distribuzione di valori sperimentali {xi , yi ; i = 0,1,...N } . 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:
f ( x) = a + b ⋅ x
(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 {xi , yi } determiniamo i coefficienti
a 0 e a1 della retta f ( x ) = a0 + a1 x che
minimizzino la quantità R(a0 , a1 ) somma dei quadrati degli scarti tra valori sperimentali e calcolati
della variabile dipendente
R(a0 , a1 ) =
oppure
N
i =0
2
[ yi − (a0 + a1 ⋅ x )]
(2)
2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD
R(a0 , a1 ) =
7
2
N
[ yi − f (xi )]
i =0
(3)
Cerchiamo i valori dei coefficienti a 0 e a1 che rendano minima la somma dei quadrati degli scarti
cioè la funzione R(a0 , a1 ) . La condizione di minimo richiede la nullità delle derivate prime. In un
punto che minimizzi R(a 0 , a1 ) le derivate parziali ∂R / ∂a 0 e ∂R / ∂a1 sono entrambe 0. Annullando
tali derivate parziali otteniamo il seguente sistema lineare di due equazioni nelle due incognite
a 0 e a1 :
(N + 1)a0 +
N
i =0
xi a0 +
N
i =0
N
xa =
i =0
N
xi a1 =
2
i 1
i =0
N
i =0
yi
(4)
xi yi .
12
{xi , yi }
10
yi
y
y i − f ( xi )
f ( xi 8)
Figura 1
f ( x)
6
4
2
0
1
2
xi
3
4
5
x
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 {xi , yi
}
determiniamo i coefficienti
a 0 , a1 e a 2
della parabola
f ( x) = a0 + a1 x + a 2 x 2 che minimizzi
R(a0 , a1 , a2 ) =
N
i =0
[y − (a
i
2
0 + a1 xi + a2 xi )
]
2
Annullando
le
derivate
parziali
∂R / ∂a 0 , ∂R / ∂a1 e∂R / ∂a 2 si ottiene un
sistema di tre equazioni nelle tre incognite
a 0 , a1 e a 2 . Risolvendo tale sistema
si
ottiene il polinomio di secondo grado ai
minimi quadrati.
(5)
4
y
f ( z)
2
0
2
4
0
5
x, z
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:
n
(xi − x) ⋅ n (yi − y )
Cov( x, y ) = i =1
n
(xi − x )
σ x = i =1
n −1
r=
Cov( x, y )
σ xσ y
i =1
(6)
n −1
2
n
(7)
( yi − y )
σ y = i =1
n −1
2
(8)
(9)
risulta anche
σ
r =b x
σy
(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.
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
f ( z ) = 2.190 + 1.694 ⋅ z . 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
x
y
1.00 2.70
1.50 5.80
1.75 3.60
2.26 7.06
2.64 9.17
3.14 7.32
3.60 7.88
3.90 7.37
4.23 8.33
4.52 11.02
20
scarti
-1.184
1.069
-1.555
1.041
2.508
-0.189
-0.409
-1.421
-1.026
1.173
f ( z)
y
0
0
5
figura 2
z,x
4
2
scarti
0
2
0
2
4
6
x
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 f ( x ) = −4.556 + 18 ⋅ x . I punti sperimentali, e la retta di regressione
sono riportati in figura 3 e Tabella 2.
200
Tabella 2
x
y
1
16
2
32
3
49
4
66
5
83
6
102
7
121
8
140
9
160
f ( z)
scarti
2.56
0.56
-0.44
-1.44
-2.44
-1.44
-0.44
0.56
0.26
100
y
0
0
5
z,x
10
figura 3
4
2
scarti
0
2
4
0
5
x
10
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 y − f (x) 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 yi − f ( xi ) . 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 =1
scartii
n− p
2
σ2 =
n
i =1
scartii
n− p
2
(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.
2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD
11
3. INTERPOLAZIONE POLINOMIALE
Consideriamo il seguente problema. Siano assegnati i seguenti N+1 dati sperimentali
{xi , yi ; i = 0,1,...N }, dove yi indica il valore misurato corrispondente all’ ascissa x i . Costruire un
polinomio algebrico
f ( x ) = a n x n + a n−1 x n−1 + ... + a 0
in modo che sia soddisfatta la condizione di interpolazione in senso stretto, tale cioè che:
f ( xi ) = yi
i = 0 , 1 , .... , N .
,
Imponendo le condizioni di interpolazione , si ottiene un sistema di equazioni lineari :
n
n−1
n
n−1
an x0 + an−1 x0
an x1 + an−1 x1
+ ... + a1 x0 + a0 = y0
+ ... + a1 x1 + a0 = y1
.....
n
an xi + an−1 xi
n−1
i = 0,1...., N
(12)
+ ... + a1 xi + a0 = yi
Si ottiene quindi un sistema si N+1 equazioni in N+1 incognite che sono gli N+1 coefficienti
a0 , a1 , a2 ...an del polinomio interpolante. Il sistema ha un'
unica soluzione se il determinante della
matrice dei coefficienti è diverso da zero.
1 x0
x02 ..... x0n
1 x1
x12 ..... x1n
.
.
.
.
1 xn
.
.
.
.
xn2 ..... xnn
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 f ( x ) con tali caratteristiche è chiamata polinomio di interpolazione di grado n e nel
seguito sarà denotata con Pn ( x ) .
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 {xi , yi ; i = 0,1,...N }, dove yi indica il valore misurato
corrispondente all’ ascissa x i . Supponiamo che tutte le ascisse siano distinte tra di loro.
Vogliamo trovare una funzione Pn (x ) cioè un polinomio di grado n :
A. M. Ferrari - Appunti di LPCAC
12
Pn ( x ) = a n x n + a n−1 x n−1 + ... + a 0
(13)
tale che sia minima la quantità
R=
N
i =0
2
[ yi − Pn ( xi )]
(14)
Si può dimostrare che il problema ha un’ unica soluzione.
Nel caso n=1 la funzione P1 ( x) è 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
1
nodi equidistanziati. Consideriamo la funzione: f ( x) =
, nell’ intervallo − 5 < x < 5 .
1+ x 2
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
2
2
1.5
f ( x)
1
P 6( x)
P 8( x)
P 10( x)
0.5
0
− 0.5 0.5
4
−5
2
0
x
2
4
5
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 [xi , xi +1 ]
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 x i , i = 0,1,..., n in un dato intervallo [a, b] tali che:
a ≡ x 0 < x1 < ... < x n −1 < x n ≡ b .
(15)
Sia s( x ) una funzione che su ogni intervallo [xi −1 , xi ] , i = 1,..., n , coincida con un polinomio
di un dato grado k, che nei nodi
x i assuma certi valori prefissati yi e tale che non solo sia
continua ma abbia anche tutte le derivate continue fino all'
ordine k-1 incluso in tutto l’ intervallo
[a, b] . 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 [xi −1 , xi ] con una
funzione lineare S1(x) (un tratto di retta) passante per i punti xi −1 , xi definita unicamente
nell’ intervallo [xi −1 , xi ] (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
[xi −1 , xi ] ;
S 3 ( x) = a + b ⋅ x + c ⋅ x 2 + d ⋅ x 3 definita in ciascuno degli n intervalli
S3( k ) =
d k S 3 ( x)
dx k
la funzione
è una funzione continua nell’ intervallo [a, b] 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. S3 ( xi ) = yi
i=0,1...n
E’ la condizione di interpolazione: ci sono n+1 equazioni una per ciascun nodo
2. S 3 ( xi+ ) = S 3 ( xi− )
n-1 equazioni
3. S 3 (1) ( xi+ ) = S 3 (1) ( xi− )
n-1 equazioni
A. M. Ferrari - Appunti di LPCAC
14
4. S 3 ( 2) ( xi+ ) = S 3 ( 2) ( xi− )
n-1 equazioni
Per ogni nodo xi indichiamo S 3 ( xi+ ) ( S3 ( xi− ) ) 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 S 3 ( 2) ( x 0+ ) = S 3 ( 2) ( x n− ) = 0
ii)
splines periodiche se
S 3 ( 2) ( x 0+ ) = S 3 ( 2) ( x n− ) ; S 3 ( 2) ( x 0+ ) = S 3 ( 2) ( x n− )
Vediamo la funzione di Runge approssimata ora da una funzione Spline cubica
1.2
1
f ( x)
spline ( x)
0.037
0.5
0
4
−5
2
0
x
2
4
5
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
intercept(vx,vy)
Sintassi
Descrizione
Argomenti
vx, vy
Fornisce l’ intercetta b della retta di regressione ai minimi quadrati: f(x)=b+m⋅x
vettori reali della stessa dimensione che contengano le coppie di valori sperimentali
per la variabile indipendente vx e per la variabile dipendente vy
slope
slope(vx,vy)
Sintassi
Descrizione
Fornisce il coefficiente angolare m 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
line
line(vx,vy)
Sintassi
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
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
1
1.1
1
1.05
1
1.12
1
1.07
1
2
vx := 2
vy :=
a1 := slope ( vx, vy )
3.05
4
3.7
5
4
5
4.8
5
5.2
Interessante l’ uso della funzione line
line( vx, vy ) =
8.64286
−1.60714
a0 = 0.42318
a1 = 0.84603
f ( x) := a1⋅ x + a0
2.1
3
a0 := intercept ( vx, vy )
4
vy
f ( x)
2
0
2
4
vx , x
6
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.
−3
3
y :=
1
x :=
1
3
2
f ( xx) := interp ( coef2 , x, y , xx)
0
f ( xx) := 0.178462xx
⋅
− 0.192405xx
⋅ + 0.850519
2
4
coef2 := regress ( x, y , 2)
3
y
f ( xx)
y
2
f ( xx)
2
3
coef2 =
2
0
x , xx
0.850519
5
0
x , xx
−0.192495
0.178462
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
vettori reali della stessa dimensione che contengano le coppie di valori sperimentali
per la variabile indipendente vx e per la variabile dipendente vy
n
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
5
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.
coef := cspline ( vx, vy )
1
f ( x) := interp ( coef , vx, vy , x)
1
1
linterp
vy
vy
linterp( vx , vy , x)
0
0.5
f ( x)
0
0
−1
0
5
vx , x
0.5
6
0
5
vx , x
linterp
Sintassi
linterp(vx,vy,x )
Descrizione
Interpola i valori contenuti in x usando una funzione lineare.
Argomenti
vx, vy
Commenti
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.
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.
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
vettore fornito come output dalle funzioni cspline o regress
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
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
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
esempio
F( x) = a0 ⋅ f 0 ( x) + a1 ⋅ f1( x) + ... + an ⋅ f n ( x) si usa linfit per determinare i coefficienti ai. L'
riportato sopra mostra una funzione F(x) combinazione lineare di tre funzioni x, x2 e (x-1)-1.
1
. La funzione linfit utilizza una tecnica ai minimi quadrati per
x +1
determinare i coefficienti a1, a2 e a3 necessari per definire la funzione F(x).
F ( x) = a1 ⋅ x 2 + a2 ⋅ x + a3 ⋅
vx :=
0
.43
.2
.22
.4
vy :=
.6
2
x
.8
F( x) :=
.2
.8
1
1
2
x+ 1
2
2.914
S = −1.295
S := linfit( vx, vy , F)
0.501
funzione approssimante
2
x
1
vy
f ( x)
1
0
f ( x) := 3.087⋅ x − 1.475⋅ x + 0.515⋅
1
x+ 1
0
0.5
1
vx , x
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
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
F
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 F ( x) = a1 ⋅ sin(2 ⋅ x) + a2 ⋅ tanh(3 ⋅ x) è sufficiente calcolare i pesi a1 e a2 usando linfit. Se
invece è richiesta una funzione del tipo
F ( x ) = a1 ⋅ sin( b1 ⋅ x ) + a 2 ⋅ tanh( b2 ⋅ x ) 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
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
f ( x) = a ⋅ x + b ⋅ x 2 + c ⋅ x 3
2.
3.
4.
f ( x ) = a + b ⋅ exp( x)
f ( x) = a + b ⋅ exp(− x)
f ( x) = a + b ⋅ ln( x)
5.
f ( x) = a + b ⋅ ( x) −1
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 g ( x) = a + exp(b ⋅ x) con la funzione f ( x ) = a + b ⋅ exp( x) . 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
2. logfit
calcola i parametri della funzione a ⋅ exp(b ⋅ x) + c
calcola i parametri della funzione a ⋅ ln( x + b) + c
3. pwrfit
4. sinfit
calcola i parametri della funzione a ⋅ x b + c
calcola i parametri della funzione a ⋅ sin( x + b) + c
a
calcola i parametri della funzione
1 + b ⋅ exp(−c ⋅ x)
5. lgsfit
expfit, lgsfit, logfit,
pwrfit, sinfit
Sintassi
Descrizione
Argomenti
vx, vy
vg
Commenti
expfit(vx,vy,vg), lgsfit(vx,vy,vg), logfit(vx,vy,vg), pwrfit(vx,vy,vg), sinfit(vx,vy,vg)
Forniscono i parametri a, b e c per definire le funzioni descritte nei punti 1-5
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.
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
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 F ( x,α , β )α ⋅ β ⋅ x β −1 ⋅ exp(−α ⋅ x β ) .
Nessuna delle funzioni di MathCad viste finora può calcolare i parametri di questa funzione. Una
possibilità è l’ utilizzo della funzione Minerr.
F( x, α , β ) := α ⋅ β ⋅ x
β −1
11
R ( α , β ) :=
i
α := 1
(
β
⋅ exp −α ⋅ x
)
(y i − F(xi , α , β ))2
β
.258
.511
.543
.701
.506
β := 1
.891
.606
1.081
.622
valori di prova
x :=
α
.1
.322
=0
Given
R(α , β )
.132
0
:= Minerr ( α , β )
α = 0.50218
β = 2.00035
1
1.27
y :=
.569
1.46
.453
1.65
.438
1.839
.316
2.029
.29
2.219
.195
yi
F( z, α , β )
0.5
0
0
1
2
3
4
xi , z
Given… Minerr
Sintassi
Descrizione
Argomenti
var1, var2,…
Commenti
Given
somma scarti quadratici = 0
Minerr(var1, var2, …)
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.
sono variabili reali o complesse a cui bisogna fornire valori di prova fuori dal blocco
Given… Minerr
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
A. M. Ferrari - Appunti di LPCAC
22
5 APPENDICE
5.1 Metodo di Lagrange
Presenteremo ora un metodo numerico per la costruzione del polinomio Pn ( x ) .
x−xj
n
l i (x ) = ∏
j =0 x i − x j
j ≠i
, i = 0,1,..., n
Si ponga :
(16)
evidentemente
l i (x ) ∈ Pn
, i = 0,1,..., n
1
( )
j =i
l i x j = δ ij
i, j = 0,1,..., n
0
j≠i
I polinomi l i (x) , i=0,..n sono detti polinomi caratteristici di Lagrange ed attraverso di essi è
possibile ottenere Pn (x) nella seguente forma detta di Lagrange:
Pn ( x ) =
Infatti :
( )
n
li (x ) f i
(17)
i =0
Pn x j =
n
δ ij f i = f j ,
i =0
j = 0,1,..., n .
(18)
2. APPROSSIMAZIONI DI DATI E FUNZIONI CON MATHCAD
23
6 BIBLIOGRAFIA
[1]
[2]
[3]
[4]
[5]
[6]
[7]
G. Monegato
Calcolo Numerico
Levrotto e Bella 1985
A. Quarteroni
Elementi di Calcolo Numerico
Progetto Leonardo 1994
W. H Press et al. Numerical Recipes
Cambridge University Press 1992
R. Levi
Elementi di Statistica Sperimentale
Istituto per le ricerche di tecnologie
meccaniche Vico Canavese 1972
R. G. Mortimer Mathematics for Physical Chemsitry Academic Press 1999
Mathcad2000
Reference Manual
MathSoft 2000
MathCad2000
User's Guide
MathSoft 2000