【问题标题】:How to Code a Recursive Function by Vector in R?如何在 R 中通过向量编写递归函数?
【发布时间】:2020-08-18 03:23:11
【问题描述】:

我有一个函数:(1 - (x / d)) 其中 d 是向量 (V) 的成员 根据向量的长度,函数将如下所示: 例如向量是 V [2, 3.5, 5, 4.1] 所以函数是:

[(1-(x/2))*(1-(x/3.5))*(1-(x/5))*(1-(x/4.1))]

如果我给它一个像 [1.5, 2] 这样的向量,函数将是:

[(1-(x/1.5))*(1-(x/2))]

这意味着函数的形状取决于我的向量及其元素的长度。 我想要一个代码来创建这个函数,然后通过在 R 中优化找到它的最大值。

【问题讨论】:

  • 这里的x 是什么?

标签: r recursion max


【解决方案1】:

这是一种方法。函数f 返回一个可应用于向量x 的函数。

f <- function(d) {
  force(d)
  function(x) prod(1 - x/d)
}

d <- c(1.5, 2)
g <- f(d)
sapply(1:5, g)
#[1] 0.1666667 0.0000000 0.5000000 1.6666667 3.5000000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多