📄 engset.m
字号:
%% E=engset(m,n,rho)%% This function computes the Engset blocking probability for a system with% a finite population m of customers, n servers, no waiting line,% exponentially distributed service times with parameter mu, and % exponentially distributed times between service requests with% parameter lambda. The intensity parameter is rho=lambda/mu. %% The probability is %% E=nchoosek(m,n)*rho^n/sum(nchoosek(m,k)*rho^k,k=0..n)%% Note that if m<=n, then the blocking probability is 0.%% We use a recurrence relation which is more accurate than direct evaluation % of the above formula. This recurrence relation is a "folk% theorem". The author would appreciate a reference to its first% publication.%% The recurrence is%% E(m,0,rho)=1;%% E(m,n,rho)=(rho*(m-n+1)*E(m,n-1,rho))/(n+rho*(m-n+1)*E(m,n-1,rho)) (n>0)%function E=engset(m,n,rho)%% Sanity check- make sure that m and n are positive integers.% if ((floor(m) ~= m) || (m < 1)) warning('m is not a positive integer'); E=NaN; return end if ((floor(n) ~= n) || (n < 0)) warning('n is not a nonnegative integer'); E=NaN; return end%% Sanity check- make sure that rho >= 0.0.% if (rho < 0.0) warning('rho is negative!'); E=NaN; return end;%% Special case. If we have fewer customers than servers, than the% blocking probability is 0.% if (m<=n) E=0; return end%%% Start the recursion with B=1.%E=1;%% Run the recursion.%for k=1:n, E=(rho*(m-k+1)*E)/(k+rho*(m-k+1)*E);end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -