LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
dmap_exp_mul_int.m
1function d = dmap_exp_mul_int(DMAPA,DMAPB,L,alA,alB)
2% d=dmap_exp_mul_int(DMAPA,DMAPB,L,alA,alB) - Joint PMF inner product
3% of two discrete-time MAPs via recursive discrete Lyapunov equations.
4%
5% Reference (continuous-time formulation):
6% G. Horvath, "Measuring the distance between MAPs and some
7% applications," in Proc. ASMTA 2015, LNCS 9081, pp. 95-109.
8% https://link.springer.com/chapter/10.1007/978-3-319-18579-8_8
9%
10% Discrete-time extension by QORE Lab (https://qore.doc.ic.ac.uk/)
11%
12% Input:
13% DMAPA: first D-MAP in the form of {D0,D1}
14% DMAPB: second D-MAP in the form of {D0,D1}
15% L: number of inter-arrival times in the joint PMF
16% alA,alB: (optional) stationary vectors at arrival epochs
17%
18% Output:
19% d: inner product of joint PMFs
20
21D0A=DMAPA{1}; D1A=DMAPA{2};
22D0B=DMAPB{1}; D1B=DMAPB{2};
23NA = size(D0A,1); NB = size(D0B,1);
24if nargin<5
25 alB = dtmc_solve(inv(eye(NB)-D0B)*D1B);
26end
27if nargin<4
28 alA = dtmc_solve(inv(eye(NA)-D0A)*D1A);
29end
30Z = dlyap(D0B', D0A, alB'*alA);
31for i=1:L-1
32 Z = dlyap(D0B', D0A, D1B'*Z*D1A);
33end
34dA = sum(eye(NA)-D0A, 2);
35dB = sum(eye(NB)-D0B, 2);
36d = dB' * Z * dA;
37end