butools.dph.CheckMGRepresentation

butools.dph.CheckMGRepresentation()
Matlab: r = CheckMGRepresentation(alpha, A, prec)
Mathematica: r = CheckMGRepresentation[alpha, A, prec]
Python/Numpy: r = CheckMGRepresentation(alpha, A, prec)

Checks if the given vector and matrix define a valid matrix- geometric representation.

Parameters:

alpha : matrix, shape (1,M)

Initial vector of the matrix-geometric distribution to check

A : matrix, shape (M,M)

Matrix parameter of the matrix-geometric distribution to check

prec : double, optional

Numerical precision. The default value is 1e-14.

Returns:

r : bool

True, if the matrix is a square matrix, the vector and the matrix have the same size, the dominant eigenvalue is positive, less than 1 and real.

Notes

This procedure does not check the positivity of the density! The discrete counterpart of ‘CheckMEPositiveDensity’ does not exist yet (research is needed).

Examples

For Matlab:

>>> a = [-0.6,0.3,1.3];
>>> A = [0.25, 0.2, -0.15; 0.3, 0.1, 0.25; 0, 0.2, 0.47];
>>> flag = CheckMGRepresentation(a, A);
>>> disp(flag);
     1
>>> a = [-0.6,0.3,1.3];
>>> A = [0.35, 0.2, -0.25; 0.3, 0.1, 0.25; 0, 0.2, 0.47];
>>> flag = CheckMGRepresentation(a, A);
CheckMGRepresentation: The largest eigenvalue of the matrix is complex!
>>> disp(flag);
     0

For Mathematica:

>>> a = {-0.6,0.3,1.3};
>>> A = {{0.25, 0.2, -0.15},{0.3, 0.1, 0.25},{0, 0.2, 0.47}};
>>> flag = CheckMGRepresentation[a, A];
>>> Print[flag];
True
>>> a = {-0.6,0.3,1.3};
>>> A = {{0.35, 0.2, -0.25},{0.3, 0.1, 0.25},{0, 0.2, 0.47}};
>>> flag = CheckMGRepresentation[a, A];
"CheckMGRepresentation: The largest eigenvalue of the matrix is complex!"
>>> Print[flag];
False

For Python/Numpy:

>>> a = ml.matrix([[-0.6,0.3,1.3]])
>>> A = ml.matrix([[0.25, 0.2, -0.15],[0.3, 0.1, 0.25],[0, 0.2, 0.47]])
>>> flag = CheckMGRepresentation(a, A)
>>> print(flag)
True
>>> a = ml.matrix([[-0.6,0.3,1.3]])
>>> A = ml.matrix([[0.35, 0.2, -0.25],[0.3, 0.1, 0.25],[0, 0.2, 0.47]])
>>> flag = CheckMGRepresentation(a, A)
CheckMGRepresentation: The largest eigenvalue of the matrix is complex!
>>> print(flag)
False