首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >optim()多参数类型

optim()多参数类型
EN

Stack Overflow用户
提问于 2017-05-30 17:19:14
回答 1查看 937关注 0票数 0

我正在探索使用optimx()或optimx()进行(非常)非线性优化。本质上,我编写了一个函数,将其作为输入:

1)具有特定列名/类型的data.frame

2)长度为1的数字向量

3)长度大于1的数字向量

然后函数接受输入,执行一些计算和逻辑测试,然后如果逻辑测试为假,则返回一个非常负值,或者如果逻辑测试为真,则返回输入#2的值。目标是最大化#2,而不将逻辑测试触发为FALSE。

我尝试在下面的代码中使用optimx() ( par值对应于上面提到的输入):

代码语言:javascript
运行
复制
optimout <- 
  optimx:::optimx(
    par = c(inputDF, 5000, rep(99,20)),
    fn = MyFunction,
    maximize = TRUE)

我收到以下错误消息:

Optimx.check中的错误(par,optcfg$ufn,optcfg$ugr,optcfg$uhess,较低,:无法在初始参数下计算函数)

拉尔夫

EN

回答 1

Stack Overflow用户

发布于 2018-01-28 14:32:42

如果我正确地理解了您的问题,并且您只想最大化基于第二个输入参数的函数(长度为1的数字向量),则需要不同地调用optimx,考虑到data.frame可能是一些给定的输入数据,这将是有意义的。

因此,请尝试执行以下操作:

代码语言:javascript
运行
复制
optimout <- optimx(par = c(5000), fn = MyFunction, par1=inputDF,
par2=rep(99,20), maximize = TRUE)

其中par1和par2是函数的输入变量的名称。本质上,您为optimx提供了输入参数par1 & par2的初始值,这些参数随后没有被优化。因此,仅通过更改第二个参数(长度为1的数字向量)的值来搜索最大值,您选择从5000开始。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44268275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档