2014-10-02 5 views
0

я столкнулся с проблемой, когда я пытался использовать функцию интеграции в 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) 
} 
+0

каковы значения с, п, к, а, б? – agstudy

ответ

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 
Смежные вопросы