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.

110 Interpolare în MATLAB<br />

x = 0:2:10;<br />

y = sin(x); yc=[cos(0),y,cos(10)];<br />

xx = 0:.01:10;<br />

yy = spline(x,y,xx);<br />

yc = spline(x,yc,xx);<br />

plot(x,y,’o’,xx,sin(xx),’-’,xx,yy,’--’,xx,yc,’-.’)<br />

axis([-0.5,10.5,-1.3,1.3])<br />

legend(’noduri’,’sin’,’deBoor’,’complet’,4)<br />

1<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

noduri<br />

sin<br />

deBoor<br />

complet<br />

0 1 2 3 4 5 6 7 8 9 10<br />

Figura 4.3: Spline deBoor s¸i complet<br />

Sunt situat¸ii în care este convenabil să se lucreze cu coeficient¸ii funct¸iei<br />

spline (de exemplu dacă nodurile se păstrează s¸i xx se modifică). Comanda<br />

pp=spline(x,y) memorează coeficient¸ii într-o structură pp (piecewise polynomial)<br />

care cont¸ine forma, nodurile, matricea coeficient¸ilor (cu 4 coloane pentru spline<br />

cubice), numărul de subintervale, ordinul (gradul plus 1) s¸i dimensiunea. Funct¸ia<br />

ppval evaluează spline-ul folosind o astfel de structură. Alte prelucrări de nivel inferior<br />

se pot realiza cu mkpp (construct¸ia unei structuri pp) s¸i unmkpp (detalii despre<br />

componentele unei structuri pp). De exemplu, comanda yy = spline(x,y,xx)<br />

se poate înlocui cu scvent¸a<br />

pp = spline(x,y);<br />

yy = ppval(pp,xx);<br />

Vom da acum un exemplu de interpolare spline cu date vectoriale s¸i utilizare<br />

ppval. Dorim să citim interactiv mai multe puncte de pe ecran s¸i să reprezentăm<br />

grafic spline-ul parametric care trece prin aceste puncte, cu două rezolut¸ii diferite (să

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

Saved successfully!

Ooh no, something went wrong!