%
% chiama il programma p1p0 p2p0, p1p1vero (senza condizioni al bordo),
% p1p1 (con condizioni al bordo) e disegna il grafico della soluzione
%
a=0; b=1;
k=10; % punti con cui si ricostruiscono le bolle
icase=input('p1p0 (0), p2p0 (1), p1p1vero (2) o p1p1 (3) ? ');
n=input('Numero di suddivisioni n? ');
h=(b-a)/n;
fig=input('Numero figura? ');
figure(fig)
set(fig,'position',[407 12 612 684])
clf
%
if icase==0
  [x,s,u]=p1p0(a,b,n);
elseif icase==1
  [x,s,u]=p2p0(a,b,n);
elseif icase==2
  [x,s,u]=p1p1vero(a,b,n);
elseif icase==3
  [x,s,u]=p1p1(a,b,n);
end
%
set(fig,'defaultlinelinewidth',2)
subplot(2,1,1)
fplot('esatta(1,x)',[0 1],'r')
hold on;
if icase==1
  for i=1:n
    for j=1:k
      xx=linspace(0,h,k);
      plot([x(i)+xx],[s(n+1+i)*4/h^2*xx.*(h-xx)+...
           (s(i)+(s(i+1)-s(i))/h*xx)])
      end
  end
elseif icase==0 | icase==2 | icase==3
  plot(x,s(1:n+1),'*--')
end
title('La derivata della soluzione','fontsize',15,'color','r')
%
subplot(2,1,2)
fplot('esatta(0,x)',[0 1],'r')
hold on;
if icase==0 | icase==1
  for i=1:n
    plot([x(i) x(i+1)],[u(i) u(i)])
  end
elseif icase==2 | icase==3
  plot(x,u,'*--')
end
title('La soluzione','fontsize',15,'color','r')
