butools.map.MarginalDistributionFromMRAP

butools.map.MarginalDistributionFromMRAP()
Matlab: [alpha, A] = MarginalDistributionFromMRAP(H, precision)
Mathematica: {alpha, A} = MarginalDistributionFromMRAP[H, precision]
Python/Numpy: alpha, A = MarginalDistributionFromMRAP(H, precision)

Returns the phase type distributed marginal distribution of a marked rational arrival process.

Parameters:

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

The H0...HN matrices of the MRAP

precision : double, optional

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

Returns:

alpha : matrix, shape (1,M)

The initial vector of the matrix exponentially distributed marginal

A : matrix, shape (M,M)

The matrix parameter of the matrix exponentially distributed marginal

Examples

For Matlab:

>>> x = 0.18;
>>> H0 = [-5., 0.1+x, 0.9, 1.; 1., -8., 0.9, 0.1; 0.9, 0.1, -4., 1.; 1., 2., 3., -9.];
>>> H1 = [0.1-x, 0.7, 0.1, 0.1; 0.1, 1., 1.8, 0.1; 0.1, 0.1, 0.1, 0.7; 0.7, 0.1, 0.1, 0.1];
>>> H2 = [0.1, 0.1, 0.1, 1.7; 1.8, 0.1, 1., 0.1; 0.1, 0.1, 0.7, 0.1; 0.1, 1., 0.1, 0.8];
>>> [a, A] = MarginalDistributionFromMRAP({H0, H1, H2});
>>> disp(a);
      0.17159      0.21695      0.27936       0.3321
>>> disp(A);
           -5         0.28          0.9            1
            1           -8          0.9          0.1
          0.9          0.1           -4            1
            1            2            3           -9

For Mathematica:

>>> x = 0.18;
>>> H0 = {{-5., 0.1+x, 0.9, 1.},{1., -8., 0.9, 0.1},{0.9, 0.1, -4., 1.},{1., 2., 3., -9.}};
>>> H1 = {{0.1-x, 0.7, 0.1, 0.1},{0.1, 1., 1.8, 0.1},{0.1, 0.1, 0.1, 0.7},{0.7, 0.1, 0.1, 0.1}};
>>> H2 = {{0.1, 0.1, 0.1, 1.7},{1.8, 0.1, 1., 0.1},{0.1, 0.1, 0.7, 0.1},{0.1, 1., 0.1, 0.8}};
>>> {a, A} = MarginalDistributionFromMRAP[{H0, H1, H2}];
>>> Print[a];
{0.1715935052770479, 0.21694768240956405, 0.27935809825487623, 0.3321007140585118}
>>> Print[A];
{{-5., 0.28, 0.9, 1.},
 {1., -8., 0.9, 0.1},
 {0.9, 0.1, -4., 1.},
 {1., 2., 3., -9.}}

For Python/Numpy:

>>> x = 0.18
>>> H0 = ml.matrix([[-5., 0.1+x, 0.9, 1.],[1., -8., 0.9, 0.1],[0.9, 0.1, -4., 1.],[1., 2., 3., -9.]])
>>> H1 = ml.matrix([[0.1-x, 0.7, 0.1, 0.1],[0.1, 1., 1.8, 0.1],[0.1, 0.1, 0.1, 0.7],[0.7, 0.1, 0.1, 0.1]])
>>> H2 = ml.matrix([[0.1, 0.1, 0.1, 1.7],[1.8, 0.1, 1., 0.1],[0.1, 0.1, 0.7, 0.1],[0.1, 1., 0.1, 0.8]])
>>> a, A = MarginalDistributionFromMRAP([H0, H1, H2])
>>> print(a)
[[ 0.17159  0.21695  0.27936  0.3321 ]]
>>> print(A)
[[-5.    0.28  0.9   1.  ]
 [ 1.   -8.    0.9   0.1 ]
 [ 0.9   0.1  -4.    1.  ]
 [ 1.    2.    3.   -9.  ]]