optimx()有麻烦(“无法在初始参数处评估函数”)

时间:2019-11-26 17:05:11

标签: r

我想最大化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,更低,         无法在初始参数处评估功能

我很确定我缺少函数参数中的一些基本知识,但是我无法弄清楚是什么。

1 个答案:

答案 0 :(得分:0)

需要花点时间才能弄清楚(debug(optimx:::optim.check))),但看起来这是一条令人困惑的错误消息,因为您指定了maximize=TRUE而不是control=list(maximize=TRUE)({{1 }}尝试将optimx作为附加参数传递给您的函数,但失败了。

尝试:

maximize=TRUE