计算马尔可夫链在每个时间步长的状态分布

这个例子展示了如何计算和可视化状态重新分布,它显示了确定性状态分布随时间从初始分布的演变。

考虑这个理论的,随机过程的右随机转移矩阵。

P = ( 0 0 1 / 2 1 / 4 1 / 4 0 0 0 0 1 / 3. 0 2 / 3. 0 0 0 0 0 0 0 1 / 3. 2 / 3. 0 0 0 0 0 1 / 2 1 / 2 0 0 0 0 0 3. / 4 1 / 4 1 / 2 1 / 2 0 0 0 0 0 1 / 4 3. / 4 0 0 0 0 0 ]

建立由转移矩阵表征的马尔可夫链P

P = [0 0 1/2 1/4 1/4 0 0;0 0 1/3 0 2/3 0 0;0 0 0 1/3 /3;0 0 0 0 1/2 1/2;0 0 0 0 3/4 1/4;1/2 0 0 0 0 0 0;1/4 3/4 0 0 0 0 0 0];mc = dtmc (P);

绘制马尔科夫链的有向图,并使用节点颜色和标记识别类。

图;graphplot (mc,“ColorNodes”,真正的);

mc表示周期为3的单个循环类。

假设初始状态分布是均匀的。计算20个时间步的分布演化。

numSteps = 20;X =重新分配(mc, numSteps);

X是一个21×7矩阵。行t包含在时间步长的演化状态分布t

在热图中可视化重新分布。

图;distplot (mc, X);

链的周期性是显而易见的。

通过将马尔可夫链转换为惰性链来消除马尔可夫链的周期性。将惰性链的转移矩阵绘制为热图。

lc =懒惰(mc);图;显示亮度图像(lc.P);colormap (“喷气机”);轴广场;colorbar;标题(“理论惰链转移矩阵”)

信用证是一个dtmc对象。懒惰的通过给持久性的概率增加权重来创建惰性链,即,懒惰的执行self-loops。

计算20个时间步的惰链分布演化。在热图中绘制重新分布。

X1 =重新分配(lc, numSteps);图;distplot (lc, X1);

将状态分布的演变视为动态直方图。指定帧速率为1秒。

图;distplot (lc, X1,“类型”,“直方图”,的帧速率, 1)

计算惰链的平稳分布。将它与动画直方图中的最终再分配进行比较。

xFix =渐近(lc)
xFix =1×70.1300 0.2034 0.1328 0.0325 0.1681 0.1866 0.1468

平稳分布和最终再分布几乎相同。

另请参阅

对象

功能

相关的话题