我正在尝试使用optim()来求解& maxim。下面的方程系统:
model <- function(z) {
q1 <- z[1]
q2 <- z[2]
return ((10-2*(q1+q2))*q1-k1*q1)
return ((10-2*(q2+q1))*q2-k2*q2)
}
参数/变量的定义如下:
A <- rep(0,2)
lowerb <- rep(0,2)
upperb <- rep(6,2)
k1 <- 3
k2 <- 2
其余部分如下所示:
optim(A, model, gr=NULL, method="L-BFGS-B", lower = lowerb, upper = upperb, control = list(fnscale = -1, trace = 1))$par
我没有收到错误,但是,最大值应该是在q1=1和q2=1,5,而不是像R现在所说的那样在1,75和0。由于我需要将其应用于更复杂的方程系统,因此我首先使用了一个简单的方程,它可以很容易地手动计算。
感谢您的帮助!非常感谢!
发布于 2019-04-26 00:52:47
k1 <- 3
k2 <- 2
q2 <- 0
q2 <- 0
for (i in 1:20) {
#For 1
objective1 <- function(q) ((10-2*(q+q2))*q-k1*q)
result1 <- optimize(objective1, c(0,10), maximum = TRUE)
q1 <- result1$maximum
#For 2
objective2 <- function(q) ((10-2*(q1+q))*q-k2*q)
result2 <- optimize(objective2, c(0,10), maximum = TRUE)
q2 <- result2$maximum
}
q1
q2
https://stackoverflow.com/questions/32703454
复制相似问题