我想最小化功能
f <- function(u){
return(-(1+u[1]+u[2]+u[3]+u[4]))
}
带渐变毕业
我有一些限制:
1)u [1] + u [2] + u [3] + u [4] = 1
2)0 <= u [1] <= 1,0 <= u [2] <= 1,0 <= u [3] <= 1,0 <= u [4] <= 1
如何正确制作?我只能做2个约束
optim(par=c(0,0,0,0), fn=f,lower=c(0, 0, 0, 0), upper=c(1, 1, 1, 1),method="L-BFGS-B")
但是在这种情况下1个约束是不正确的
也许您可以尝试以下fmincon
包装pracma
pracma::fmincon(c(0,0,0,0),
f,
gr = grad,
Aeq = cbind(1,1,1,1),
beq = 1,
lb = c(0,0,0,0),
ub = c(1,1,1,1))
看来是真正的解决办法,但我有
Argument 'Aeq' must be a matrix with length(x0) columns
。虽然length(x0) = length(Aeq) = 4
得到它了。
Aeq = cbind(1,1,1,1)
@ИльшатМурзурбеков很好,您已将其修复。这能解决您的问题吗?