Anteprima
Vedrai una selezione di 3 pagine su 7
Calcolo Numerico – Fitting dei dati Pag. 1 Calcolo Numerico – Fitting dei dati Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Calcolo Numerico – Fitting dei dati Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Calcolo Numerico - Elaborato 3

Il modello che approssima l'andamento di questi dati è un polinomio di primo grado e viene detto retta diminimi quadrati e in Matlab si rappresenta in questo modo: coef=polyfit(x,y,1); t=1:0.5:10; f=polyval(coef,t); plot(x,y,'o',t,f); Con le funzioni polyfit e polyval possiamo interpolare i dati con polinomi di grado massimo n-1 con n numerodelle rilevazioni effettuate ed in questo caso si ha il cosidetto polinomio interpolante: coef=polyfit(x,y,length(x)-1); f=polyval(coef,t); plot(x,y, 'o',t,f); Se invece i dati che abbiamo sono relativamente pochi e possono essere considerati esatti, possiamoutilizzare altre funzioni messe a disposizione dal Matlab. Ad esempio, per valutare la percentuale di crescitadella popolazione italiana dal 1861 al 2001 (dati Istat) potremmo utilizzare un polinomio interpolante a trattitramite la<p>funzione interp1>> x=[1861 1871 1881 1901 1911 1921 1931 1936 1951 1961 1971 1981 1991 2001];>> y=[22.2 27.3 29 33 36 39.4 41 42.4 47.5 50.6 54.1 56.6 56.8 57];>> t=1861:2001;>> yi=interp1(x,y,t);>> plot(x,y,'o',t,yi);title('Popolazione residente (interp1)');xlabel('Anno');ylabel('Dati in milioni');berragazzo 3/7Calcolo Numerico - Elaborato 3interp1 non è un metodo ottimale in quanto restituisce una funzione non regolare in cui non è detto che dueintervalli adiacenti abbiano la stessa derivata nel loro punto in comune. Per ovviare a questo problemapossiamo utilizzare le funzioni spline. Ad esempio, sugli stessi dati>> x=[1861 1871 1881 1901 1911 1921 1931 1936 1951 1961 1971 1981 1991 2001];>> y=[22.2 27.3 29 33 36 39.4 41 42.4 47.5 50.6 54.1 56.6 56.8 57];>> t=1861:2001;>> yi=spline(x,y,t);>> plot(x,y,'o',t,yi);title('Popolazione residente</p>(spline)
xlabel('Anno');
ylabel('Dati in milioni');
berragazzo 4/7Calcolo Numerico - Elaborato 3
Si notano immediatamente le differenze ed inoltre non insorgono più problemi di oscillazione dell'interpolante a tratti. Esistono anche le funzioni csape e ppval che permettono di valutare la spline con l'app-representation ovvero la rappresentazione a tratti, che però è affetta dal fenomeno dell'oscillazione. Un esempio rilevante si può ottenere con la funzione di Runge
>> x=linspace(-1,1,7);
>> y=1./(1+25.*x.^2);
>> xx=linspace(-1,1,101);
>> cs=spline(x,y,xx);
>> yf=1./(1+25.*xx.^2);
>> pp=csape(x,y,'second');
>> yy=ppval(pp,xx);
>> plot(x,y,'o',xx,cs,'r',xx,yy,'g',xx,yf);
legend('Punti di valutazione','Spline','Polinomio interpolante','Funzione');
berragazzo 5/7Calcolo Numerico - Elaborato 3
Infine vediamo a
confronto la spline e la curva di smooth sugli stessi dati utilizzati in precedenza

x=[1861 1871 1881 1901 1911 1921 1931 1936 1951 1961 1971 1981 1991 2001];
y=[22.2 27.3 29 33 36 39.4 41 42.4 47.5 50.6 54.1 56.6 56.8 57];
t=1861:2001;
f=spline(x,y,t);
coef=polyfit(x,y,3);
ff=polyval(coef,t);
plot(x,y,'o',t,f,'r',t,ff);
title('Popolazione residente (spline)');
xlabel('Anno');
ylabel('Dati in milioni');
legend('Punti di valutazione','Spline','Polinomio interpolante');

Dettagli
Publisher
A.A. 2012-2013
7 pagine
1 download
SSD Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F di informazioni apprese con la frequenza delle lezioni di Calcolo numerico e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof D'Amore Luisa.