Approssimazione di dati nel senso dei minimi quadrati Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Il best fitting In molte applicazioni accade di avere una certa quantità di dati (solitamente elevata) e di voler descrivere l’andamento del fenomeno che ha generato tali dati ed utilizzare quindi il modello, cosı̀ dedotto, per “prevedere” valori in corrispondenza di ascisse non comprese nei dati iniziali. Tale strategia è anche utilizzata per “correggere” dati sperimentali. Facciamo un esempio. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Esempio A tutti è nota la prima legge di Ohm V = RI dove I misura l’intensità di corrente, R è la resistenza del mezzo attraversato dalla corrente e V è la differenza di potenziale. Supponiamo allora di fare il seguente esperimento: preso un filo con resistenza costante, mediante due strumenti di misura si calcola l’intensità della corrente (con l’amperometro) e la differenza di potenziale (con il voltmetro). Se si suppone la temperatura costante, la resistenza è costante e dunque la legge fisica è di tipo lineare (cioè la differenza di potenziale è direttamente proporzionale all’intensità di corrente). Tuttavia i dati sperimentali in genere non “disegnano” una retta. Ciò è dovuto al fatto che gli strumenti di misura producono degli errori nelle misurazioni. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Realisticamente si perviene ad una situazione del tipo Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Tuttavia essendo noto che la legge è di tipo lineare è lecito cercare una retta che si allontani il meno possibile dai dati sperimentali. Nella precedente figura la retta è disegnata in blu. Tale retta, detta di regressione, realizza il cosiddetto “best fitting” (letteralmente il “migliore adattamento”) dei dati. Nel nostro esempio la legge, nota a priori, era di tipo lineare. È ovvio tuttavia che il ragionamento può essere generalizzato a leggi, e quindi a curve, di qualsiasi tipo. Vediamo allora come questo problema di approssimazione di dati sia legato al problema dei minimi quadrati lineari. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Approssimazione nel senso dei minimi quadrati Supponiamo di avere m ascisse x1 , x2 , . . . , xm ed in corrispondenza m ordinate y1 , y2 , . . . , ym . In altre parole sono note le coppie del piano cartesiano (xi , yi ), i = 1, . . . , m. Scegliamo quindi delle funzioni base ϕ1 (x), ϕ2 (x), . . . , ϕn (x), con n << m e supponiamo di approssimare il fenomeno che ha generato le coppie (xi , yi ), mediante la funzione fn (x) = c1 ϕ1 (x) + c2 ϕ2 (x) + . . . + cn ϕn (x) combinanzione lineare delle ϕk (x), k = 1, . . . , n, mediante le costanti ck , k = 1, . . . , n, in modo tale che l’errore commesso nei punti dato sia minimo nel senso della norma 2, cioè fn realizzi il min fn m X i=1 [yi − fn (xi )]2 = min m X (c1 ,...,cn ) Dott.ssa Maria Carmela De Bonis a.a. 2013-14 i=1 " yi − n X #2 ck ϕk (xi ) k=1 Corso di Matematica per la Chimica . Approssimazione di dati nel senso dei minimi quadrati Se si pone allora A = (ϕk (xi ))i=1,...,m,k=1,...,n , b = (y1 , y2 , . . . , ym )T , c = (c1 , . . . , cn )T , allora il problema precedente diventa min (c1 ,...,cn )T kb − Ack22 , cioè un problema ai minimi quadrati lineari, in cui gli elementi della matrice A sono dati dai valori delle funzioni base nelle ascisse xi . In genere le funzioni ϕk (x), sono scelte in accordo con la natura del problema. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Per esempio nel caso della legge di Ohm, essendo il modello di tipo lineare, si sceglie ϕ1 (x) = 1, ϕ2 (x) = x e quindi f2 (x) = c1 + c2 x è la retta (di regressione) che minimizza la quantità m X [yi − c1 − c2 xi ]2 . i=1 In termini di matrice e vettori si ha 1 x1 1 x2 c1 1 x3 , A= , c = c2 .. .. . . 1 xm Dott.ssa Maria Carmela De Bonis a.a. 2013-14 b= y1 y2 y3 .. . ym Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati In generale se si suppone che il modello sia di tipo polinomiale si sceglie ϕk (x) = xk−1 , cioè la base standard dei polinomi, e fn risulta quindi un polinomio di grado n − 1. Dunque in questo caso la matrice A è una matrice di Vandermonde rettangolare 1 x1 x12 . . . x1n−1 1 x2 x2 . . . xn−1 2 2 1 x x2 . . . xn−1 3 3 3 . . . . . A= .. .. .. .. .. . . . . . . . . . . . . . . . 2 n−1 1 xm xm . . . xm e come è noto rank(A) = n se tutti gli xi sono distinti. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati La scelta polinomiale tuttavia non è l’unica possibile. Per esempio se è noto che il fenomeno è periodico, è possibile utilizzare come funzioni della base quelle del sistema trigonometrico. Si pone cioè ϕ1 (x) = 1, ϕ2 (x) = cos x, ϕ4 (x) = cos 2x, ϕ3 (x) = sin x, ϕ5 (x) = sin 2x, ... e dunque fn risulterà essere un polinomio trigonometrico di ordine n. Ovviamente è possibile utilizzare altri modelli di approssimazione. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Se per esempio è noto che il fenomeno che genera i dati è limitato, il modello polinomiale può risultare fortemente inadeguato (i polinomi, “lontano” dall’intervallo che contiene le radici, crescono rapidamente). In questo caso può essere più performante una funzione di tipo spline cubica, e quindi le ϕj (x) possono essere scelte coincidenti con una base delle spline cubiche (per esempio le spline cardinali oppure la base delle B-spline). Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Sorgono spontanee le seguenti domande: il problema dei minimi quadrati ammette sempre soluzione? In quali circostanze è unica? La risposta ci è data dal seguente teorema. Teorema Il problema kb − Ack22 =minimo ammette sempre soluzione. La soluzione è unica se e soltanto se le colonne della matrice A sono linearmente indipendenti. Se invece le colonne di A sono linearmente dipendenti allora il problema ha infinite soluzioni; tuttavia quella di lunghezza euclidea minima è unica. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Le functions Matlab Il Matlab risolve il problema del best fitting nel caso si voglia costruire un’approssimazione di tipo polinomiale. Le functions coinvolte sono: polyfit: c=polyfit(x,y,n), costruisce il vettore c dei coefficienti (ordinati in senso discendente rispetto alle potenze) del polinomio di grado n di best fitting dei dati (xi , yi ). Il problema dei minimi quadrati lineari, con A matrice di Vandermonde, è risolto mediante il \, in quanto la matrice dei coefficienti è risaputamente mal condizionata. polyval: yy = polyval(c,xx), calcola il polinomio di coefficienti c nei punti del vettore xx. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Inoltre se si hanno dei dati memorizzati nei vettori x e y e si vuole riportarli su grafico si può usare il comando plot. Per esempio plot(x,y,’.’), apre automaticamente la finestra con il grafico nel quale i punti del piano (xi , yi ) sono indicati con un punto. A questo punto dal menù della finestra si può scegliere nella voce “Tools”, l’opzione “Basic Fitting”. Si attiva in questo modo automaticamente la “Basic Fitting GUI” (Graphical User Interface) che consente di scegliere vari possibili approssimanti per i dati. In questo modo è possibile selezionare polinomi dei minimi quadrati di vario grado (dal primo al decimo) ed averne i coefficienti e l’analisi grafica dei residui, nonché il calcolo della norma 2 del residuo. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati L’analisi dei dati a posteriori Quando si hanno dei dati sperimentali ed è nota la legge che li genera (come nel caso della legge di Ohm), l’approssimazione nel senso dei minimi quadrati può essere utilizzata per “scartare” dei valori che sono “sbagliati” (i cosiddetti outliers) e quindi per correggerli. Infatti una volta costruita l’approssimante fn è possibile calcolare i residui come yi − fn (xi ), e decidere di eliminare i dati yi che si “allontanano” troppo dal valore fn (xi ). In altri casi invece la legge che genera i dati non è nota affatto e si vuole determinare il modello proprio mediante una strategia ai minimi quadrati. Una prima analisi grossolana consiste nel guardare il grafico dei residui. Per ogni valore xi si riporta in ordinata il residuo yi − fn (xi ). Se non vi sono distribuzioni “strane” in tale grafico, se cioè i residui sembrano distribuiti casualmente, allora il modello è accettabile. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Esistono poi vari indicatori statistici che forniscono informazioni sulla bontà del modello. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Esempio Supponiamo di aver effettuato i seguenti rilevamenti: t 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 10 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 E(t) 1.5 1.1 1.4 1.5 1.4 1.5 1.8 2 2.1 2.01 2.25 2.5 2.3 2.5 2.4 2.5 2.4 2.3 2.35 2.3 2.2 1.9 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Denotando con x il vettore che ha per componenti gli elementi della prima colonna della tabella e con y il vettore che ha per componenti gli elementi della seconda colonna della tabella, prima di tutto disegnamo l’andamento dei dati con il comando plot(x,y,’*’) Otteniamo il grafico 2.5 2 1.5 1 1 2 3 4 5 6 7 8 9 10 Determiniamo con il metodo dei minimi quadrati i coefficienti del polinomio y = ax3 + bx2 + cx + d e valutiamo il valore del residuo. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati La matrice A è la seguente A = {ai,k }i=1,...,22,k=1,2,3,4 = {ϕk (xi )}i=1,...,22,k=1,2,3,4 . Risolvendo il sistema Ac = y con la function \ del Matlab otteniamo il vettore 1.184020106917738e + 000 8.419644139471798e − 002 c= 4.436439798930818e − 002 . −4.349397590361441e − 003 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Approssimazione di dati nel senso dei minimi quadrati Dunque il polinomio di grado 3 che approssima meglio i dati del nostro esperimento nel senso dei minimi quadrati è 2.5 data 2 cubic y = − 0.0043*x3 + 0.044*x2 + 0.084*x + 1.2 2 1.5 1 1 2 3 4 5 6 7 Il residuo, calcolato con il comando norm(A c-y) è 0.5804853949106901. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica 8 9 10