• Non ci sono risultati.

Minimi quadrati in Matlab

N/A
N/A
Protected

Academic year: 2021

Condividi "Minimi quadrati in Matlab"

Copied!
17
0
0

Testo completo

(1)

Alvise Sommariva Universit`a degli Studi di Padova Dipartimento di Matematica Pura e Applicata

14 maggio 2021

(2)

Approssimazione ai minimi quadrati (discreti)

Si digiti sulla command-window di Matlab >> x = 0 : 0 . 0 1 : 2∗p i;

>> y=s i n( 2∗ x ) +(10ˆ(−1) ) ∗r a n d(s i z e( x ) ) ; >> p l o t( x , y ,’ r− ’) ;

Dal grafico si capisce che la funzione pu`o essere interpretata come una

perturbazionedella funzione sin(2x ) nell’intervallo [0, 2π].

Ci interessa approssimare non tanto la funzione plottata bens`ı sin(2x ) (che in qualche modo `e la funzione senzarumore).

Osserviamo che non ha senso utilizzare un interpolante polinomiale p di grado N n`e una spline interpolante visto chericostruirebberola funzione

(3)

Scriviamo sulla command-window di Matlab/Octave

help polyfit

In una recente release di Matlab abbiamo P O L Y F I T Fit p o l y n o m i a l to d a t a .

P O L Y F I T ( X , Y , N ) f i n d s the c o e f f i c i e n t s of a p o l y n o m i a l P ( X ) of d e g r e e N t h a t f i t s the data , P ( X ( I ) ) ˜=Y ( I ) , in a l e a s t −squares sense .

L’help dice chepolyfitcalcola i coefficienti del polinomio di grado N chemeglio

approssima i dati (X (k), Y (k)), k = 1, . . . , M nel senso deiminimi quadrati, ovvero determina l’unico polinomio pN∈ PN tale che sia minima la quantit`a

kf − PNk2= v u u t M X i =1 |f (xi) − PN(xi)|2.

(4)

Approssimazione ai minimi quadrati (discreti)

Nota. (Norme enorm)

Ricordiamo che se u ∈ RM allora kuk2:= v u u t M X i =1 u2

In Matlab, per calcolare tale quantit`a si usa il comando

(5)

Il problema di determinare il polinomio di grado 1 chemeglioapprossima i dati (X (k), Y (k)), k = 1, . . . , M nel senso deiminimi quadrati, viene usualmente dettoregressione lineare.

Vediamone un esempio in Matlab, implementato indemo regressione lineare.m.

f u n c t i o n d e m o _ r e g r e s s i o n e _ l i n e a r e % E s e m p i o r e g r e s s i o n e l i n e a r e . a =0; b =1; h = 0 . 0 5 ; 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) )∗r a n d(s i z e( x ) ) ; % o r d i n a t e % v a l u t a z i o n e c o e f f . d e l l ’ a p p r o s s i m a n t e a i m i n i m i q u a d r a t i % ” p n ” d i ” f ” d i g r a d o ”1” c o e f f=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 ) ; % e r r o r e | | f−p 1 | | 2 e r r 2=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 m i n i m i q u a d r a t i d i g r a d o ”1” ht = 1 / 1 0 0 0 0 ; u=a : ht : b ; v=p o l y v a l( coeff , u ) ;

(6)
(7)

Tale routine,

definisce una funzione che corrisponde a unaperturbazionedella retta r (x ) = 0.1 + x ;

determina mediante il comando

coeff=polyfit(x,y,1);

i coefficienti del polinomio p1di grado 1 chemeglioapprossima i dati (x (k), y (k)), k = 1, . . . , 21 = (1/h) + 1 nel senso deiminimi quadrati; valuta kf − p1k2;

disegna in una stessa figura il grafico dei dati (x (k), y (k)), k = 1, . . . , 21 e del polinomio pn, valutato mediante il comando

v=polyval(coeff,u);

nelle ascisse di testu; si osservi che i punti vengono rappresentati mediante cerchietti, utilizzando varie preferenze di colore e grandezza; inserito il titoloregressione lineare, e una legenda.

Lanciato da command-window abbiamo >> d e m o _ r e g r e s s i o n e _ l i n e a r e

E r r o r e r e g r e s s i o n e n o r m a 2 : 1 . 2 9 e−01 >>

e la figura che segue.

(8)

Regressione lineare

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.2 0.4 0.6 0.8 1 1.2 Regressione lineare Dati Retta di regressione

Figura:Grafico che illustra l’approssimazione ai minimi quadrati di grado 1 su una

(9)

La figura mostra che la retta soluzione del problema non interpola i dati, ma in generale liapprossimatutti relativamente bene.

Nota.

Vista la presenza di numeri casuali, ogni esempio che viene compiuto mediante tale routine `e potenzialmente diverso.

Esercizio (Facile)

Nel codice `e presente la riga di codice

y=0.1+x+(10^(-1))*rand(size(x));

Rifare l’esercizio, sostituendola con

y=0.1+x+(10^(-1))*2*(rand(size(x))-0.5);

(10)

Un altro esempio

Digitiamo quindi in un filedemo minimiquadrati.m

(11)

Tale routine, dapprima definisce una funzione che corrisponde a una

perturbazionedi sin(x ) in [0, 2π]. Di seguito per n che varia da 1 a 8,

determina i coefficienti del polinomio pndi grado n chemeglioapprossima i dati (x (k), y (k)), k = 1, . . . , 101 = (1/h) + 1 nel senso deiminimi quadrati;

valuta kf − pnk2;

disegna in una stessa figura il grafico dei dati (x (k), y (k)), k = 1, . . . , 101 e del polinomio pn, cambiando il titolo al variare del grado, e inserendo una legenda;

mette in pausa per 5 secondi il processo.

Esercizio (Facile)

Nel codice precedente `e presente la riga di codice

y=sin(2*x)+(10^(-1))*rand(size(x));

Rifare l’esercizio, sostituendola con

y=sin(2*x)+(10^(-1))*2*(rand(size(x))-0.5);

(12)

Un altro esempio

Dal punto di vista numerico se il grado `e basso, in virt`u delle concavit`a e delle convessit`a di sin(2 x ), il polinomio pN 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

(13)

0 1 2 3 4 5 6 7 -1.5 -1 -0.5 0 0.5 1

1.5 Minimi quadrati di grado:5

Dati

Approssimante Minimi quadrati

Figura:Grafico che illustra l’approssimazione ai minimi quadrati di grado 5 su una

perturbazionedella funzione sin (2x ) (campionamento in nodi equispaziati)).

(14)

Un altro esempio

Vediamo ora i risultati: >> d e m o _ m i n i m i q u a d r a t i 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 >> Nota.

I risultati variano da esperimento a esperimento, visto la presenza di numeri casuali.

Nota.

(15)

Esercizio

Si supponga che le coppie, (xk, yk), k = 1, . . . , 21, corrispondano alla k-sima riga della matrice (vedasifile dati.m):

d a t i =[ 1 . 0 0 0 0 e+00 −1.9450 e+00 1 . 2 0 0 0 e+00 −1.2530 e+00 1 . 4 0 0 0 e+00 −1.1400 e+00 1 . 6 0 0 0 e+00 −1.0870 e+00 1 . 8 0 0 0 e+00 −7.6000 e−01 2 . 0 0 0 0 e+00 −6.8200 e−01 2 . 2 0 0 0 e+00 −4.2400 e−01 2 . 4 0 0 0 e+00 −1.2000 e−02 2 . 6 0 0 0 e+00 −1.9000 e−01 2 . 8 0 0 0 e+00 4 . 5 2 0 0 e−01 3 . 0 0 0 0 e+00 3 . 3 7 0 0 e−01 3 . 2 0 0 0 e+00 7 . 6 4 0 0 e−01 3 . 4 0 0 0 e+00 5 . 3 2 0 0 e−01 3 . 6 0 0 0 e+00 1 . 0 7 3 0 e+00 3 . 8 0 0 0 e+00 1 . 2 8 6 0 e+00 4 . 0 0 0 0 e+00 1 . 5 0 2 0 e+00 4 . 2 0 0 0 e+00 1 . 5 8 2 0 e+00 4 . 4 0 0 0 e+00 1 . 9 9 3 0 e+00 4 . 6 0 0 0 e+00 2 . 4 7 3 0 e+00 4 . 8 0 0 0 e+00 2 . 5 0 3 0 e+00 5 . 0 0 0 0 e+00 2 . 3 2 2 0 e + 0 0 ] ;

(16)

Esercizio

Si definisca un fileesercizio regressione lineare.mcome segue.

Si scarichi il filefile dati.me si digitifile datio in alternativa si copi il contenuto di tale file nel testo della routine;

Mediante il comandodati(:,1),dati(:,2), si selezionino le ascissexe le ordinatey.

Si calcolino i coefficientiPdella retta di regressione. Stampare il polinomio di regressione p∗

1 utilizzandofprintf. Il polinomio `e

P(1) · x + P(2) oppure P(2) · x + P(1)? Si valuti il polinomio di regressione p∗

1 nei punti equispaziati xje sia zk= p1∗(xk).

Si calcoli mediante tali valutazioni, l’errore di regressione v u u t 21 X k=1 (yk− zk)2 e lo si stampi a video.

In una figura si determino le coppie estratte dal file di dati e si disegni la retta di regressione.

La correzione a questo esercizio si pu´o trovare nell’implementazione

(17)

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.

Riferimenti

Documenti correlati

Il grafico della f si ottiene poi traslando verticalmente di un’unit` a..

Analogamente, il polinomio di cos x ha solo termini pari perché il coseno è una

Gli asintotici ricavati dai limiti notevoli corrispondono in genere ai polinomi T 1 (x) delle

presentare forti oscillazioni tra un nodo e l’altro soprattutto verso gli estremi dell’intervallo, rappresentando male l’andamento dei dati (fenomeno di Runge). Inoltre un polinomio

Ricordiamo che in generale, non ha senso cercare un grado troppo alto del polinomio di miglior approssimazio- ne p N in quanto si otterrebbe a partire da un certo valore il

• Per fare il plot del polinomio di miglior approssimazione ai minimi quadrati, visto che `e una retta bastano due pun- ti

Ricordiamo che in generale, non ha senso cercare un grado troppo alto del poli- nomio di miglior approssimazione p N in quanto si otterrebbe a partire da un certo valore il

finch´ e non ho calcolato tutte