【问题标题】:R integrate over valuesR 对值进行积分
【发布时间】:2020-05-20 06:34:38
【问题描述】:

我一直在尝试在[0,1] 中通过 r 集成以下功能,但无济于事:

brownian_bridge <- function(r){X[r*(length(X)-1)+1]-r*X[length(X)]}

X是一个长度为1000的向量,r定义为

r=seq(from=0,to=1,length=1000)

此外,

X=cumsum(rnorm(1000,mean=0,sd=sqrt(1/1000)))

现在我的问题是:如何在 [0,1] 中集成 browian_bridge over r?是否有内置的 R 函数来执行此操作?标准工具,例如integrate2() 似乎不起作用,因为r 是一个序列,而不是一个适用于[0,1] 中所有r 的函数。

【问题讨论】:

    标签: r


    【解决方案1】:

    也许你应该先使用Vectorize,然后再申请integrate

    f <- Vectorize(brownian_bridge,"r")
    res <- integrate(f,0,1,subdivisions = 1e5)
    

    这样

    set.seed(1)
    X=cumsum(rnorm(1000,mean=0,sd=sqrt(1/1000)))
    brownian_bridge <- function(r){
      X[r*(length(X)-1)+1]-r*X[length(X)]
    }
    
    f <- Vectorize(brownian_bridge,"r")
    
    res <- integrate(f,0,1,subdivisions = 1e5)
    

    给予

    > res
    0.2478581 with absolute error < 1e-04
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-11
      • 2016-04-05
      • 2016-12-13
      • 1970-01-01
      • 2020-10-09
      • 2013-12-16
      • 2018-10-29
      • 2018-01-17
      相关资源
      最近更新 更多