function[a,PZ,PQ,lambdaP,lambdaZ,kappa,ENS,ENQ,EN,EWS,EWQ,EW]=odmitani(lambda,mi,n,m);
% [a,PZ,PQ,lambdaP,lambdaZ,kappa,ENS,ENQ,EN,EWS,EWQ,EW]=odmitani(lambda,mi,n,m)
%
% Vypočítá stacionární rozložení, využití a charakteristiky systému 
% hromadné obsluhy s omezenou kapacitou M|M|n|m|FIFO s odmítáním.
%
% 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í
% PZ ........ pst, že příchozí zákazník bude odmítnut
% PQ ........ pst, že příchozí zákazník bude čekat ve frontě
% lambdaP ... střední hodnota počtu přijatých zákazníků za jednotku času
% lambdaZ ... střední hodnota počtu odmítnutých zákazníků za jednotku času
% ENS ....... střední hodnota počtu obsluhovaných zákazníků
% ENQ ....... střední hodnota počtu zákazníků ve frontě
% EN ........ střední hodnota počtu zákazníků v systému
% EWS ....... střední hodnota doby, kterou zákazník stráví obsluhou
% EWQ ....... střední hodnota doby, kterou zákazník stráví ve frontě
% EW ........ střední hodnota doby, kterou zákazník stráví v systému

beta=lambda/mi;
ro=beta/n;
a(1)=inv(sum(beta.^(0:n-1)./factorial(0:n-1))+n^n/factorial(n)*sum(ro.^(n:m)));
a(2:n+1)=(beta.^(1:n)./factorial(1:n))*a(1);
a(n+2:m+1)=(n^n/factorial(n))*ro.^(n+1:m)*a(1);
PZ=a(m+1);
if ro==1
  PQ=a(n+1)*(m-n);
else
  PQ=a(n+1)*(1-ro^(m-n))/(1-ro);
end;
lambdaP=lambda*(1-PZ);
lambdaZ=lambda*PZ;
kappa=ro*(1-PZ);
ENS=beta*(1-PZ);
ENQ=sum(((n+1:m)-n).*a(n+2:m+1));
EN=ENQ+ENS;
EW=EN/lambda;
EWS=ENS/lambda;
EWQ=ENQ/lambda;