函数依赖于循环的optim()上的R问题

函数依赖于循环的optim()上的R问题,r,optimization,R,Optimization,关于R上的optim()函数,这是一个简单的问题。我试图根据循环的变量找到函数的最小值 f<-function(x,i){ i*x } M<-matrix(0,10,1) for (i in 1:5) { M[i,1]<-optim(c(1),f,lower=-2,upper=2,method="L-BFGS-B") } M 我真的不明白如何处理这个问题……您必须将I传递给optim调用: optim(1,f,i=i,lower=-2,upper=2,

关于R上的optim()函数,这是一个简单的问题。我试图根据循环的变量找到函数的最小值

f<-function(x,i){
  i*x
}

M<-matrix(0,10,1)

  for (i in 1:5) {
    M[i,1]<-optim(c(1),f,lower=-2,upper=2,method="L-BFGS-B")
  }
M

我真的不明白如何处理这个问题……

您必须将
I
传递给
optim
调用:

optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")
…和
optim
返回一个列表,因此您需要选择列表中要存储在
M
中的元素。我想你想要
par

M[i,1] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")$par

M[i,1]您必须将
i
传递给
optim
调用:

optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")
…和
optim
返回一个列表,因此您需要选择列表中要存储在
M
中的元素。我想你想要
par

M[i,1] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")$par

M[i,1]你赢了!我写了同样的东西,但添加了将M初始化为列表并保存optim的所有输出的潜在步骤。@Justin:这可能是一个更好的解决方案。。。我将在中编辑它;谢谢你赢了!我写了同样的东西,但添加了将M初始化为列表并保存optim的所有输出的潜在步骤。@Justin:这可能是一个更好的解决方案。。。我将在中编辑它;谢谢请注意,SO上的很多人都不会说法语。因此,对于未来的问题,我建议将错误消息从法语翻译成英语。或者,你可以把R换成英语区域……谷歌做得很好。请注意,很多人都不会说法语。因此,对于未来的问题,我建议将错误消息从法语翻译成英语。或者,你可以把R切换到英语区域……谷歌做得很好。