20.07.2013 Views

Software matematic

Software matematic

Software matematic

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.1. Interpolare unidimensională 109<br />

y = [0.39, 1.1, 0.61, -0.02, -0.33, 0.65, ...<br />

1.13, 1.46, 1.07, 1.2, 0.3];<br />

plot(x,y,’o’); hold on<br />

xi=linspace(min(x),max(x),100);<br />

ys=interp1(x,y,xi,’spline’);<br />

yc=interp1(x,y,xi,’cubic’);<br />

h=plot(xi,ys,’-’,xi,yc,’-.’);<br />

legend(h,’spline’,’cubic’,4)<br />

axis([-1.1,1.6,-0.8,1.6])<br />

Figura 4.2 dă graficul astfel obt¸inut.<br />

1.5<br />

1<br />

0.5<br />

0<br />

−0.5<br />

spline<br />

cubic<br />

−1 −0.5 0 0.5 1 1.5<br />

Figura 4.2: Interpolare cubică spline s¸i Hermite pe port¸iuni<br />

Interpolarea spline s¸i Hermite cubică pe port¸iuni se pot realiza s¸i direct, apelând<br />

funct¸ia spline s¸i respectiv pchip..<br />

Dându-se vectorii x s¸i y, comanda yy = spline(x,y,xx) returnează în<br />

vectorul yy valorile spline-ului în punctele din xx. Dacă y este o matrice, se consideră<br />

că avem de-a face cu valori vectoriale s¸i interpolarea se face după coloanele lui<br />

y; dimensiunea lui yy este length(xx) pe size(y,2). Funct¸ia spline calculează<br />

interpolantul spline de tip deBoor. Dacă y cont¸ine cu două valori mai multe<br />

decât x, se calculează interpolantul spline complet, iar prima s¸i ultima valoare din y<br />

se consideră a fi derivatele în capete. (Pentru terminologia privind tipurile de spline<br />

vezi sect¸iunea ??).<br />

Exemplul pe care îl dăm în continuare ia s¸ase puncte de pe graficul luiy = sin(x),<br />

calculează s¸i reprezintă grafic spline-ul deBoor s¸i cel complet (vezi figura 4.3).

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

Saved successfully!

Ooh no, something went wrong!