计算R中的集成

时间:2017-11-27 14:12:01

标签: r

我计算累积分布函数,其结果应该在[0,1]中。计算CDF的等式是:

\开始{对齐}

F = \ int _ {\ hat {a}} ^ {x} \ frac {2} {\ hat {b} - \ hat {a}}〜\ sum \ nolimits_ {k = 0} ^ {&# 39; N-1} C_ {k}〜\ text {cos} \ bigg(\ big(y - \ hat {a} \ big)\ frac {k \ pi} {\ hat {b} - \ hat {a}} \ bigg)~dy

\ {端对齐}

,其中

  • Ck是一个向量
  • cos term是一个向量
  • 长度(ck)=长度(cos term)= N.

我确定方程是正确的,但我担心我的代码不正确。

这是我的代码:

integrand<-function(x,myCk)
{
 (2/(b-a))*(t(myCk)%*%as.matrix(cos((x-hat.a)*uk)))
}

f <- function(x){integrand(x,myCk)}

# define a vectorized version of this function 
fv <- Vectorize(f,"x")

res<-integrate(fv,upper = r,lower = hat.a, subdivisions = 2000)$value

res返回累积分布函数,结果可能大于1.

  1. myCk是由另一个函数生成的向量。
  2. hat.a是积分的下限,它是负数。
  3. uk是由函数生成的向量。 uk的长度等于myCk的长度。
  4. 感谢您的建议!

0 个答案:

没有答案