集成错误:函数评估给出了错误长度的结果

Error in integrate : evaluation of function gave a result of wrong length

试试下面的代码:

library(pracma)

f <- function(x) 1

integrate(f,0,1)$value
quad(f,0,1)

quad() 工作正常但 integrate() 报告错误消息:

Error in integrate(f, 0, 1) : evaluation of function gave a result of wrong length

这个 integrate() 应用程序有什么问题?提前致谢!

你可以试试:

integrate(Vectorize(f),0,1)$value

参见integrate的手册:f应该是一个R函数,它接受一个数字第一个参数并返回一个相同长度的数字向量。 Vectorize 将使 f 成为 returns 与输入长度输出相同的函数。

解决方案的另一个例子:

integrate(function(x) rep(1, length(x)), 0, 1)