R에서 상미 분 방정식을 풀려고합니다. 이미 정의한 초기 값과 매개 변수로 행렬이 있습니다. 그러나 그것을 해결하려고하면 행렬 대신에 단일 값을 입력 할 때 나타나지 않는 아래의 오류가 발생합니다. (베타) %의 *의 %의 S에R : 행렬을 입력으로 사용하여 deSolve 패키지로 ODE를 해결합니다.
이오류 : 필요 숫자/복잡한 행렬/벡터 인수
송시를 해결하기위한 내 코드는 내가 왜 이해가 안
S = matrix(c("S1","S2"), nrow = 2, ncol=1)
I = matrix(c("I1","I2"), nrow = 2, ncol=1)
R = matrix(c("R1","R2"), nrow = 2, ncol=1)
beta=matrix(c("beta1", "beta2"), nrow = 2, ncol=1)
MODEL <- function(time, state, parameters) {
with(as.list(c(state, parameters)), {
dS <- -1*(beta) %*% S %*% I
dI <- beta %*% S %*% I - gamma %*% I
dR <- gamma %*% I
return(list(c(dS, dI, dR)))
})
}
init <-c(S1=1-1e-6, S2=1-1e-6, I1=1e-6, I2=1e-6, R1=0.0, R2=0.0)
parameters <- c(beta1=1.4247, beta2=1.4247, gamma=0.14286)
times <- seq(0, 70, by = 1)
out <- ode(y=init, times=times, func=MODEL, parms=parameters)
이하 오류 메시지가 나타나고 행렬을 사용할 때 다르게 처리해야하는지 여부가 표시됩니다.
도움을 주시면 감사하겠습니다. 감사!!!
당신이 당신의 그라데이션 기능을 내부에 행렬을 "재 포장"해야 할 것입니다. 'relist()'함수가 유용 할 수 있습니다. –