clear
n=20;
h=rand(n-1,1)+0.01;
h=h/sum(h)
for i=1:n-1
   x(1)=0; 
   x(i+1)=x(i)+h(i);
end
v=sin(pi*x);
plot(x,v,'go-')

hold on

A(1:n-2,1:n-2)=0;
for i=1:n-2
for j=1:n-2
if i==j
A(i,j)=2;
elseif i==j+1
A(i,j)=-1;
elseif i==j-1
A(i,j)=-1;
else
A(i,j)=0;
end
end
end
A=A*1/h

for i=1:n-2
B(i)=sin(pi*x(i))*h(i)*(1/2)+sin(pi*x(i+1))*h(i)*(1/2)+sin(pi*x(i+1))*h(i+1)*(1/2)+sin(pi*x(i+2))*h(i+1)*(1/2);
end
B=pi^2*s*1/2

u=inv(A)*B';
w=[0 u' 0];
plot(x,w,'r*')