Мне нужно умножить матрицу estado
на матрицу matriz_de
перехода и переназначить переменную estado
на результат умножения, я должен сделать это 1000 раз, и мне нужно повторить моделирование100 раз.
Т.е. умножьте матрицу estado
на переход matriz_de_
1000 раз и посмотрите, сходится ли значение estado
, затем повторите эту операцию 100 раз.
У меня естьпробовал с циклами for, но способ, которым я переназначаю значения переменной estado
, не работает, так как я продолжаю получать те же самые результаты, даже если, когда я делаю это вручную, кажется, что он работает.
This is my code:
nombre_estados <- c("Estado 1","Estado 2","Estado 3")
matriz_de_transicion <- matrix(c(0.2,0.7,0.1,
0.3,0.7,0.0,
0.1,0.4,0.5),
byrow = T,nrow = 3, dimnames = list(nombre_estados,nombre_estados))
estado <- matrix(c(0.2,0.7,0.1),byrow = T, nrow = 1)
estado <- estado %*% matriz_de_transicion
estado # 0.26 0.67 0.07
estado <- estado %*% matriz_de_transicion
estado # 0.26 0.679 0.061
# repeat this 1000 times
Большое спасибо за ответы, как я могу затем добавить эти окончательные estados
в матрицу 100 x 3 ?.Я создал матрицу 100 x 3:
datos <- matrix(c(0,0,0),byrow = F,ncol = 3, nrow = 100)
Затем я попытался сделать вложенный цикл:
for(i in 1:100){
for(i in 1:1000){
estado <- estado %*% matriz_de_transicion
}
datos[,1] <- estado[1,1]
datos[,2] <- estado[1,2]
datos[,3] <- estado[1,3]
estado <- matrix(c(0.2,0.7,0.1),byrow = T, nrow = 1) # I thought this would reset the value to the initial state but I fill the 100 x 3 matrix with the same values.
}
[,1] [,2] [,3]
[1,] 0.2631579 0.6842105 0.05263158
[2,] 0.2631579 0.6842105 0.05263158
[3,] 0.2631579 0.6842105 0.05263158
[4,] 0.2631579 0.6842105 0.05263158
[5,] 0.2631579 0.6842105 0.05263158
[6,] 0.2631579 0.6842105 0.05263158
[7,] 0.2631579 0.6842105 0.05263158
[8,] 0.2631579 0.6842105 0.05263158
Я пытаюсь сбросить значение переменной estado
,для каждого из 100 имитаций, которые мне нужно получить в конце, поэтому каждый из циклов 1: 1000 имеет одинаковое начальное значение для estado
.