function[a,ENS,ENR,EN,lambdaR,kappa]=uzavreny(lambda,mi,n,m);
% [a,ENS,ENR,EN,lambdaR,kappa]=uzavreny(lambda,mi,n,m)
%
% Vypočítá stacionární rozložení, využití a charakteristiky uzavřeného systému 
% hromadné obsluhy s omezenou kapacitou M|M|n|m|FIFO.
%
% Vstupní parametry:
% lambda .... parametr vstupního proudu
% mi ........ parametr obsluhy
% n ......... počet linek obsluhy
% m ......... kapacita systému
%
% Výstupní parametry:
% a ......... stacionární rozložení
% ENS ....... střední hodnota počtu obsluhovaných zákazníků
% ENR ....... střední hodnota počtu zákazníků mimo systém
% EN ........ střední hodnota počtu zákazníků v systému
% lambdaR ... střední hodnota počtu zákazníků přicházejících za jednotku času
%             (intenzita vstupního proudu zákazníků)
% kappa ..... využití systému

beta=lambda/mi;
ro=beta/n;
for k=2:m+1
  if k<=n+1
    x(k)=nchoosek(m,k-1)*beta^(k-1);
  else
    x(k)=n^n/factorial(n)*factorial(m)/factorial(m-k+1)*ro^(k-1);
  end;
end;
a(1)=1/(1+sum(x));
for k=2:m+1
  a(k)=x(k)*a(1);
end;
ENS=sum((0:n-1).*a(1:n))+n*sum(a(n+1:m+1));
EN=sum((0:m).*a);
ENR=m-EN;
lambdaR=lambda*ENR;
kappa=ro*ENR;