Minimi quadrati in Matlab

Documenti analoghi
Minimi quadrati. Ángeles Martínez Calomardo e Alvise Sommariva. 4 dicembre Università degli Studi di Padova

Interpolazione polinomiale.

Laboratorio di Calcolo Numerico Approssimazione ai minimi quadrati

Interpolazione spline in Matlab

Approssimazione polinomiale 1

Complementi di Matematica e Calcolo Numerico A.A

Quadratura numerica. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica. 25 maggio 2015

kπ cos, k = 0, 1, 2,, n (NB: sono n +1) n

Laboratorio di Calcolo Numerico - Corso di Laurea in Matematica Appello d esame del 19/06/2012

Minimi quadrati. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata. 21 novembre 2011

Esercitazione 7 Maggio

Complementi di Matematica e Calcolo Numerico A.A

Interpolazione polinomiale.

Alcuni esperimenti in Matlab relativi alla teoria degli errori

Interpolazione polinomiale

Calcolo Numerico - A.A Laboratorio 6

Foglio Esercizi A (interpolazione, approssimazione, integrazione)

Interpolazione e approssimazione di dati

Laboratorio di Calcolo Numerico A.A

Interpolazione polinomiale

Laboratorio di Matematica Computazionale A.A Lab. 9

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Complementi di Matematica e Calcolo Numerico A.A

Interpolazione e approssimazione di dati

Complementi di Matematica e Calcolo Numerico A.A Polinomi e vettori

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

EQUAZIONI DIFFERENZIALI

Matlab: complessità e stabilità degli algoritmi. Alcuni esempi.

Calcolo Numerico (A.A ) Lab n. 12 Approssimazione

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Il problema lineare dei minimi quadrati

Esercitazione 7: Aggiornamento minimi quadrati.

Interpolazione polinomiale. Interpolazione polinomiale

Interpolazione e approssimazione di funzioni

Dipartimento di Ingegneria Industriale DII Anno Accademico 2018/19 Registro lezioni del docente SOMMARIVA ALVISE

Polinomi. Poiché un polinomio di grado n ha n+1 coefficienti, ad un polinomio di grado n si associa un vettore di lunghezza n+1.

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

Esercizio 1. Esercizio 2

Calcolo Numerico A.A Lab. 6

Esame di Calcolo Numerico per Informatica Prof. S. De Marchi Padova, 11 dicembre x k 1 x k 2

2. Costruire un M function file di Matlab che calcola il valore del

Alcuni esperimenti in Matlab relativi alla teoria degli errori (corso di Ingegneria dell Energia) 1

Analisi Numerica I Approssimazione polinomiale

b vettore(termine noto) y* proiezione ortogonale di b

Corso di Matematica per la Chimica

Calcolo di autovalori e autovettori

Algebra Lineare Numerica A.A Lab.6

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Esercizi di Laboratorio del corso di Analisi Numerica 1

Approssimazione di dati

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 12 Metodi numerici per equazioni differenziali ordinarie

Approssimazione di dati

Corso di Laurea in Ingegneria Energetica POLINOMI IN MATLAB. Bologna, 13 marzo Fondamenti di Informatica L a.a

Approssimazione di dati

Prova di recupero sui capitoli 4 6

Approssimazione e interpolazione con polinomi algebrici

COGNOME... NOME... ( π ) ( ) = e Determinare utilizzando una funzione ausiliaria, opportunamente scelta, la soluzione del

Approssimazione di dati

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 9 Metodi numerici per equazioni differenziali ordinarie

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 Metodi numerici per equazioni differenziali ordinarie

Interpolazione polinomiale. Gabriella Puppo

Algebra lineare numerica in Matlab

Esercizi Elaborato (versione )

Approssimazione e interpolazione con polinomi algebrici

Corso di Calcolo Scientifico

Matlab: complessità e stabilità degli algoritmi. Alcuni esempi.

Interpolazione composita di Lagrange

Calcolo Numerico. Esercitazioni (A.A ) Lezione n. 16 Approssimazione

Metodi Numerici con elementi di Programmazione (A.A )

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Esercizi proposti di Analisi Numerica

Derivazione numerica 1

Approssimazione numerica

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

Equazione del calore

Lezione 6 e 7, /11/2014

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

Emma Perracchione A.A. 2018/2019

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

EQUAZIONE DEL CALORE. + G, 0 < x < 1, t > 0. 0 (t), u(1, t) = d 1 (t), t 0 u(x, 0) = f(x), 0 x 1. h 2 x

Interpolazione polinomiale. Interpolazione polinomiale

x i f(x i ) Soluzione: Primo metodo : interpolazione polinomiale, approccio di Newton ; Tavola delle differenze divise :

Sistemi sovradeterminati. b vettore(termine noto) V n. y* proiezione ortogonale di b. Carla Guerrini 1

Prove d esame Esercizi con Matlab

METODI DI COLLOCAZIONE POLINOMIALE (Metodi di Runge-Kutta continui) November 30, 2004

Interpolazione Lineare. Emilia Pecori anno scolastico

Matlab. Vettori, funzioni matematiche e grafici.

Si chiamano n nodi di Chebyshev gli zeri del polinomio di) n T n (x) = cos(n arccos(x)). Dunque, x j+1 = cos, j = 0,...,n 1.

Diario delle lezioni di Analisi Numerica laurea Magistrale in Statistica e Informatica A.A

Splines. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata. 21 novembre 2011

Laboratorio di Calcolo Numerico Laboratorio 4: Functions. Soluzione di Equazioni non lineari

ISTITUTO DI ISTRUZIONE SUPERIORE A. EINSTEIN PROGETTO LAUREE SCIENTIFICHE

Metodi numerici con elementi di Programmazione A.A

Stabilità : radici secondo grado

Programma del corso di: Calcolo Numerico Corso di laurea in Matematica a.a Prof. B.Paternoster

Analisi Numerica: Introduzione

Claudio Estatico Equazioni non-lineari

Transcript:

Minimi quadrati in Matlab Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata 3 gennaio 2019 Alvise Sommariva Minimi quadrati in Matlab 1/ 17

Approssimazione ai minimi quadrati (discreti) Si digiti sulla command-window di Matlab >> x =0:0.01:2 pi ; >> y=sin (2 x )+(10ˆ( 1) ) rand ( size (x) ) ; >> p l o t ( x, y, r ) ; Dal grafico si capisce che la funzione può essere interpretata come una perturbazione della funzione sin(2x) nell intervallo [0, 2π]. Ci interessa approssimare non tanto la funzione plottata bensì sin(2x) (che in qualche modo è la funzione senza rumore). Osserviamo che non ha senso utilizzare un interpolante polinomiale p di grado N nè una spline interpolante visto che ricostruirebbero la funzione perturbata. Alvise Sommariva Minimi quadrati in Matlab 2/ 17

Approssimazione ai minimi quadrati (discreti) Scriviamo sulla command-window di Matlab/Octave help polyfit In una recente release di Matlab abbiamo POLYFIT Fit polynomial to data. POLYFIT (X, Y, N ) finds the coefficients of a polynomial P (X) of degree N that fits the data, P (X(I) ) =Y (I), in a least squares sense. L help dice che polyfit calcola i coefficienti del polinomio di grado N che meglio approssima i dati (X (k), Y (k)), k = 1,..., M nel senso dei minimi quadrati, ovvero determina l unico polinomio p N P N tale che sia minima la quantità f P N 2 = M f (x i ) P N (x i ) 2. i=1 Alvise Sommariva Minimi quadrati in Matlab 3/ 17

Approssimazione ai minimi quadrati (discreti) Nota. Ricordiamo che se u R M allora u 2 := M In Matlab, per calcolare tale quantità si usa il comando norm(u,2). i=1 u 2 >> u=[1 2 3 ] u = 1 2 3 >> norm ( u, 2 ) ans = 3.7417 >> s q r t (1ˆ2+2ˆ2+3ˆ2) ans = 3.7417 >> Alvise Sommariva Minimi quadrati in Matlab 4/ 17

Regressione lineare Il problema di determinare il polinomio di grado 1 che meglio approssima i dati (X (k), Y (k)), k = 1,..., M nel senso dei minimi quadrati, viene usualmente detto regressione lineare. Vediamone un esempio in Matlab. f u n c t i o n demo_regressione_lineare % Esempio regressione l i n e a r e. a=0; b=1; h=0.05; x=a : h : b ; % a s c i s s e e q u i s p a z i a t e y=0.1+x+(10ˆ( 1) ) rand ( size (x) ) ; % ordinate % valutazione c o e f f. dell approssimante ai minimi quadrati % p n d i f d i grado 1 coeff=p o l y f i t ( x, y, 1 ) ; % v a l o r e p 1 n e l l e a s c i s s e x z=p o l y v a l ( coeff, x ) ; % errore f p 1 2 err2=norm (z y, 2 ) ; f p r i n t f ( \n \t E r r o r e r e g r e s s i o n e norma2 : %1.2 e, err2 ) ; % g r a f i c o d e l p o l i n o m i o a i minimi q u a d r a t i d i grado 1 ht =1/10000; u=a : ht : b ; v=p o l y v a l ( coeff, u ) ; Alvise Sommariva Minimi quadrati in Matlab 5/ 17

Regressione lineare c l f ; % p l o t p u n t i p l o t ( x, y, go, LineWidth, 1,... MarkerEdgeColor, k,... MarkerFaceColor, g,... M a r k e r S i z e, 1 0 ) ; h o l d on ; % p l o t r e t t a r e g r e s s i o n e p l o t ( u, v, k, LineWidth, 2 ) ; % t i t o l i e l e g e n d a t i t l e ( R e g r e s s i o n e l i n e a r e ) ; l e g e n d ( D a t i, R e t t a d i r e g r e s s i o n e ) l e g e n d ( ) ; h o l d off ; f p r i n t f ( \n \n ) ; Alvise Sommariva Minimi quadrati in Matlab 6/ 17

Regressione lineare Tale routine, definisce una funzione che corrisponde a una perturbazione della retta r(x) = 0.1 + x; determina mediante il comando coeff=polyfit(x,y,1); i coefficienti del polinomio p 1 di grado 1 che meglio approssima i dati (x(k), y(k)), k = 1,..., 21 = (1/h) + 1 nel senso dei minimi quadrati; valuta f p 1 2; disegna in una stessa figura il grafico dei dati (x(k), y(k)), k = 1,..., 21 e del polinomio p n, valutato mediante il comando v=polyval(coeff,u); nelle ascisse di test u; si osservi che i punti vengono rappresentati mediante cerchietti, utilizzando varie preferenze di colore e grandezza; inserito il titolo regressione lineare, e una legenda. Lanciato da command-window abbiamo >> demo_regressione_lineare Errore regressione norma2 : 1. 2 9 e 01 >> e la figura che segue. Alvise Sommariva Minimi quadrati in Matlab 7/ 17

Regressione lineare 1.2 Dati Retta di regressione Regressione lineare 1 0.8 0.6 0.4 0.2 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura: Grafico che illustra l approssimazione ai minimi quadrati di grado 1 su una perturbazione della retta 0.1 + x (campionamento in nodi equispaziati)). Alvise Sommariva Minimi quadrati in Matlab 8/ 17

Regressione lineare La figura mostra che la retta soluzione del problema non interpola i dati, ma in generale li approssima tutti relativamente bene. Nota. Vista la presenza di numeri casuali, ogni esempio che viene compiuto mediante tale routine è potenzialmente diverso. Alvise Sommariva Minimi quadrati in Matlab 9/ 17

Un altro esempio Digitiamo quindi in un file demo minimiquadrati.m f u n c t i o n demo_minimiquadrati a=0; b=2 pi ; h=0.01; x=a : h : b ; % a s c i s s e e q u i s p a z i a t e y=sin (2 x )+(10ˆ( 1) ) rand ( size (x) ) ; % ordinate f o r n =0:8 % valutazione c o e f f. dell approssimante ai minimi quadrati % p n d i f d i grado n coeff=p o l y f i t ( x, y, n ) ; % v a l o r e p n n e l l e a s c i s s e x z=p o l y v a l ( coeff, x ) ; % errore f p n 2 err2=norm (z y, 2 ) ; f p r i n t f ( \n \t n : %2.0 f norma2 : %1.2 e, n, err2 ) ; % g r a f i c o d e l p o l i n o m i o a i minimi q u a d r a t i d i grado n ht =1/10000; u=a : ht : b ; v=p o l y v a l ( coeff, u ) ; c l f ; p l o t ( x, y, r. ) ; h o l d on ; p l o t ( u, v, k, LineWidth, 2 ) ; titlestr=strcat ( Minimi quadrati di grado :, num2str (n) ) ; t i t l e ( titlestr ) ; l e g e n d ( Dati, Approssimante Minimi q u a d r a t i ) ; h o l d off ; % pausa d i 3 s e c o n d i t r a un g r a f i c o e i l s u c c e s s i v o pause ( 3 ) ; end f p r i n t f ( \n \n ) ; Alvise Sommariva Minimi quadrati in Matlab 10/ 17

Un altro esempio Tale routine, dapprima definisce una funzione che corrisponde a una perturbazione di sin(x) in [0, 2π]. Di seguito per n che varia da 1 a 8, determina i coefficienti del polinomio p n di grado n che meglio approssima i dati (x(k), y(k)), k = 1,..., 101 = (1/h) + 1 nel senso dei minimi quadrati; valuta f p n 2; disegna in una stessa figura il grafico dei dati (x(k), y(k)), k = 1,..., 101 e del polinomio p n, cambiando il titolo al variare del grado, e inserendo una legenda; mette in pausa per 5 secondi il processo. Alvise Sommariva Minimi quadrati in Matlab 11/ 17

Un altro esempio Dal punto di vista numerico se il grado è basso, in virtù delle concavità e delle convessità di sin(2 x), il polinomio p N fornisce un approssimazione scadente, mentre migliora per N 5. Osserviamo che per N > 10 tale routine incorre in problemi di condizionamento e stampa un warning del tipo Warning : Polynomial is badly conditioned. Remove repeated data points or try centering and scaling as described in HELP POLYFIT. Alvise Sommariva Minimi quadrati in Matlab 12/ 17

Un altro esempio 1.5 Minimi quadrati di grado:5 Dati Approssimante Minimi quadrati 1 0.5 0-0.5-1 -1.5 0 1 2 3 4 5 6 7 Figura: Grafico che illustra l approssimazione ai minimi quadrati di grado 5 su una perturbazione della funzione sin (2x) (campionamento in nodi equispaziati)). Alvise Sommariva Minimi quadrati in Matlab 13/ 17

Un altro esempio Vediamo ora i risultati: >> demo_minimiquadrati n : 1 norma2 : 1. 6 3 e+01 n : 2 norma2 : 1. 6 3 e+01 n : 3 norma2 : 1. 5 0 e+01 n : 4 norma2 : 1. 5 0 e+01 n : 5 norma2 : 5. 5 0 e+00 n : 6 norma2 : 5. 5 0 e+00 n : 7 norma2 : 1. 2 2 e+00 n : 8 norma2 : 1. 2 2 e+00 >> I risultati variano da esperimento a esperimento, visto la presenza di numeri casuali. Nota. Ricordiamo che in generale, non ha senso cercare un grado troppo alto del polinomio di miglior approssimazione p N in quanto si otterrebbe a partire da un certo valore il polinomio interpolante, mentre un grado troppo basso, come già detto, non ricostruirebbe adeguatamente l andamento della funzione f. Alvise Sommariva Minimi quadrati in Matlab 14/ 17

Esercizio Esercizio Si supponga che le coppie, (x k, y k ), k = 1,..., 21, corrispondano alla k-sima riga della matrice dati =[ 1.0000 e+00 1.9450e+00 1.2000 e+00 1.2530e+00 1.4000 e+00 1.1400e+00 1.6000 e+00 1.0870e+00 1.8000 e+00 7.6000e 01 2.0000 e+00 6.8200e 01 2.2000 e+00 4.2400e 01 2.4000 e+00 1.2000e 02 2.6000 e+00 1.9000e 01 2.8000 e+00 4. 5200 e 01 3.0000 e+00 3. 3700 e 01 3.2000 e+00 7. 6400 e 01 3.4000 e+00 5. 3200 e 01 3.6000 e+00 1. 0730 e+00 3.8000 e+00 1. 2860 e+00 4.0000 e+00 1. 5020 e+00 4.2000 e+00 1. 5820 e+00 4.4000 e+00 1. 9930 e+00 4.6000 e+00 2. 4730 e+00 4.8000 e+00 2. 5030 e+00 5.0000 e+00 2. 3220 e +00]; Alvise Sommariva Minimi quadrati in Matlab 15/ 17

Esercizio Si definisca un file esercizio regressione lineare come segue. Mediante il comando dati(:,1), dati(:,2), si selezionino le ascisse x e le ordinate y. Si calcolino i coefficienti P della retta di regressione. Stampare il polinomio di regressione p1 utilizzando fprintf. Il polinomio è P(1) x + P(2) oppure P(2) x + P(1)? Si valuti il polinomio di regressione p1 nei punti equispaziati x j e sia z k = p1 (x k ). Si calcoli mediante tali valutazioni, l errore di regressione 21 (y k z k ) 2 e lo si stampi a video. k=1 In una figura si determino le coppie estratte dal file di dati e si disegni la retta di regressione. Alvise Sommariva Minimi quadrati in Matlab 16/ 17

Bibliografia I S.D. Conte e C. de Boor, Elementary Numerical Analysis, 3rd Edition, Mc Graw-Hill, 1980. Wikipedia, Least Squares, http://en.wikipedia.org/wiki/least squares. Wikipedia, Minimi quadrati, http://it.wikipedia.org/wiki/minimi quadrati. Alvise Sommariva Minimi quadrati in Matlab 17/ 17