已知转移概率矩阵与初始分布,如何求平稳概率分布及确定状态概率稳定步数
求解马尔可夫链的平稳概率分布及收敛步数
一、怎么求平稳概率分布?
首先得明确,马尔可夫链的平稳分布是一个行向量π,满足两个核心条件:
- 用这个分布乘以转移矩阵P之后,结果还是它自己:
πP = π(也就是说转移后概率分布不变) - 所有元素的和为1:
π₁ + π₂ + π₃ = 1(概率的基本要求)
咱们先把给定的转移矩阵和变量写清楚:
转移矩阵P:
P = [ [0.35, 0.3, 0.35], # 状态1到各状态的概率 [0.3, 0.25, 0.45], # 状态2到各状态的概率 [0.35, 0.3, 0.35] # 状态3到各状态的概率 ]
设平稳分布π = [a, b, c],代入πP = π展开得到方程组:
- (0.35a + 0.3b + 0.35c = a) → 整理成:(-0.65a + 0.3b + 0.35c = 0)
- (0.3a + 0.25b + 0.3c = b) → 整理成:(0.3a - 0.75b + 0.3c = 0)
- 归一化条件:(a + b + c = 1)
接下来解这个方程组:
从第二个方程可以推出 (b = \frac{2(a + c)}{5}),把它代入第一个方程,能得到 (47c = 53a)(也就是(a = \frac{47}{53}c))。再把这两个关系代入归一化条件,就能算出:
- (a = \frac{47}{140} ≈ 0.335714)
- (b = \frac{2}{7} ≈ 0.285714)
- (c = \frac{53}{140} ≈ 0.378571)
所以最终的平稳分布是:(\pi ≈ [0.3357, 0.2857, 0.3786])
二、什么时候状态概率不再变化?
这里咱们需要从初始分布π⁰ = [0.1, 0.6, 0.3]开始,一步步用当前分布乘以P,计算每一步的新分布,直到前后两次的分布差异小到可以忽略(比如小于(10^{-6}))。
咱们来手动算几步看看:
- 第0步(初始):(\pi^0 = [0.1, 0.6, 0.3])
- 第1步:(\pi^1 = \pi^0 \times P = [0.32, 0.27, 0.41])
- 第2步:(\pi^2 = \pi^1 \times P = [0.3365, 0.2865, 0.377])
- 第3步:(\pi^3 = \pi^2 \times P = [0.335675, 0.285675, 0.37865])
- 第4步:(\pi^4 = \pi^3 \times P = [0.33571625, 0.28571625, 0.3785675])
- 第5步:(\pi^5 ≈ [0.335714, 0.285714, 0.378572])
对比第5步的分布和平稳分布,每个元素的误差都小于(10^{-6}),在实际应用中完全可以认为此时状态概率已经不再发生显著变化。如果追求理论上的完全相等,由于浮点数迭代的特性,需要无限步,但第5步之后的分布已经足够接近平稳分布,收敛完成。
内容的提问来源于stack exchange,提问作者Настя Грант
相关产品推荐
相关产品推荐

