我想使用i.p
函数取矩阵solve
的逆矩阵。此i.p
矩阵是单位矩阵减去p
的结果。
以下是获取i.p
的代码:
p<-rbind(c(0,0,0,0,0,0,3), c(0,0,7,9,0,0,0), c(3,6,0,75,0,0,0), c(0,0,20,0,1,35,34), c(0,0,1,0,0,0,0), c(0,0,10,1,0,0,27), c(0,3,31,2,0,0,0))
dev<-c(sum(0,0,0,0,0,0,3), sum(0,0,7,9,0,0,0), sum(3,6,0,75,0,0,0), sum(0,0,20,0,1,35,34), sum(0,0,1,0,0,0,0), sum(0,0,10,1,0,0,27), sum(0,3,31,2,0,0,0))
p<-p/dev
p[7,]<-c(0,3,31,2,0,0,0)/sum(0,3,31,2,0,0,0, 30)
i<-diag(1, 7, 7) #make a 7X7 identity matrix
i.p<-i-p #identity matrix substract probability matrix I-P
i.p.s<-solve(i.p, i) #inverse of I-P
以下是p
,i.p
和i.p.s
矩阵:
这个逆i.p.s
乘以矩阵i.p
应该是一个单位矩阵。
i.p %*% i.p.s
然而,使用上面的代码计算的这个倍数显然不是单位矩阵。这是为什么?