disp(' '), disp('question 1)b)')
n=100;
U=zeros(n,n);
for i=1:n, for j=1:n, U(i,j)=sin(i)*sin(j); end; end;
for i=1:n, U(i,i)=n; end;
if min(eig(U))>0
      fprintf(' \nLa matrice symétrique U est définie positive.\n\n')
   else
      fprintf(' \nLa matrice symétrique U n''est pas définie positive.')
end
B=ones(n,1);

[sol_gpc,nb_iter_gpc]=gpc(U,B,0.01,zeros(n,1),1000,0.001);
fprintf('La solution de UX=B  est obtenue pour alpha=0,01\n')
fprintf('par gpc au bout de %d itérations avec une erreur de %.1e.\n\n'...
,nb_iter_gpc,norm(sol_gpc-U\B))

X=[];
for alpha=0:0.5E-3:14E-3;
[sol_gpc,nb_iter_gpc]=gpc(U,B,alpha,zeros(n,1),100,0.001);
X=[X,[alpha;nb_iter_gpc]];
end;

plot(X(1,2:end),X(2,2:end));
title('Recherche du alpha optimal pour gpc relatif à U')
xlabel('valeurs de \alpha'), ylabel('nombre d''itérations')
alphaoptimal=2/(min(eig(U))+max(eig(U)));
fprintf('Le alpha qui donne la convergence la plus rapide pour gpc\n')
fprintf('relativement à U est : alphaoptimal = %.5f.\n\n',alphaoptimal)