r - 在 R 中同时解决单变量优化问题

标签 r for-loop optimization while-loop doparallel

我将使用一个非常简单的例子来解释我的问题(真正的问题涉及一个非常复杂的单变量函数)。考虑以下单变量函数

f <- function(x, p){ 10 - (x - p)^2 }

其中 p 属于 {-500, -499,..., -1, 0, 1,..., 499, 500}。

对于每个 p 值,我想找到使 f 最大化的 x 值。这可转换为 x 的 1001 个值。

我知道可以在 R 软件中使用 i)for 循环,ii)while 循环,iii)apply 函数,iv)foreach 函数(doParallel 包)来做到这一点。不过,我想知道您能否告诉我在 R 软件中是否有更有效的方法来解决上述优化问题。

我知道上面的优化问题解决起来很简单。然而,问题的重点是在 R 中同时解决多个优化问题的有效过程。

非常感谢您的帮助。

最佳答案

函数optimize()可用于获取函数的最大值。 然后,您可以按如下方式应用参数值:

p<-seq(-500,500,1)
fn <- function(param,p,...){return( 10 - (param - p)^2) }


ll <- lapply(pp,function(i)
  optimize(f= fn, 
           par =c(-1000), 
           p=i, 
           interval = c(-100000000,1000000000),
           maximum = TRUE))

ll[[which.max(sapply(ll,'[[','maximum'))]]

关于r - 在 R 中同时解决单变量优化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56548210/

相关文章:

r - 从源安装失败的软件包-Dockerfile

R点阵条形图: How to write the total sum on each bar in multiple panels?

r - 努力理解 Q1 计算

python 3 : Checking next value of an iterator without iterating

python - python中for循环的优化

c# - C#中使用大括号释放内存

python - scipy.minimize 如何处理 NaN?

r - ggplot2 分面边距

python - 不重叠某些像素的随机矩形

Excel宏-for循环增量