function [v,iter,stimaerrore] = invariantPotenze(P,tol,maxit)
%
% [v,iter,stimaerrore] = invariantPotenze(P,tol,maxit)
%
% Calcola la probabilita' invariante mediante il metodo delle potenze
% (dunque calcola la probabilita' limite)
if (length(P) == 1)
  v = 1;
  iter = 0;
  stimaerrore = 0;
  return
end
v0 = rand(1,length(P));
%v0 = ones(1,length(P))/length(P);
v0 = v0/sum(v0);
iter = 0;
stimaerrore = tol+1;
while ((stimaerrore > tol) && (iter < maxit))
  v = v0*P;
  iter = iter+1;
  stimaerrore = norm(v-v0,1);
  v0 = v;
end
if (stimaerrore > tol)
  warning('Impossibile raggiungere la tolleranza richiesta')
  warning('entro il numero massimo di iterazioni consentito.')
end
