如何求解马尔可夫转移率矩阵?
How to solve Markov transition rate matrix?
我有一些变量要查找,例如 x= [1x16 (x1,x2,x3,....x16 variables)],条件是 x1+x2+x3+....x16=1。我还有 16x16 矩阵 Q= [16x16 (real values)]。
我需要解方程 'x*Q=x' as shown here。我怎样才能轻松地在 Matlab 或任何其他语言中解决它?
通过转置,你的等式等价于 Q'y=1y 其中 y:=x'(列向量),其中 Q' 是 Q 的转置(matlab 符号...),这意味着 y 是一个与矩阵 Q' 的特征值 1 关联的特征向量。对于马尔可夫矩阵,这样的特征向量总是存在的。令 s 为列向量 y 的条目之和。可能会出现两种情况:
要么 s 不为 0 ;然后将 y 的所有坐标除以 s 就足够了:我们得到一个向量,它仍然是一个特征向量,坐标和等于 1.
or s=0 没有解决你的问题。
这是一个 Matlab 程序,可以处理 3 x 3 矩阵:
M=[.2 .3 .5
.1 .8 .1
.4 .4 .2]
[P,D]=eig(M')
Y=P(:,3)
M'*Y - Y,% should be 0
Z=Y/sum(Y),%the sum of Z's coordinates is 1
M'*Z-Z,% should be 0
我有一些变量要查找,例如 x= [1x16 (x1,x2,x3,....x16 variables)],条件是 x1+x2+x3+....x16=1。我还有 16x16 矩阵 Q= [16x16 (real values)]。
我需要解方程 'x*Q=x' as shown here。我怎样才能轻松地在 Matlab 或任何其他语言中解决它?
通过转置,你的等式等价于 Q'y=1y 其中 y:=x'(列向量),其中 Q' 是 Q 的转置(matlab 符号...),这意味着 y 是一个与矩阵 Q' 的特征值 1 关联的特征向量。对于马尔可夫矩阵,这样的特征向量总是存在的。令 s 为列向量 y 的条目之和。可能会出现两种情况:
要么 s 不为 0 ;然后将 y 的所有坐标除以 s 就足够了:我们得到一个向量,它仍然是一个特征向量,坐标和等于 1.
or s=0 没有解决你的问题。
这是一个 Matlab 程序,可以处理 3 x 3 矩阵:
M=[.2 .3 .5
.1 .8 .1
.4 .4 .2]
[P,D]=eig(M')
Y=P(:,3)
M'*Y - Y,% should be 0
Z=Y/sum(Y),%the sum of Z's coordinates is 1
M'*Z-Z,% should be 0