function d=slope(x, y, a, b)
% d=slope(x,y, a,b) calcola un'approssimazione delle derivate 
% d(1)=a, d(n)=b;

h=diff(x);
delta=diff(y)./h;

n=length(x);
d=zeros(n, 1); %inzializzo a zero
for k=2:n-1
       if sign(delta(k-1))*sign(delta(k))>0 % i segni sono concordi
           w1=2*h(k)+h(k-1);
           w2=h(k)+2*h(k-1);
           d(k)=(w1+w2)/(w1/delta(k-1)+w2/delta(k));
       end
end

% mancano le derivate in x(0) e x(n)

d(1)=a; d(n)=b;