R optim()多个参数类型
我正在探索使用R optim()或optimx()进行(非常)非线性优化。基本上,我编写了一个函数,将以下内容作为其输入: 1) 具有特定列名/类型的data.frameR optim()多个参数类型,r,optimization,R,Optimization,我正在探索使用R optim()或optimx()进行(非常)非线性优化。基本上,我编写了一个函数,将以下内容作为其输入: 1) 具有特定列名/类型的data.frame 2) 长度为1的数字向量 3) 长度大于1的数值向量 然后,该函数接受输入,执行一些计算和逻辑测试,如果逻辑测试为假,则返回一个非常负值,如果逻辑测试为真,则返回输入值#2。目标是最大化#2,而不会使逻辑测试出错 我尝试使用优化代码()用下面的代码(PAR值对应于上面提到的输入): optimout如果我正确理解了您的问题,并
2) 长度为1的数字向量
3) 长度大于1的数值向量
然后,该函数接受输入,执行一些计算和逻辑测试,如果逻辑测试为假,则返回一个非常负值,如果逻辑测试为真,则返回输入值#2。目标是最大化#2,而不会使逻辑测试出错 我尝试使用优化代码()用下面的代码(PAR值对应于上面提到的输入):
optimout如果我正确理解了您的问题,并且您只想最大化基于第二个输入参数(长度为1的数字向量)的函数,那么您需要以不同的方式调用optimx
,考虑到data.frame可能是某些给定的输入数据,这是有意义的
因此,请尝试执行以下操作:
optimout <- optimx(par = c(5000), fn = MyFunction, par1=inputDF,
par2=rep(99,20), maximize = TRUE)
optimout尝试在初始条件c(inputDF,5000,rep(99,20))下计算MyFunction
。你得到了什么?它返回我期望的值。但是,我在函数调用中显式输入参数inputDF,5000,rep(99,20)。我想知道在通过optimx调用MyFunction时,是否需要以不同的格式设置输入参数。您的MyFunction
是否有3个或1个输入?3个输入,与我在上面的#1/2/3中所列的数据类型相同,通过optimx
:fn=要最小化(或最大化)的函数,第一个参数是要进行最小化的参数向量。
optimout <- optimx(par = c(5000), fn = MyFunction, par1=inputDF,
par2=rep(99,20), maximize = TRUE)