//Méthode du gradient à pas variable
function [X,n]=gpv(A,B,X0,nmax,tol)
X=X0; R=B-A*X;
for n=0:nmax
if (norm(R)<=tol), break, end
AR=A*R; //on va calculer un produit de matrices en moins
alpha=(R'*R)/(AR'*R);
X=X+alpha*R;
R=R-alpha*AR; //on a moins d'opérations qu'avec "R=B-A*X"
end
endfunction