LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
m3pp2m_fitc.m
1function [mmmpp] = m3pp2m_fitc(a, bt1, bt2, binf, m3t2, t1, t2, ...
2 ai, dvt3, t3)
3% Fits a second-order Marked MMPP.
4% a: arrival rate
5% bt1: IDC at scale t1
6% bt2: IDC at scale t2
7% binf: IDC for t->inf
8% m3t2: third central moment
9% t1: first time scale
10% t2: second time scale
11% ai: i-th element is the rate of class i
12% dvt3: i-th element is the delta of variance of class i and the variance
13% of all other classes combined, at resolution t3
14% t3: third time scale
15
16m = size(ai,1);
17
18[mmpp] = mmpp2_fitc(a, bt1, bt2, binf, m3t2, t1, t2);
19
20if isempty(mmpp)
21 % infeasible
22 mmmpp = {};
23 return;
24end
25
26if size(mmpp{1},1) == 1
27 % degenerate case: marked poisson process
28 mmmpp = cell(1,2+m);
29 mmmpp{1} = mmpp{1};
30 mmmpp{2} = mmpp{2};
31 for i = 1:m
32 mmmpp{2+i} = ai(i);
33 end
34 return;
35end
36
37mmmpp = cell(1,2+m);
38mmmpp{1} = mmpp{1};
39mmmpp{2} = mmpp{2};
40
41l1 = mmpp{2}(1,1);
42l2 = mmpp{2}(2,2);
43r1 = mmpp{1}(1,2);
44r2 = mmpp{1}(2,1);
45q = zeros(2,m);
46for i = 1:(m-1)
47 a_1 = ai(i);
48 dv_1 = dvt3(i);
49 t = t3;
50 q(1,i) = -(dv_1*r1^4 + dv_1*r2^4 - 2*a_1*r1^4*t - 2*a_1*r2^4*t + 4*dv_1*r1*r2^3 + 4*dv_1*r1^3*r2 + l1*r2^4*t + l2*r1^4*t + 6*dv_1*r1^2*r2^2 + 4*a_1*l1*r2^3*t - 4*a_1*l2*r2^3*t - 8*a_1*r1*r2^3*t - 8*a_1*r1^3*r2*t + 3*l1*r1*r2^3*t + l1*r1^3*r2*t + l2*r1*r2^3*t + 3*l2*r1^3*r2*t - 12*a_1*r1^2*r2^2*t + 3*l1*r1^2*r2^2*t + 2*l1^2*r1*r2^2*t + 2*l1^2*r1^2*r2*t + 3*l2*r1^2*r2^2*t + 2*l2^2*r1*r2^2*t + 2*l2^2*r1^2*r2*t - 8*a_1*l1*r2^2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) + 8*a_1*l2*r2^2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 4*l1^2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 4*l2^2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) + 8*a_1*l1*r1*r2^2*t + 4*a_1*l1*r1^2*r2*t - 8*a_1*l2*r1*r2^2*t - 4*a_1*l2*r1^2*r2*t - 4*l1*l2*r1*r2^2*t - 4*l1*l2*r1^2*r2*t - 8*a_1*l1*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) + 8*a_1*l2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) + 8*l1*l2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2))/(4*l1*r2*(r1 + r2)*(2*l1*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 2*l2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - l1*r1*t - l1*r2*t + l2*r1*t + l2*r2*t));
51 q(2,i) = (dv_1*r1^4 + dv_1*r2^4 - 2*a_1*r1^4*t - 2*a_1*r2^4*t + 4*dv_1*r1*r2^3 + 4*dv_1*r1^3*r2 + l1*r2^4*t + l2*r1^4*t + 6*dv_1*r1^2*r2^2 - 4*a_1*l1*r1^3*t + 4*a_1*l2*r1^3*t - 8*a_1*r1*r2^3*t - 8*a_1*r1^3*r2*t + 3*l1*r1*r2^3*t + l1*r1^3*r2*t + l2*r1*r2^3*t + 3*l2*r1^3*r2*t - 12*a_1*r1^2*r2^2*t + 3*l1*r1^2*r2^2*t + 2*l1^2*r1*r2^2*t + 2*l1^2*r1^2*r2*t + 3*l2*r1^2*r2^2*t + 2*l2^2*r1*r2^2*t + 2*l2^2*r1^2*r2*t + 8*a_1*l1*r1^2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 8*a_1*l2*r1^2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 4*l1^2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 4*l2^2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 4*a_1*l1*r1*r2^2*t - 8*a_1*l1*r1^2*r2*t + 4*a_1*l2*r1*r2^2*t + 8*a_1*l2*r1^2*r2*t - 4*l1*l2*r1*r2^2*t - 4*l1*l2*r1^2*r2*t + 8*a_1*l1*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - 8*a_1*l2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) + 8*l1*l2*r1*r2*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2))/(4*(r1 + r2)*(l2^2*r1^2*t - 2*l2^2*r1*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - l1*l2*r1^2*t + l2^2*r1*r2*t + 2*l1*l2*r1*sinh((r1*t)/2 + (r2*t)/2)*exp(- (r1*t)/2 - (r2*t)/2) - l1*l2*r1*r2*t));
52end
53
54for i = 1:(m-1)
55 mmmpp{2+i} = diag([q(1,i) q(2,i)]) .* mmpp{2};
56end
57mmmpp{2+m} = diag([1-sum(q(1,:)) 1-sum(q(2,:))]) .* mmpp{2};