集成“...不是功能、字符或符号”

Error when integrating "...is not a function, character or symbol"

提问人:Victor Nielsen 提问时间:8/15/2023 最后编辑:Victor Nielsen 更新时间:8/16/2023 访问量:41

问:

我有这个包含一个功能的集成。我想对 x 值 0-39 进行积分。

#parameters
alpha <- 0.86
y <- 70000
t <- 600
u <- 5353.65

get_p <- function(x,y,t,u) {
  (((alpha^alpha) * ((1 - alpha)^(1 - alpha)) * (y - t * x)) / u)^(1 / (1 - alpha))
}

integrate(x * get_p(x,y,t,u),lower = 0,upper = 39)

但是当我运行此代码时,如果我首先将 x <-0 放入,则会出现错误:

Error in match.fun(f) : 
  'x * get_p(x, y, t, u)' is not a function, character or symbol

如果我不先指定 x,我会收到此错误:

Error in match.fun(f) : object 'x' not found

X 不应该被定义,我们正在通过 i 进行积分!

我做错了什么?

R 函数 处理 语法-错误 集成

评论


答:

1赞 MrFlick 8/16/2023 #1

该函数需要一个适当的函数作为第一个参数,而不是表达式。您可以将匿名函数与integrate()

integrate(function(x) {x * get_p(x,y,t,u)},lower = 0, upper = 39)

或使用最新的 lambda 语法

integrate(\(x) {x * get_p(x,y,t,u)},lower = 0, upper = 39)

评论

0赞 Carl Witthoft 8/16/2023
你太善良了:-)。我真的希望有一个“Close_because从不阅读手册页”选项。