非有限函数值积分R.

时间:2014-10-02 11:06:38

标签: r

我在尝试使用R中的集成功能时遇到了问题。

non-finite function value

当我使用某些数据调用集成函数时,我不断收到此错误消息。我试图在(-1,1)的范围内限制目标函数 它集成在一个有限的区间(-1,1)。我无法找到任何有关此错误的解释。有没有人遇到过这种情况?非常感谢

功能参考链接如下

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/integrate.html

以下是代码

f<-function(p,c,n,k,a,b){
Ans=p^(a-1)*(1-p)^(b-1)*(c*p)^(k)*(1-c*p)^(n-k)
if (is.finite(Ans)[1]){ 
return(Ans)
}
else if (abs(Ans)>1) {
return(1)
}
else {
return(0)
}
}



intFun<-function(c,n,k,a,b){
return(integrate(f,lower=0,upper=1,c=c,n=n,k=k,a=a,b=b,abs.tol =100)$value)
}

1 个答案:

答案 0 :(得分:1)

猜测一下,您的问题是您丢失了NaN个输入值,这些值被认为是非限定性的。这意味着此错误不仅可以通过无限值生成:

integrate(function(x) 1 / x, lower = -1, upper = 1)
## Error in integrate(function(x) 1/x, lower = -1, upper = 1) : 
##   non-finite function value

但也错过了:

integrate(function(x) ifelse(x == 0, NA, x), lower = -1, upper = 1)
## Error in integrate(function(x) ifelse(x == 0, NA, x), lower = -1, upper = 1) : 
##   non-finite function value