正如标题所示,我想解决以下问题。设f表示某个函数,设f0表示给定常数。有找到max{x:f(x) <= f0}
的经济方法吗?
这是一个示例:
f = function(x) (x-2)^2
f0 = 0.4
,在这种情况下,正确答案约为2.5。预先谢谢你。
答案 0 :(得分:1)
使用约束进行优化的一种可能性是定义函数f
的版本,如果不满足约束,则返回Inf
:
f <- function(x) (x-2)^2
f0 <- 0.4
f_optim <- function(x, a = f0) ifelse(f(x) <= a, f(x), Inf)
optimize(f_optim, c(-10, 10), a = f0, maximum = T, tol = .Machine$double.eps)
$maximum
[1] 2.632456
$objective
[1] 0.4
答案 1 :(得分:0)
f0 = 0.04
f = function(x) (x - 2)^2
g = function(x, f0) {
delta = f0 - f(x)
abs(delta)
}
optimize(g, c(0, 10), f0 = f0, maximum=F, tol= .Machine$double.eps)