Class CTMCKt
-
- All Implemented Interfaces:
public final class CTMCKt
-
-
Method Summary
Modifier and Type Method Description final static Matrixctmc_makeinfgen(Matrix Q)Normalizes a matrix to be a valid infinitesimal generator. final static Matrixctmc_rand(Integer n)Generates a random infinitesimal generator matrix. final static ConnectedComponentsweaklyconncomp(Matrix G)Finds weakly connected components in a directed graph. final static DoubleArrayctmc_solve(Matrix Q)Computes the equilibrium distribution of a continuous-time Markov chain. final static CTMCSolveResultctmc_solveFull(Matrix Q)Computes the equilibrium distribution with full details. final static Matrixctmc_timereverse(Matrix Q)Computes the time-reversed generator of a CTMC. final static Pair<Matrix, Double>ctmc_randomization(Matrix Q, Double q)Applies uniformization (randomization) to transform a CTMC into a DTMC. final static Pair<DoubleArray, Integer>ctmc_uniformization(DoubleArray pi0, Matrix Q, Double t, Double tol, Integer maxiter)Computes transient probabilities using uniformization method. final static DoubleArrayctmc_relsolve(Matrix Q, Integer refstate)Computes the equilibrium distribution relative to a reference state. -
-
Method Detail
-
ctmc_makeinfgen
final static Matrix ctmc_makeinfgen(Matrix Q)
Normalizes a matrix to be a valid infinitesimal generator. Sets diagonal elements such that row sums are zero.
- Parameters:
Q- Input matrix- Returns:
Valid infinitesimal generator matrix where rows sum to zero
-
ctmc_rand
final static Matrix ctmc_rand(Integer n)
Generates a random infinitesimal generator matrix.
- Parameters:
n- Size of the matrix (n x n)- Returns:
Random infinitesimal generator
-
weaklyconncomp
final static ConnectedComponents weaklyconncomp(Matrix G)
Finds weakly connected components in a directed graph.
- Parameters:
G- Adjacency matrix of the graph- Returns:
ConnectedComponents with number of components and component assignment vector
-
ctmc_solve
final static DoubleArray ctmc_solve(Matrix Q)
Computes the equilibrium distribution of a continuous-time Markov chain.
- Parameters:
Q- Infinitesimal generator matrix- Returns:
Equilibrium distribution vector
-
ctmc_solveFull
final static CTMCSolveResult ctmc_solveFull(Matrix Q)
Computes the equilibrium distribution with full details.
- Parameters:
Q- Infinitesimal generator matrix- Returns:
CTMCSolveResult with equilibrium distribution and component info
-
ctmc_timereverse
final static Matrix ctmc_timereverse(Matrix Q)
Computes the time-reversed generator of a CTMC.
- Parameters:
Q- Infinitesimal generator matrix- Returns:
Infinitesimal generator matrix of the time-reversed process
-
ctmc_randomization
final static Pair<Matrix, Double> ctmc_randomization(Matrix Q, Double q)
Applies uniformization (randomization) to transform a CTMC into a DTMC.
- Parameters:
Q- Infinitesimal generator matrixq- Uniformization rate (if null, uses max|diag(Q)| + random)- Returns:
Pair of (uniformized stochastic matrix, uniformization rate)
-
ctmc_uniformization
final static Pair<DoubleArray, Integer> ctmc_uniformization(DoubleArray pi0, Matrix Q, Double t, Double tol, Integer maxiter)
Computes transient probabilities using uniformization method.
- Parameters:
pi0- Initial probability distribution vectorQ- Infinitesimal generator matrixt- Time point for transient analysistol- Error tolerance (default: 1e-12)maxiter- Maximum iterations (default: 100)- Returns:
Pair of (probability distribution at time t, number of iterations)
-
ctmc_relsolve
final static DoubleArray ctmc_relsolve(Matrix Q, Integer refstate)
Computes the equilibrium distribution relative to a reference state. Solves global balance equations with p(refstate) = 1 normalization.
- Parameters:
Q- Infinitesimal generator matrixrefstate- Index of reference state (0-based, default: 0)- Returns:
Relative equilibrium distribution vector
-
-
-
-