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 ;
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