【问题标题】:Optimize function in r with the boundary value使用边界值优化 r 中的函数
【发布时间】:2019-06-13 21:39:24
【问题描述】:

我有以下功能,想找到满足这个要求的$x$。

$$\frac{X^{2}(1.5)^{2}\exp{1.5X^{2}}}{2}

我写了以下r函数。

f <- function(X) 0.5*X^2 * 1.5^2 * exp(X*1.5) < 1
optimize(f, c(0, 1))

但它给了我一个错误。我想找到满足要求的X 的值。谢谢你的帮助。

【问题讨论】:

  • 你想用&lt; 1做什么;我认为正在发生的事情不是你想要的。 f 的输出是 TRUEFALSE
  • @Suren,我想找到满足0.5*X^2 * 1.5^2 * exp(X*1.5) &lt; 1X的值。
  • 所以,f 的最小值为零,对。然后你想找到X 的值,其中f 为零。这将是-Inf。如果您使用 optimize 函数,它将为您提供较低的间隔值。只需使用f &lt;- function(X) 0.5*X^2 * 1.5^2 * exp(X*1.5)
  • @Suren,谢谢。
  • @Suren,我还有一个问题。如何最大化 X ?谢谢。

标签: r function optimization


【解决方案1】:

如果我们将 ff 定义为

ff <- function(X) 0.5*X^2 * 1.5^2 * exp(X*1.5)

然后绘制它

curve(ff)

我们看到 ff(0) = 0 并且 ff(x) 在 x 中单调递增。 ff(x)

g <- function(x) (ff(x) - 1)^2
optimize(g, c(0, 1))

给予:

$minimum
[1] 0.6008074

$objective
[1] 1.058761e-09

因此,任何介于 0 和 0.6008074 之间的 x 值都会在闭区间 [0, 1] 中给出 ff 值。

# create graph
curve(ff)
opt <- optimize(g, c(0, 1))
abline(h = 0:1)
abline(v = c(0, opt$minimum))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多