Anteprima
Vedrai una selezione di 3 pagine su 7
Disdici quando
vuoi
vuoi
Acquista con carta
o PayPal
o PayPal
Scarica i documenti
tutte le volte che vuoi
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
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.