function Interpola
%-----------------------------------------------------------
%  Lee datos de un fichero, calcula el spline cúbico
%  asociado, lo representa graficamente
%  y calcula sus ceros en el intervalo definido por el soporte
%-----------------------------------------------------------

%----------------------  lectura del fichero
%
datos = load('datos3.dat');
x = datos(:, 1);
y = datos(:, 2);

%----------------------  calculo del spline cubico
%
coef = spline(x, y);
polinomio = @(x) ppval(coef,x);

%----------------------  grafica del spline
%
z = linspace(min(x), max(x));
plot(z, polinomio(z), 'LineWidth',1)
hold on
plot(x, y,'r.','MarkerSize',18)
grid on
shg

%----------------------  eje OX
%
plot([min(x),max(x)],[0,0],   'k')

%----------------------  calculo de los ceros
%
x1 = fzero(polinomio,0);
plot(x1,0,'k.','MarkerSize',18)

x2 = fzero(polinomio,1);
plot(x2,0,'k.','MarkerSize',18)

x3 = fzero(polinomio,4);
plot(x3,0,'k.','MarkerSize',18)

x4 = fzero(polinomio,6);
plot(x4,0,'k.','MarkerSize',18)

%  textos
%
text(2, 80, ['x1 = ',num2str(x1)],'FontSize', 15)
text(2, 74, ['x2 = ',num2str(x2)],'FontSize', 15)
text(2, 68, ['x3 = ',num2str(x3)],'FontSize', 15)
text(2, 62, ['x4 = ',num2str(x4)],'FontSize', 15)