butools.map.MarginalMomentsFromMMAP

butools.map.MarginalMomentsFromMMAP()
Matlab: moms = MarginalMomentsFromMMAP(D, K, precision)
Mathematica: moms = MarginalMomentsFromMMAP[D, K, precision]
Python/Numpy: moms = MarginalMomentsFromMMAP(D, K, precision)

Returns the moments of the marginal distribution of a marked Markovian arrival process.

Parameters:

D : list/cell of matrices of shape(M,M), length(N)

The D0...DN matrices of the MMAP

K : int, optional

Number of moments to compute. If K=0, 2*M-1 moments are computed. The default value is K=0.

precision : double, optional

Numerical precision for checking if the input is valid. The default value is 1e-14

Returns:

moms : row vector of doubles, length K

The vector of moments.

Examples

For Matlab:

>>> D0 = [-1.78, 0.29; 0.07, -0.92];
>>> D1 = [0.15, 0.49; 0.23, 0.36];
>>> D2 = [0.11, 0.2; 0.01, 0];
>>> D3 = [0.14, 0.4; 0.11, 0.14];
>>> moms = MarginalMomentsFromMMAP({D0, D1, D2, D3});
>>> disp(moms);
       1.0007       2.1045       6.8277

For Mathematica:

>>> D0 = {{-1.78, 0.29},{0.07, -0.92}};
>>> D1 = {{0.15, 0.49},{0.23, 0.36}};
>>> D2 = {{0.11, 0.2},{0.01, 0}};
>>> D3 = {{0.14, 0.4},{0.11, 0.14}};
>>> moms = MarginalMomentsFromMMAP[{D0, D1, D2, D3}];
>>> Print[moms];
{1.000667111407605, 2.1044966311760755, 6.827688149434602}

For Python/Numpy:

>>> D0 = ml.matrix([[-1.78, 0.29],[0.07, -0.92]])
>>> D1 = ml.matrix([[0.15, 0.49],[0.23, 0.36]])
>>> D2 = ml.matrix([[0.11, 0.2],[0.01, 0]])
>>> D3 = ml.matrix([[0.14, 0.4],[0.11, 0.14]])
>>> moms = MarginalMomentsFromMMAP([D0, D1, D2, D3])
>>> print(moms)
[1.0006671114076049, 2.1044966311760755, 6.8276881494346]