function[a,ENS,ENR,EN,lambdaR,kappa]=uzavreny(lambda,mi,n,m);
% [a,ENS,ENR,EN,lambdaR,kappa]=uzavreny(lambda,mi,n,m)
%
% Vypocita stacionarni rozlozeni, vyuziti a charakteristiky uzavreneho systemu 
% hromadne obsluhy s omezenou kapacitou M|M|n|m|FIFO.
%
% Vstupni parametry:
% lambda .... parametr vstupniho proudu
% mi ........ parametr obsluhy
% n ......... pocet linek obsluhy
% m ......... kapacita systemu
%
% Vystupni parametry:
% a ......... stacionarni rozlozeni
% ENS ....... stredni hodnota poctu obsluhovanych zakazniku
% ENR ....... stredni hodnota poctu zakazniku mimo system
% EN ........ stredni hodnota poctu zakazniku v systemu
% lambdaR ... stredni hodnota poctu zakazniku prichazejicich za jednotku casu
% kappa ..... vyuziti systemu

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;