Matrix 求解方程组求马尔可夫链的期望停留时间

Matrix 求解方程组求马尔可夫链的期望停留时间,matrix,markov-chains,Matrix,Markov Chains,我被告知,为了计算一组状态的预期停留时间,我可以使用以下方法: 构造一个马尔可夫链,指数i,j是从状态i过渡到状态j的概率 转置矩阵,使每列包含该状态的入站概率 反转对角线,使值p变为(1-p) 在底部添加一行,其中包含1 用0和最后一个元素1构造一个系数向量 解决它。结果向量应包含各种状态的预期停留时间 让我举一个例子: 我有初始马尔可夫链: 0.25 ; 0.25 ; 0.25 ; 0.25 0.00 ; 0.50 ; 0.50 ; 0.00 0.33 ;

我被告知,为了计算一组状态的预期停留时间,我可以使用以下方法:

  • 构造一个马尔可夫链,指数i,j是从状态i过渡到状态j的概率
  • 转置矩阵,使每列包含该状态的入站概率
  • 反转对角线,使值p变为(1-p)
  • 在底部添加一行,其中包含1
  • 用0和最后一个元素1构造一个系数向量
  • 解决它。结果向量应包含各种状态的预期停留时间
  • 让我举一个例子:

    我有初始马尔可夫链:

      0.25  ;  0.25  ;  0.25  ; 0.25
      0.00  ;  0.50  ;  0.50  ; 0.00
      0.33  ;  0.33  ;  0.33  ; 0.00
      0.00  ;  0.00  ;  0.50  ; 0.50 
    
    在步骤1-3之后,看起来是这样的:

      0.75  ;  0.00  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.67  ;  0.50
      0.25  ;  0.00  ;  0.00  ;  0.50
    
    我添加最后一行:

      0.75  ;  0.00  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.33  ;  0.00
      0.25  ;  0.50  ;  0.67  ;  0.50
      0.25  ;  0.00  ;  0.00  ;  0.50
      1.00  ;  1.00  ;  1.00  ;  1.00
    
    系数将为以下向量:

       0    ;    0   ;   0    ;   0   ;   1
    
    添加的1行应强制执行,即解决方案的总和为1。但是,我的解决方案是:

      {0.42; 0.84; -0.79; 0.32}
    
    加起来是0.79,很明显有些地方出了问题。 我还注意到,第3状态的预期停留时间为负值,我认为这是不可能的

    我用Java实现了它,并使用Commons.Math来处理矩阵计算。我尝试了中描述的各种算法,但得到了相同的结果

    我还尝试用1的行替换其中一行,以使矩阵为正方形。当我这样做时,我会得到以下一组解决方案:

      {0.79; 0.79; -1.79; 1.2}
    
    即使概率总和为1,它们也一定是错误的,因为它们应该在0..1和总和为1的范围内

    这是一种完全错误的解决问题的方法吗?我在哪下车? 不幸的是,我不太懂数学,但我希望我已经提供了足够的信息让您了解这个问题。

    我找到了答案:

    在步骤3中,让所有概率p(对角线除外)为-p:

    0.75  ;  -0.00  ;  -0.33  ;  -0.00
    -0.25  ;  0.50  ;  -0.33  ;  -0.00
    -0.25  ;  -0.50  ;  0.67  ;  -0.50
    -0.25  ;  -0.00  ;  -0.00  ;  0.50