1function
MMAP = mamap22_fit_gamma_fs(M1, M2, M3, GAMMA,
P, F, S)
2% Performs approximate fitting of a
MMAP given the underlying MAP,
3% the
class probabilities (always fitted exactly), the forward moments,
4% and the one-step
class transition probabilities.
6% - M1,M2,M3: moments of the inter-arrival times
7% - GAMMA:
auto-correlation decay rate of the inter-arrival times
8% -
P:
class probabilities
9% - F: first-order forward moments
10% - S: one-step
class transition probabilities
12% - mmap: fitted MAMAP[2]
18% fit underlying AMAP(2)
19[~,MAPS] = amap2_fit_gamma(M1, M2, M3, GAMMA);
21% If Poisson (1 state), try to convert to second-order process
22% with constraint (h2 - h1*r2 = 0) for forward moment fitting
23if length(MAPS) == 1 && size(MAPS{1}{1},1) == 1
24 M2a = M2 * (1 + 1e-4);
25 M3a = M3 * (M2a/M2)^(3/2);
26 MAPS2 = amap2_fitall_gamma(M1, M2a, M3a, GAMMA);
28 for j = 1:length(MAPS2)
29 MAPS2{j} = map_normalize(MAPS2{j});
39 MMAP{2+c} = MMAP{2} .* P(c);
45% fit the MAMAP(2,m) using the underlying AMAP(2) form which produces the
47MMAPS = cell(1,length(MAPS));
48ERRORS = zeros(1,length(MAPS));
50 [MMAPS{j},fF,fS] = mamap22_fit_fs_multiclass(MAPS{j}, P, F, S);
51 ERRORS(j) = sum((fF(1)./F(1) - 1).^2) + sum((fS(1,1)./S(1,1) - 1).^2);
53[~,BEST] = min(ERRORS);