20.07.2013 Views

Software matematic

Software matematic

Software matematic

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

112 Interpolare în MATLAB<br />

1.5<br />

1<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

data<br />

pchip<br />

spline<br />

−1.5<br />

−3 −2 −1 0 1 2 3<br />

Figura 4.4: Exemplu de utilizare pchip s¸i spline<br />

ZI = interp2(x,y,z,XI,YI,metoda)<br />

Aici vectorii x s¸i y cont¸in coordonatele nodurilor de interpolare, z cont¸ine valorile<br />

funct¸iei în noduri, iar XI s¸i YI sunt matrice ce cont¸in coordonatele punctelor în care<br />

dorim să facem evaluarea. ZI cont¸ine valorile interpolantului în punctele XI, YI.<br />

Parametrul metoda poate avea valoarea:<br />

• ’linear’ – interpolare bilineară (implicită);<br />

• ’cubic’ – interpolare bicubică;<br />

• ’nearest’ – interpolare bazată pe vecinul cel mai apropiat;<br />

• ’spline’ – interpolare spline.<br />

Toate metodele de interpolare cer ca x s¸i y să fie monotone, s¸i să aibă formatul ca<br />

s¸i cum ar fi produse de meshgrid. Dacă valorile date în x, y, XI s¸i YI nu sunt<br />

echidistante, ele sunt transformate într-un domeniu echidistant înainte de interpolare.<br />

Pentru eficient¸ă, dacă x s¸i y sunt deja echidistante s¸i monotone, metoda se poate da<br />

într-una din formele ’*linear’, ’*cubic’, ’*spline’, sau ’*nearest’.<br />

Dăm un exemplu care încearcă să interpoleze funct¸ia peaks pe o grilă de7×7.<br />

Generăm grila, calculăm valorile funct¸iei s¸i o reprezentăm grafic cu<br />

[X,Y]=meshgrid(-3:1:3); Z=peaks(X,Y); surf(X,Y,Z)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!