Я пытаюсь построить матричное умножение как функцию времени и столкнулся с проблемой невозможности включить исходное состояние в график (где n = c(100,1000,50)
).
Я пытался найтирешение в других сообщениях SO, но он мог найти только функцию next , что, я думаю, не очень хорошо, потому что, если я запишу ее в секцию if (time ==1){}
, она точно так же пропустит исходное состояние.В конце концов, я пришел с этим, который тоже не работает:
n = c(100,1000,50) #original state
G = matrix(c(0.6,0.4,0,0.005,0.9,0.1,0,0,0.5),3,3)
population = function(time = 100){
x = seq(0,100,1)
plot(x = seq(0,100,1),y = seq(0,1000,10), col="white", xlab = "time", ylab = "sample")
if(time == 1){
points(x[1],n[1], col = "red")
points(x[1],n[2], col = "blue")
points(x[1],n[3], col = "black")
}
for(i in 1:(time-1)){
n = G%*%n
print(n)
points(x[i],n[1], col = "red")
points(x[i],n[2], col = "blue")
points(x[i],n[3], col = "black")
}
return(n)
}
population(100)
Любые намеки будут высоко оценены.