Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

7
voti

Interpolazioni

Documento senza titolo

Premessa

Quale insegnante non ha ripetuto più volte che per tracciare il grafico relativo alle misure di verifica di una legge fisica, ad esempio la legge di Ohm, non si devono unire semplicemente i punti trovati, ma determinare la "curva media"? Empiricamente allora, con il righello, mostra che una curva accettabile (una retta nel caso della legge di Ohm) è quella che lascia a destra ed a sinistra del righello lo stesso numero di punti.

L'articolo nasce da un quesito giunto al forum ed illustra in modo più preciso il concetto dell'interpolazione. Con l'augurio che trovi l'interesse degli studenti che frequentano il sito e magari siano invogliati ad imparare i potenti strumenti di calcolo matematico che il computer mette a disposizione.

Concetti generali

Dati 2 punti posso scrivere l'equazione di una retta che passa per questi. Se i punti sono 3 posso ricavare l'eq. di una parabola, se son 4 quella di una cubica, ecc.
Per questa via non ottengo pero' che i punti dati, se sono parecchi, determinino esattamente una funzione semplice come un'iperbole.
Anche se il fenomeno osservato avesse un andamento esattamente iperbolico, la presenza di errori di misura nella rilevazione dei punti, farebbe si' che la funzione non potrebbe soddisfare la condizione di passare esattamente per ciascuno dei punti.
Si e' quindi costretti a cercare una funzione che approssimi al meglio i vari punti dati.
Un metodo e' quello di scrivere la funzione che dovrebbe rappresentare il fenomeno osservato, in forma parametrica e determinarne i parametri minimizzando gli scostamenti fra la curva ed i punti.
E' questo il metodo di regressione che normalmente minimizza la somma dei quadrati degli scostamenti (dando cosi' maggior peso agli errori piu' grandi).
Si tratta quindi di procedure matematiche piuttosto complesse, che pero' oggi sono facilitate dall'impiego del calcolatore. In ambienti di sviluppo matematico, come Mathcad, esistono procedure che ricavano i parametri dell'equazione cercata semplicemente fornendo le coordinate dei punti e la funzione corrispondente.


Esempi con l'uso di Mathcad

Supponiamo di avere i valori di tabella

X
Y
2,00
64,60
2,25
51,10
2,50
42,50
2,75
36,50
3,00
32,20
3,25
28,20
3,50
25,10
3,75
22,70
4,00
21,00
4,25
19,90
4,50
17,80
4,75
16,30
5,00
15,50
5,25
14,30

Ecco lo svolgimento in MathCad

linfit1

La funzione interpolante e' supposta essere del tipo y=a0/x + a1 di cui si cercano i coefficienti a0 ed a1.
L'istruzione Mathcad linfit( ) cerca questi coefficienti in base ai 14 punti dati (ciascuno di coordinate vx,vy,
e fornisce i risultati: a0=153.674 ed a1= -17.091

Ed ecco il grafico dei punti (quadrati rossi) e della curva interpolante (linea blu)

linfit2

Qualcuno potrebbe chiedere come si sceglie la funzione interpolante.
E' completamente soggettiva.
Nel caso particolare non ho la piu' pallida idea del fenomeno osservato, quindi posso solo ipotizzare che l'andamento di questo sia "fisicamente" rappresentabile da un iperbole.
Il problema posto è solo quello di trovare i parametri che ne definiscono l'equazione.

L'utilita' del metodo potrebbe essere anche quella di ricavare (per tentativi) la "legge" che interpreta al meglio i risultati sperimentali.

Approfondimento: linfit() vs spline()

Devo pero' sottolineare che la funzione linfit( ) di Mathcad usata nel precedente esempio consente solo di esaminare funzioni assimilabili ad equazioni polinomiali. Illustriamo ora la differenza fra funzioni Mathcad che possono essere utilizzate per ricavare una linea continua date le coordinate di alcuni punti intermedi.
Si tratta di metodi sostanzialmente molto diversi tra loro, ma che vengono spesso confusi perche’ portano alla soluzione dello stesso problema: l’interpolazione fra i punti dati.

Il primo metodo e’ dunque il line fitting , cioe’ la ricerca dei parametri che definiscono una curva prestabilita che ‘interpreti’ e si adatti al meglio rispetto ai punti stessi.

Un altro metodo e’ la spline, cioe’ una curva ‘costretta’ a passare per ciascuno dei punti dati (e che quindi e’ costituita da pezzi di cubiche che congiungono i punti adiacenti). Vediamone subito l’applicazione.
Date le coordinate di 5 punti si cercano i coefficienti di un’equazione di terzo grado che si approssimi il piu’ possibile ai punti stessi (line fitting). Il risultato da quindi i coefficienti dell’equazione:
y = a0*x3 + a1*x2 + a2*x + a3

linfit3

Il grafico della curva ottenuta dimostra che c’e’ un certo scostamento tra la curva ed i punti, ma la somma dei loro valori quadratici e’ la minima di tutte le possibili curve di terzo grado tracciabili.

Se con gli stessi punti applichiamo il metodo delle spline, otteniamo invece questi risultati:

linfit4
linfit5


Come si vede, le curve passano esattamente per i punti, ma l’equazione e’ diversa per ciascun tratto intemedio (non esiste quindi una funzione che definisca la curva, ed i punti interpolati possono essere ottenuti solo con l'istruzione interp( )

Ed ora ... genfit()

Si sono mostrate le 3 diverse possibilita’ di spline esistenti in Mathcad: esse riguardano la diversa pendenza che viene scelta per i punti alle estremita’.

In realta’ in Mathcad esiste anche un altro metodo di line fitting, il genfit( ) , che permette di calcolare parametri di
equazioni piu’ complesse.

Per completezza, riporto qui un esempio applicativo che dovrebbe dimostrare le differenze rispetto alla funzione linfit( ), precedentemente illustrata.
Si e' detto infatti che quest'ultima e' utilizzabile per equazioni esprimibili in una somma di termini (cioe' polinomiale), in cui i coefficienti cercati sono le costanti che caratterizzano ciascun termine.
Con genfit( ) non si ha questa limitazione e la forma dell'equazione puo' essere piu' generale.
Per un esempio pratico, supponiamo di voler ricavare i parametri di una curva rappresentativa di una costante di tempo, dati alcuni punti ricavati sperimentalmente.

genfit1

Da 3 punti (t,y), oltre il punto iniziale 0, dati in forma vettoriale si scrive una matrice ad una colonna, in cui la prima riga riporta l'equazione funzione di t e dei parametri K, mentre nelle righe successive sono riportate le derivate parziali rispetto a ciascuno dei parametri K. Un'ulteriore matrice vg riporta i valori presunti (guess) dei parametri stessi. Il richiamo della funzione, consente l'immediato calcolo di questi.

genfit2

La figura mostra i 4 punti dati ed il tracciamento della curva con i parametri calcolati (rispettivamente la costante di tempo T ed il valore asintotico Y)
Chi volesse rendersi conto dell'utilita' del metodo, e' pregato di confrontare una procedure alternativa nel corso (in questo sito) "Elaborazione numerica dei segnali", cap. 23, fig.23.1, in cui e' riportata l'analisi di regressione partendo dai medesimi punti assegnati.

2

Commenti e note

Inserisci un commento

di LORDAS,

si richiedeva quale professore non avesse mai parlato di questo argomento????....bene ....il nostro prof L dattilo non ne ha mai parlato e l'ha inserito nel test... bene complimenti prof

Rispondi

di paolo carlizza,

argomento molto interessante ed utile, che dimostra di poter ottenere ottimi risultati con la sola conoscenza di mathcad e qualche base di analisi numerica.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.