% Esempio di interpolazione
a = -1; 
b = 1; 
n =16;
xp = linspace(a,b,n);  % Nodi equidistanti
yp = cauchy(xp);
p = polyfit(xp,yp,n-1);% interpolazione polinomiale su nodi equidistanti
X = linspace(a,b,500);     % griglia di punti su cui visualizzare le funzioni
Y = cauchy(X);
Yp = polyval(p,X);
%plot(xp,yp,'o',X,Y,'k',X,Yp,'r')
%pause

fi = pi*(2*(1:n)-1)/(2*n); 
xc = (a+b)/2-(b-a)/2*cos(fi); % ascisse nodi di Chebyshev
yc = cauchy(xc);
pc = polyfit(xc,yc,n-1);
Yc = polyval(pc,X);
h = plot(xp,yp,'o',X,Y,'--',X,Yp,'-r',xc,yc,'s',X,Yc,'k','LineWidth',3);
legend('Punti di interp.','funz. di Cauchy',...
    'Polin.unif.','Nodi di Chebyshev','Interp.di Cheb.')
axis([-1 1 -1 1])
pause

% Utilizzo delle spline
pp = spline(xp,yp);
Ys = ppval(pp,X);
plot(xp,yp,'o',X,Y,'--',xc,yc,'s',X,Yc,'k',X,Ys,':r','linewidth',3)
legend('interp.spline','funz. di Cauchy',...
    'Nodi di Chebyshev','Interp.di Cheb.','spline')
axis([-1 1 0 2])
figure(2)
plot(xp,zeros(size(xp)),'o',X,Yc-Y,'-k',xc,zeros(size(xc)),'s',X,Ys-Y,':r','linewidth',3)
