butools.map.CanonicalFromMAP2¶
-
butools.map.
CanonicalFromMAP2
()¶ Matlab: [G0, G1] = CanonicalFromMAP2(D0, D1, prec)
Mathematica: {G0, G1} = CanonicalFromMAP2[D0, D1, prec]
Python/Numpy: G0, G1 = CanonicalFromMAP2(D0, D1, prec)
Returns the canonical form of an order-2 Markovian arrival process.
Parameters: D0 : matrix, shape (2,2)
The D0 matrix of the MAP(2)
D1 : matrix, shape (2,2)
The D1 matrix of the MAP(2)
prec : double, optional
Numerical precision to check the input, default value is 1e-14
Returns: G0 : matrix, shape (1,2)
The D0 matrix of the canonical MAP(2)
G1 : matrix, shape (2,2)
The D1 matrix of the canonical MAP(2)
Notes
This procedure calculates 3 marginal moments and the lag-1 autocorrelation of the input and calls ‘MAP2FromMoments’.
Examples
For Matlab:
>>> D0 = [-14., 1.; 1., -25.]; >>> D1 = [6., 7.; 3., 21.]; >>> [H0, H1] = CanonicalFromMAP2(D0, D1); >>> disp(H0); -13.91 9.199 0 -25.09 >>> disp(H1); 4.7108 0 2.801 22.289 >>> Cm = SimilarityMatrix(H0, D0); >>> err1 = norm(H0*Cm-Cm*D0); >>> err2 = norm(H1*Cm-Cm*D1); >>> disp(max(err1, err2)); 2.4485e-13
For Mathematica:
>>> D0 = {{-14., 1.},{1., -25.}}; >>> D1 = {{6., 7.},{3., 21.}}; >>> {H0, H1} = CanonicalFromMAP2[D0, D1]; >>> Print[H0]; {{-13.909830056250456, 9.199027971874015}, {0, -25.090169943749302}} >>> Print[H1]; {{4.710802084376442, 0}, {2.8009720281259014, 22.2891979156234}} >>> Cm = SimilarityMatrix[H0, D0]; >>> err1 = Norm[H0.Cm-Cm.D0]; >>> err2 = Norm[H1.Cm-Cm.D1]; >>> Print[Max[err1, err2]]; 2.39754619495158*^-13
For Python/Numpy:
>>> D0 = ml.matrix([[-14., 1.],[1., -25.]]) >>> D1 = ml.matrix([[6., 7.],[3., 21.]]) >>> H0, H1 = CanonicalFromMAP2(D0, D1) >>> print(H0) [[-13.90983 9.19903] [ 0. -25.09017]] >>> print(H1) [[ 4.7108 0. ] [ 2.80097 22.2892 ]] >>> Cm = SimilarityMatrix(H0, D0) >>> err1 = la.norm(H0*Cm-Cm*D0) >>> err2 = la.norm(H1*Cm-Cm*D1) >>> print(np.max(err1, err2)) 2.21090873503e-13