butools.mc.CRPSolve¶
-
butools.mc.
CRPSolve
()¶ Matlab: pi = CRPSolve(Q)
Mathematica: pi = CRPSolve[Q]
Python/Numpy: pi = CRPSolve(Q)
Computes the stationary solution of a continuous time rational process (CRP).
Parameters: Q : matrix, shape (M,M)
The generator matrix of the rational process
Returns: pi : row vector, shape (1,M)
The vector that satisfies \(\pi\, Q = 0, \sum_i \pi_i=1\)
Notes
Continuous time rational processes are like continuous time Markov chains, but the generator does not have to pass the
CheckGenerator
test (but the rowsums still have to be zeros).Examples
For Matlab:
>>> Q = [-4.3, 3.5, 0.8; -8.4, 6.5, 1.9; 17.3, -12.7, -4.6]; >>> ret = CRPSolve(Q); >>> disp(ret); -3.5617 3.6667 0.89506 >>> disp(ret*Q); 3.5527e-15 -1.7764e-15 0
For Mathematica:
>>> Q = {{-4.3, 3.5, 0.8},{-8.4, 6.5, 1.9},{17.3, -12.7, -4.6}}; >>> ret = CRPSolve[Q]; >>> Print[ret]; {-3.5617283950617336, 3.66666666666667, 0.8950617283950623} >>> Print[ret.Q]; {1.7763568394002505*^-15, 0., 0.}
For Python/Numpy:
>>> Q = ml.matrix([[-4.3, 3.5, 0.8],[-8.4, 6.5, 1.9],[17.3, -12.7, -4.6]]) >>> ret = CRPSolve(Q) >>> print(ret) [[-3.56173 3.66667 0.89506]] >>> print(ret*Q) [[ 1.77636e-15 0.00000e+00 0.00000e+00]]