LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
pfqn_mmint2.m
1%{
2%{
3 % @file pfqn_mmint2.m
4 % @brief McKenna-Mitra integral form for repairman models using MATLAB integral.
5%}
6%}
7
8%{
9%{
10 % @brief McKenna-Mitra integral form for repairman models using MATLAB integral.
11 % @fn pfqn_mmint2(L, N, Z)
12 % @param L Service demand vector.
13 % @param N Population vector.
14 % @param Z Think time vector.
15 % @return G Normalizing constant.
16 % @return lG Logarithm of normalizing constant.
17%}
18%}
19function [G,lG]= pfqn_mmint2(L,N,Z)
20% [G,LOGG] = PFQN_MMINT2(L,N,Z)
21
22nnzClasses = find(N);
23% repairmen integration
24order = 12;
25f= @(u) (exp(-u').*prod((Z(nnzClasses)+L(nnzClasses).*repmat(u(:),1,length(nnzClasses))).^N(nnzClasses),2))';
26
27p = 1-10^-order;
28exp1prctile = -log(1-p)/1; % cutoff for exponential term
29w = warning ;
30warning off;
31lG = log(integral(f,0,exp1prctile,'AbsTol',10^-order)) - sum(factln(N));
32G = exp(lG);
33warning(w);
34end