1%{ @file ctmc_uniformization.m
2 % @brief Computes transient probabilities
using uniformization
4 % @author LINE Development Team
8 % @brief Computes transient probabilities
using uniformization
11 % Applies the uniformization method to compute transient state probabilities.
15 % [pi, kmax] = ctmc_uniformization(pi0, Q, t)
16 % [pi, kmax] = ctmc_uniformization(pi0, Q, t, tol, maxiter)
21 % <tr><th>Name<th>Description
22 % <tr><td>pi0<td>Initial probability distribution vector
23 % <tr><td>Q<td>Infinitesimal generator matrix
24 % <tr><td>t<td>Time point
for transient analysis
25 % <tr><td>tol<td>(Optional) Error tolerance. Default: 1e-12
26 % <tr><td>maxiter<td>(Optional) Maximum number of iterations. Default: 100
31 % <tr><th>Name<th>Description
32 % <tr><td>pi<td>Probability distribution vector at time t
33 % <tr><td>kmax<td>Number of iterations performed
36function [pi,kmax]=ctmc_uniformization(pi0,Q,t,tol,maxiter)
40if ~exist(
'maxiter',
'var')
43q=1.1*max(abs(diag(Q)));
44Qs=speye(size(Q))+sparse(Q)/q;
55 if (1-exp(-q*t)*s)<=tol