时间是连续的时间。我有一个 3D 状态空间,以及所有这些的转换率。
使用转换率,我可以计算与马尔科夫过程相关的生成矩阵。A我A满足对生成器矩阵的所有要求:
A_ii < 0对于所有 i和A_ij >=0j- 此外,行总和为零。
我想计算由下式g给出的隐含平稳分布
dot(A.T, g) = z
sum(g) = 1
其中z是一个零向量。为了确保第二个条件,我设置z_i = 1了一些i, A_ii = 1,A_ij = 0全部j != i。
现在,我的问题是我并不总是能 invert A,尽管它满足了生成矩阵的所有条件。Python只是给了我
scipy.sparse.linalg.dsolve.linsolve.MatrixRankWarning: Matrix is exactly singular
我有一个嫌疑人:我的网格大小。我们称其为状态空间的三个维度之一u。对于一个固定的u.min(), u.max(),如果我增加了足够的网格大小,我通常可以反转A. 对于数量级:如果跨网格点的转换率在100 左右,则反相A失败。当它仅在 附近时10,它可以工作。
现在,我不能总是在问题上抛出更多的网格点。另外,我不确定为什么网格大小在哪里很重要背后的根本问题。任何人都可以阐明这里发生的事情,以及是否有其他的前进方式?