Я пытаюсь выяснить, как запускать симуляции, изменяя значения параметров при использовании deSolve. Я очень новичок в R и с трудом устраняю ошибки, которые я получаю. Я создал очень простой набор дифференциальных уравнений и пытаюсь запустить выборку для цикла из равномерного распределения моих параметров.Выполнение симуляции с различными значениями параметров в deSolve
My Model:
sir <- function(time, state, parameters) {
with(as.list(c(state, parameters)), {
dS <- -beta1 * (S * I)/N
dI <- beta1 * (S * I)/N - gamma1 * I
dR <- gamma1 * I
return(list(c(dS, dI, dR)))
})
}
init <- c(S = 99999, I = 1, R = 0)
Покушение на цикл:
outlist <- list()
plist <- cbind(beta1 = runif(30, min = .1, max = .9),
gamma1 = runif(30, min = .1, max = .9))
for(i in 1:nrow(plist))
outlist[[i]] <- ode(y = init, times = times, func = sir, parms = plist[i])
plot(out, outlist)
Я получаю следующее сообщение об ошибке:
Error in eval(expr, envir, enclos) : object 'beta1' not found
Я очень признателен за любую помощь вы можете предоставить,
Вы не показываете весь свой код. Вы не присвоили значение параметру 'beta1' в своей функции, как следует из сообщения об ошибке. Вы должны вставить строку как 'beta1 <- parameter [1]' в функцию перед 'with'. Аналогично для 'gamma1' и' N'. А где объекты 'times' и' N'? И вам нужно '{' и '}' вокруг тела цикла 'for'. Также отсутствует 'out'. И теперь я сдаюсь. – Bhas