4 % @brief Knessl-Tier asymptotic expansion
for normalizing constant.
10 % @brief Knessl-Tier asymptotic expansion
for normalizing constant.
11 % @fn pfqn_kt(L, N, Z)
12 % @param L Service demand matrix.
13 % @param N Population vector.
14 % @param Z Think time vector (
default: zeros).
15 % @return G Normalizing constant.
16 % @return lG Logarithm of normalizing constant.
17 % @return X System throughput.
18 % @return Q Mean queue lengths.
21function [G,lG,X,Q]=pfqn_kt(L,N,Z)
22% Knessl-Tier asymptotic expansion
23if isempty(L) || isempty(N) || sum(N)==0
30[Morig,Rorig] = size(L);
31% fix self-looping customers as they would yield Uk=1
35 isslc =
false(1,Rorig);
40 L = [L; repmat(L(ist,:),N(r),1)];
42 slcdemandfactor = N(r)*log(L(ist,r));
58 [X,Q] = pfqn_bs(L,N,Z);
60 [X,Q] = pfqn_aql(L,N,Z);
68 SK = SK + X(s)*X(r)*L(k,s)*L(k,r)/max(GlobalConstants.FineTol,1-sum(X(:)
'*L(k,:)'))^2;
70 C(s,r) = delta(s,r)*beta(s) + (1/Ntot) * SK;
75 Den = Den * max(GlobalConstants.FineTol, 1-sum(X(:)
'*L(k,:)'));
77%G=(2*pi).^(-R/2)/sqrt(Ntot^R*det(C))*exp(-Ntot*beta*log(X)
')/Den;
78lG = log((2*pi).^(-R/2)/sqrt(Ntot^R*det(C))) + (-Ntot*beta*log(X)') - log(Den) + slcdemandfactor;