我想最大化x1,x2和x3的函数,如下所示:
f <- function(x) x[1]*14.1638 + x[2]*4.2062 +
x[3]*0.6700 - x[1]*x[2]*2.2175 + x[1]*x[3]*2.8800 +
x[2]*x[3]*2.0450 + x[1]*x[1]*9.9863 -
x[2]*x[2]*12.6738 - x[3]*x[3]*10.9062 + 36.4100
params <- c(1,1,1)
r <- optimx(params, f,gr=NULL, hess=NULL, lower=-1, upper=1,
method=c("Nelder-Mead", "L-BFGS-B"), itnmax=c(50),
maximize=TRUE )
r$convergence == 0
r$par
但是我收到警告消息
optimx.check中的错误(par,optcfg $ ufn,optcfg $ ugr,optcfg $ uhess,更低, 无法在初始参数处评估功能
我很确定我缺少函数参数中的一些基本知识,但是我无法弄清楚是什么。
答案 0 :(得分:0)
需要花点时间才能弄清楚(debug(optimx:::optim.check))
),但看起来这是一条令人困惑的错误消息,因为您指定了maximize=TRUE
而不是control=list(maximize=TRUE)
({{1 }}尝试将optimx
作为附加参数传递给您的函数,但失败了。
尝试:
maximize=TRUE