计算每个时间步的马尔可夫链状态分布
这个例子展示了如何计算和可视化状态重新分布,它显示了确定性状态分布从初始分布开始随时间的演变。
考虑这个理论的,随机过程的右随机转移矩阵。
创建以转换矩阵为特征的马尔可夫链P.
P = [0 0 1/2 1/4 1/4 0 0;0 0 1/3 0 2/3 0 0;0 0 0 0 1/3 2/3;0 0 0 0 0 1/2 /2;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];mc = dtmc(P);
绘制马尔可夫链的有向图,并使用节点颜色和标记标识类。
图;graphplot (mc,“ColorNodes”,真正的);
mc
表示周期为3的单个循环类。
假设初始态分布是均匀的。计算20个时间步的分布演化。
numSteps = 20;X = redistribute(mc,numSteps);
X
是一个21 × 7矩阵。行t包含时间步长的演化状态分布t.
在热图中可视化重新分布。
图;distplot (mc, X);
链的周期性是明显的。
通过将马尔可夫链转化为惰性链来去除其周期性。将惰性链的转换矩阵绘制为热图。
Lc = lazy(mc);图;显示亮度图像(lc.P);colormap (“喷气机”);轴广场;colorbar;标题(“理论惰性链转移矩阵”)
信用证
是一个dtmc
对象。懒惰的
通过增加持久性概率的权重来创建懒惰链,即:懒惰的
执行self-loops。
计算懒链中分布的演化为20个时间步。在热图中绘制再分布图。
X1 = redistribute(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
稳态分布与最终重分布基本一致。