LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
dtmc_uniformization.m
1%{ @file dtmc_uniformization.m
2 % @brief Computes transient probabilities for a DTMC using uniformization
3 %
4 % @author LINE Development Team
5%}
6
7%{
8 % @brief Computes transient probabilities for a DTMC using uniformization
9 %
10 % @details
11 % Applies the uniformization method to compute transient state probabilities for a DTMC.
12 %
13 % @par Syntax:
14 % @code
15 % [pi, kmax] = dtmc_uniformization(pi0, P)
16 % [pi, kmax] = dtmc_uniformization(pi0, P, t, tol, maxiter)
17 % @endcode
18 %
19 % @par Parameters:
20 % <table>
21 % <tr><th>Name<th>Description
22 % <tr><td>pi0<td>Initial probability distribution vector
23 % <tr><td>P<td>Transition probability matrix
24 % <tr><td>t<td>(Optional) Time point for transient analysis. Default: 1e4
25 % <tr><td>tol<td>(Optional) Error tolerance. Default: 1e-12
26 % <tr><td>maxiter<td>(Optional) Maximum number of iterations. Default: 100
27 % </table>
28 %
29 % @par Returns:
30 % <table>
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
34 % </table>
35%}
36function [pi,kmax]=dtmc_uniformization(pi0,P,t,tol,maxiter)
37if ~exist('t','var')
38 t = 1e4;
39end
40if ~exist('tol','var')
41 tol = 1e-12;
42end
43if ~exist('maxiter','var')
44 maxiter = 100;
45end
46[pi,kmax] = ctmc_uniformization(pi0,ctmc_makeinfgen(P),t,tol,maxiter);
47end