function T=resolverSPL(n,Y)
% El numero de nodos en los cuales se interpolara sera  n+1. Son  n-1
% puntos internos y 2 extremos.
X=zeros(n+1,1);
X(1)=-1;
for i=1:n
X(i+1)= -1 + 2*i/n;
end
% Evaluamos la funcion en el vector X de nodos y obtenemos un vectot de
% resultados que llamaremos F.
Y=zeros(n+1,1);
for j=1:n+1
Y(j)= sin(11*X(j));
end
% Finalmente tomamos el vector W de malla densa donde evaluaremos la
% funcion "f" y el spline "S". Tomamos un numero de puntos constante (300) en
% cada subintervalo.
m=n*300;
W=zeros(m+1,1);
W(1)=-1;
for i=1:m
W(i+1)= -1 + 2*i/m;
end
% Habria que armar la matriz del sistema tridiagonal para resolver, lo cual
% se hara planteando primeramente los "b_j". Este ultimo es un vector de
% n-1 porque en principio no me interesan los valores "0" y "n". Como los
% nodos estan equidistantes se tiene deltaX=h constante.
h=2/n;
B=zeros(n-1,1);
for i=1:(n-1)
    B(i)=6*( Y(i+2)- 2*Y(i+1) + Y(i))/h;
end
B;
% Formamos la matriz del sistema A que sera tridiagonal.
A=zeros(n-1,n-1);
for i=1:n-2 
     A(i,i+1)=h;
     A(i+1,i)=h;
     A(i,i)=4*h;
end
A(n-1,n-1)=4*h;
% Defino un vector Z de derivadas segundas de los Splines
Z=zeros(n+1,1);
% Dado que las condiciones de contorno dicen que Z tiene que tener primer y
% ultimo termino nulo hacemos que la solucion del sistema se le asigne a
% los elementos entre la fila '2' y la 'n'.
Z(2:n,1)=A\B;
% Defino una matriz C de coeficientes de la expresion no ordenada de S_j(x).
% Luego mediante operaciones algebraicas llegamos a los coeficientes de
% reales de las potencias de 'x'.
C=zeros(n,4);
for i=1:n
    C(i,1)=Z(i)/6*h;
    C(i,2)=Z(i+1)/6*h;
    C(i,3)=Y(i+1)/h - Z(i+1)*h/6;
    C(i,4)=Y(i)/h - Z(i)*h/6;
end
% Habria que formar ahora la matriz de los splines.
S=zeros(n,4);
for i=1:n
    S(i,1)=C(i,2)-C(i,1);
    S(i,2)=3*C(i,1)*X(i+1)-3*C(i,2)*X(i);
    S(i,3)=C(i,3) - C(i,4)- 3*C(i,1)*(X(i+1))^2 + 3*C(i,2)*(X(i))^2;
    S(i,4)=C(i,1)*(X(i+1))^3 - C(i,2)*(X(i))^3 - C(i,3)*X(i) + C(i,4)*X(i+1);
end
% Defino un SP que sera el spline graficado
SP=zeros(301,1);
close
for j=1:n
for k=1:301
    SP(k)=polyval([S(j,1),S(j,2),S(j,3),S(j,4)],W( (j-1)*300 + k));
end
    hold on
    plot(W((j-1)*300+1:j*300 +1),SP,'b-')
end
% Evaluo la funcion en la malla para comparar con la aproximacion.
F=zeros(m+1,1);
for j=1:m+1
    F(j)=sin(11*W(j));
end
plot(W,F,'r-')
hold off