clc;
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);
A=zeros(n-2);
for i=1:n-2
    for j=1:n-2
        if i==j
           A(i,j)=(1/h(i))+(1/h(i+1));
        elseif (i-j)==1
           A(i,j)=-(1/h(i));
        elseif (j-i)==1
           A(i,j)=-(1/h(j));
        end
    end
end
A
S=zeros(n-2,1);
for j=1:n-2
    S(j,1)=(pi^2)*sin(pi*x(j+1))*(x(j+2)-x(j))/2;
end
u=[0 ; (inv(A)*S) ; 0]'
plot(x,u,'bo',x,v,'k-')