qtdCurtidas: 1
要绘制从p1到p50的图形,我使用以下代码。
P1 <- matrix(c(0, 1, 0, 0, 0, 0, 2/3, 1/3, 0, 1, 0, 0, 0, 0, 0, 1), 4, 4, byrow=TRUE)
但是结果很奇怪,任何人都可以找出我的代码出了错吗?
答案 0 :(得分:1)
问题在于您对P1^k
的计算。在R中,使用^
逐个地乘幂,而不是通过矩阵乘法。要计算P1
的矩阵幂,您需要将其相乘,或使用%^%
包中的expm
运算符。 (其他软件包中也可能有此操作的其他实现。)
这样编写循环:
# Calculate probabilities for 50 steps.
P1tok <- diag(4) # the identity matrix
for(k in 1:50){
P1tok <- P1tok %*% P1 # multiply by another P1
nsteps <- initState*P1tok
one[k] <- nsteps[1,1]
two[k] <- nsteps[1,2]
three[k] <- nsteps[1,3]
four[k] <- nsteps[1,4]
}