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ă