我计算累积分布函数,其结果应该在[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.
myCk
是由另一个函数生成的向量。 hat.a
是积分的下限,它是负数。uk
是由函数生成的向量。 uk
的长度等于myCk
的长度。 感谢您的建议!