function [x,sol]=findif(i,a,b,n);
%
% [x,sol]=findif(i,a,b,n)
% risolve -u''=f, u(a)=esatta(a), u(b)=esatta(b)
% con le differenze finite
% n=numero di intervalli di suddivisione
% i seleziona il dato f
% prerequisito: avere "f" e "esatta"
%
h=(b-a)/n;
A=(diag(2*ones(1,n-1))-diag(ones(1,n-2),-1)-diag(ones(1,n-2),1))/h/h;
x=(a:h:b)';
g=f(i,x(2:n));
sol=zeros(n+1,1);
sol(1)=esatta(i,x(1)); sol(n+1)=esatta(i,x(n+1));
g(1)=g(1)+sol(1)/h/h; g(n-1)=g(n-1)+sol(n+1)/h/h;
sol(2:n)=A\g;
