Documente Academic
Documente Profesional
Documente Cultură
REPREZENTĂRI GRAFICE
x=[1,2,3,5,6,7,8];
yi=interp1(x,y,xi) y=[2,5,7,8,9,11,14];
x, y sunt vectori ce conțin abscisele și ordonatele xi=[1:.1:10];
date iar xi este vectorul noilor abscise (mai fin) iar yi=interp1(x,y,xi)
yi este vectorul ordonatelor corespunzătoare. Nu
permite extrapolare (returnează NaN pentru valori plot(x,y,'o',xi,yi);...
title('interpolare liniara');...
care nu sunt cuprinse intre valorile extreme ale grid;legend('date','linear')
vectorului x).
x=[1,2,3,5,6,7,8];
y=[2,5,7,8,9,11,14];
yi=interp1(x,y,xi,'metoda')
xi=[1:.1:10];
Metode de interpolare: linear (implicit), nearest,
spline, cubic. Nu permite extrapolare decât cu y1i=interp1(x,y,xi,'nearest')
metodele spline și cubic. y2i=interp1(x,y,xi,'linear')
y3i=interp1(x,y,xi,'spline')
!!! Valorile vectorului x trebuie să fie ordonate y4i=interp1(x,y,xi,'cubic')
crescător. plot(x,y,'o',xi,y1i,xi,y2i,...
xi,y3i,xi,y4i);...
title('metode interpolare');...
grid;legend('date','nearest',...
'linear','spline','cubic')
P a g . | 71
INTERPOLAREA DATELOR. REPREZENTĂRI GRAFICE
x=[1,2,3,5,6,7,8];
yi=spline(x,y,xi) y=[2,5,7,8,9,11,14];
Echivalent cu xi=[1:.1:10];
yi=spline(x,y,xi)
yi=interp1(x,y,xi,'spline') plot(x,y,'o',xi,yi)
yi=interp1(x,y,xi,'metoda','extrap') x=[3,5,6,7,8];
y=[7,8,9,11,14];
Interpolează și extrapolează xi=[1:.1:10];
y1i=interp1(x,y,xi,'linear')
indiferent de metoda specificată. y2i=interp1(x,y,xi,'linear', 'extrap')
figure,plot(x,y,'o',xi,y1i);...
figure,plot(x,y,'o',xi,y1i) title('interpolare liniara');...
grid;legend('date','linear')
figure,plot(x,y,'o',xi,y2i)
figure,plot(x,y,'o',xi,y2i);...
Graficele sunt returnate în figuri diferite. title('interpolare/extrapolare');...
grid;legend('date',...
'linear - extrapolare')
figure,subplot(2,1,1),...
plot(x,y,'o',xi,y1i); subplot(2,1,2),... figure,subplot(2,1,1),...
plot(x,y,'o',xi,y1i);...
plot(x,y,'o',xi,y2i); subplot(2,1,2),...
Mai multe reprezentări grafice in aceeași figură. plot(x,y,'o',xi,y2i)
P a g . | 72
INTERPOLAREA DATELOR. REPREZENTĂRI GRAFICE
P a g . | 73
INTERPOLAREA DATELOR. REPREZENTĂRI GRAFICE
12.3. Aplicații
1. În cadrul unui experiment o epruvetă de metal se încălzește timp de 60 secunde. S-a
măsurat temperatura T a epruvetei la intervale de timp de 10 secunde și s-au obținut valorile
din tabelul de mai jos:
t [s] 0 10 20 30 40 50 60
T [o C] 0 33 40 50 68 79 90
Să se estimeze variația temperaturii pentru fiecare din cele 60 secunde folosind interpolarea
liniară și interpolarea spline cubică. Să se traseze graficele de variație a temperaturii
(ordonata) funcție de timp (abscisa) în urmăroarele variante:
- figuri distincte;
- grafice diferite cu același siatem de axe și cu legendă;
- grafice diferite cu sisteme de axe distincte, alăturate în cadrul aceleiași figuri, cu titlu
pentru fiecare figură și cu etichete pe axe.
3. În următorul tabel sunt date valorile pentru o mărime care depinde de două variabile
M(x,y).
x 15 20 25 30
y
10 100 121 133 110
20 120 125 140 189
30 134 145 130 135
P a g . | 74
INTERPOLAREA DATELOR. REPREZENTĂRI GRAFICE
12.4. Soluții
% Aplicația 12.3.1
t=[0:10:60]
T=[0 33 40 50 68 79 90]
ti=[0:60];
Ti1=interp1(t,T,ti,'linear');
Ti2=interp1(t,T,ti,'spline');
figure,plot(t,T,'o',ti,Ti1),...
title 'Variatia temperaturii - linear',grid
figure,plot(t,T,'o',ti,Ti2),...
title 'Variatia temperaturii- spline',grid
plot(t,T,'o',ti,Ti1,ti,Ti2),legend('date','linear','spline')
figure,subplot(2,1,1),plot(t,T,'o',ti,Ti1),...
title ('Variatia temperaturii - linear'),...
xlabel('timp [s]'), ylabel('temperatura.[grade C]'),grid,...
subplot(2,1,2),plot(t,T,'o',ti,Ti2),...
title ( 'Variatia temperaturii - spline'),...
xlabel('timp [s]'), ylabel('temperatura.[grade C]'), grid
% Aplicația 12.3.2
t=[0:10:60]
T=[0 33 40 50 68 79 90]
ti=27.3
Ti1v=interp1(t,T,ti,'linear');
Ti2v=interp1(t,T,ti,'spline');
P a g . | 75
INTERPOLAREA DATELOR. REPREZENTĂRI GRAFICE
% Aplicația 12.4.3
%varianta 1
x=[15 20 25 30]
y=[10 20 30]
[X,Y]=meshgrid(x,y)
xi=[15:30]
yi=[10:30]
[Xi,Yi]=meshgrid(xi,yi)
Mi=griddata(X,Y,M,Xi,Yi)
figure, surf(X,Y,M)
figure, surf(Xi,Yi,Mi)
%varianta 2
x=[15 20 25 30];
y=[10 20 30]';
M=[100 121 133 110;...
120 125 140 189;...
134 145 130 135];
figure,surf(x,y,M)
xi=[15:30];
yi=[10:30]';
Mi=interp2(x,y,M,xi,yi);
Mi1=interp2(x,y,M,15,22,'cubic')
figure,surf(xi,yi,Mi)
P a g . | 76