嗨,我正在尝试生成一个转移概率矩阵的稳态概率。下面是我正在使用的代码:
import numpy as np
one_step_transition = np.array([[0.125 , 0.42857143, 0.75 ],
[0.75 , 0.14285714, 0.25 ],
[0.125 , 0.42857143, 0. ]])
def steady_state_prop(p):
dim = p.shape[0]
q = (p-np.eye(dim))
ones = np.ones(dim)
q = np.c_[q,ones]
QTQ = np.dot(q, q.T)
bQT = np.ones(dim)
return np.linalg.solve(QTQ,bQT)
steady_state_matrix = steady_state_prop(one_step_transition.transpose())
print (steady_state_matrix)
# result is :
# array([0.38268793, 0.39863326, 0.21867882])
# Expected Result = (0.4,0.4,0.2)
我的问题是,为什么结果与确切答案略有不同?
2条答案
按热度按时间lndjwyie1#
预期结果是错误的。对于稳态,转移矩阵与稳态的乘积必须再次为稳态。
输出为
所以你的函数看起来是正确的,你期望的结果却不是。
w1e3prcc2#
我曾用一种不同的方法来解决这个问题:
结果和你的一样,我认为你的预期结果在某种程度上是错误的,或者它们是近似版本。