function [VP,Niter,errY]=AppVPdom1(A,X,Y,epsilon,k); 

% [VP,Niter,errY] = AppVPdom1(A,X,Y,epsilon,k); 
%Calcule le vecteur propre approchant un vecteur propre associé au rayon
%spectral r d'une matrice A de taille (N,N) (correspondant à une valeur
%propre réelle). L'algorithme est initié au vecteur X (de taille (N,1)). Le
%nombre d'itérations autorisées est k. La sortie Niter correspond au nombre
%d'itérations nécessaires avant que : 
% min(norm(VP(p+1)-VP(p)),norm(VP(p+1)+VP(p))) <=epsilon.
%La liste errY figure la liste des erreurs :
% min(norm(VP(k)-Y),norm(VP(k)+Y)), k=1,...,Niter. 

VP=X/norm(X);  
err=2*epsilon; 
Niter=0; 
errY=[]; %ligne ajoutee (cf. AppVPdom)
while (err>epsilon) && (Niter<k) 
    VPold=VP; 
    y=A*VPold;
    r=norm(y);
    VP=y/r; 
    err=min(norm(VP-VPold),norm(VP+VPold)); 
    errY=[errY,min(norm(VP-Y),norm(VP+Y))]; %ligne ajoutee (cf. AppVPdom) 
    Niter=Niter+1; 
end 