function [Lequilibre,Niter] = Pagerank(M,L0,kappa,epsilon,k); 

% [Lequilibre,Niter] = Pagerank(M,L0,kappa,epsilon,k); 
% Calcule de manière approchée la distribution d'équilibre Lequilibre d'un graphe
% orienté de matrice d'adjacence M (l'algorithme de recherche du point fixe
% étant initié à L0. Le nombre kappa correspond au coefficient de stricte
% contraction (kappa=.85 dans Pagerank standard). Le nombre k figure le
% nombre maximal d'itérations autorisées. Le nombre Niter<=k  est le nombre
% d'itérations nécessaires jusqu'à ce que, pour la première fois : 
%                    norm (L_Niter -L_(Niter-1)) <=epsilon. 

[N,N]=size(M); 
G = AdjacencePonderee(M); 
L=L0; 
Niter=0; 
err=2*epsilon; 
while (err>epsilon) && (Niter<k)
    Lold=L; 
    L=((1-kappa)/N)*ones(1,N) + kappa*L*G; 
    err=norm(L-Lold);
    Niter=Niter+1; 
end
Lequilibre=L; 
