R-集成“集成”功能

时间:2014-03-03 10:42:34

标签: r integrate

我正在使用集成函数(在R中)来数值计算积分。我有一个单变量函数,其中一个参数 f(x,a)就像这样(仅用于示例目的):

test = function(x,a) 1/sqrt(2*pi)*exp(-(x-a)^2/2)

我想在整合上述函数后定义新的单变量函数,它是 a 的函数:

testa = function(a) integrate(test,0,Inf,a=a)$value #this works

现在我的问题是,是否可以在 testa 功能上使用集成功能?例如:

integrate(testa,0,1) # not working

我试过但它无法正常工作(收到错误消息evaluation of function gave a result of wrong length)。我已经知道可以直接在 test 上应用多变量集成过程(例如,从 cubature 包中使用 adaptIntegrate 函数)。但这不是我的目的!

那么有没有人知道如何连续应用集成功能,如上例所示?或者确认R中不允许这样做?

提前感谢

1 个答案:

答案 0 :(得分:2)

integrate需要一个矢量化函数。您可以使用Vectorize

integrate(Vectorize(testa),0,1)
#0.6843731905 with absolute error < 0.00000000000022

免责声明:我没有检查结果是否正确。