%
%
clear

  n =input('No de pontos igualmente espaçados: ');
  x = linspace(-1,1,100);
  y = 1./(1+16*x.*x);    %  (x,y): Curva original
  xd = linspace(-1,1,n); % 
  yd = 1./(1+16*xd.*xd); %   xd,yd: Dados tabelados
  p = polyfit(xd,yd,n-1)  % Coef. do Pol. Interpolador grau n-1.
  pp = polyval(p,x);
  x1 = linspace(-1,1,2*n-1); % pontos interiores 'a partição
  y1 = interp1(xd,yd,x1);    % interp. Linear por partes
  y2 = interp1(xd,yd,x1,'spline') % Interp. spline cubico
  plot(x,y,xd,yd,'mo',x,pp,'r',x1,y1,'g');
  ye1 = 1./(1+16*x1.*x1); 
  err1 = norm(ye1-y1,inf);
  text(-.25,-.15,['Erro Max =',num2str(err1)])
legend('Curva original','pontos de interp','Interp. usual', 'Interp. Lin.')
figure
plot(x,y,xd,yd,'mo',x,pp,'r',x1,y2,'g')
err2 = norm(ye1-y2,inf);
  text(-.1,-.15,['Erro Max =',num2str(err2)])
legend('Curva original','pontos de interp','Interp. usual','Interp. Splin')