# Error in integrate(integrand, 0, Inf) : non-finite function value

6 messages
Open this post in threaded view
|

## Error in integrate(integrand, 0, Inf) : non-finite function value

 This post was updated on . CONTENTS DELETED The author has deleted this message.
Open this post in threaded view
|

## Re: Error in integrate(integrand, 0, Inf) : non-finite function value

 On Oct 20, 2012, at 9:23 AM, stats12 wrote: > Dear R users, > > When I run the code below, I get the error "Error in integrate(integrand, 0, > Inf) : non-finite function value".  The code works if the function returns > only "sum(integ)". But you never showed us the working code. > However, I want to add "cmh" to it. When I add "cmh" I > get that error. I can't figure out why this is happening because my > integrate function has nothing to do with "cmh".  I tried to integrate from > 0 to 1000, and still same error. Any suggestion is greatly appreciated. > Thank you in advance! > > > > d<-matrix(c(1,1,0,0,0,0,0,0,2,1,0,0,1,1,0,1,2,2,1,0),nrow=10,ncol=2) > h<-matrix(runif(20,0,1),10) > delta<-matrix(c(2,1,0,1,0,1,0,0,2,1,0,0,1,1,1,1,0,2,1,0),nrow=10,ncol=2) > > out<-vector("numeric",length(1:2)) > integ<-vector("numeric",length(1:2)) > > for (k in 1:2){ > ll<-function(p){ >      cmh<-delta[,k]*(h[,k]*log(0.5))+p*log(gamma(1+1/p)) This inner loop appears to define a function 10 times, but does nothing else: >      for(s in 1:10){ >      integrand<-function(x) >      x^d[s,k]*exp(-x*gamma(1+1/p))^p*p*x^(p-1)*exp(-x*h[s,k]) >                     }  # end of s-loop > ------------------ >      integ<-integrate(integrand,0,Inf)\$value >      cmhn<-as.vector(cmh) >      lik<-sum(cmhn+integ) >      -lik >               }  # end of ll()-function > initial<-c(1) > t<-nlm(ll,initial) > out[k]<-t\$estimate > } # end of k-loop > est<-as.vector(out) Your uncommented code seems to have problems with organization, but since you never really described your overall strategy or goal was, it's hard to know. -- David Winsemius, MD Alameda, CA, USA ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Error in integrate(integrand, 0, Inf) : non-finite function value

 This post was updated on . CONTENTS DELETED The author has deleted this message.
Open this post in threaded view
|

## Re: Error in integrate(integrand, 0, Inf) : non-finite function value

 That is an intrinsic part of nonlinear optimization. Choose your starting point wisely. --------------------------------------------------------------------------- Jeff Newmiller                        The     .....       .....  Go Live... DCN:<[hidden email]>        Basics: ##.#.       ##.#.  Live Go...                                       Live:   OO#.. Dead: OO#..  Playing Research Engineer (Solar/Batteries            O.O#.       #.O#.  with /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. stats12 <[hidden email]> wrote: >Hi, > >Thank you for your comment. I worked on the code again and was able to >make >it work. The only problem I am having right now is that nlm depends on >the >initial value.   > >When the initial value is 1, I get the following estimates >0.1230414 19.6271029 > >when it is 2, I get the following >29.46874 20.01679 > > > >d<-matrix(c(1,1,0,0,0,0,0,0,2,1,0,0,1,1,0,1,2,2,1,0),nrow=10,ncol=2) >h<-matrix(runif(20,0,1),10) >delta<-matrix(c(2,1,0,1,0,1,0,0,2,1,0,0,1,1,1,1,0,2,1,0),nrow=10,ncol=2) > > >out<-vector("numeric",length(1:2)) >integ<-vector("numeric",length(1:10)) > >for (k in 1:2){ >ll<-function(p){ >cmh<-delta[,k]*(h[,k]*log(0.5))+p*log(gamma(1+1/p)) >for(s in 1:10){ >integrand<-function(x) >x^d[s,k]*exp(-x*gamma(1+1/p))^p*p*x^(p-1)*exp(-x*h[s,k]) >integ<-integrate(integrand,0,Inf)\$value >return(integ) >} > >lik<-sum(cmh+log(integ)) >-lik >} >initial<-c(1) >t<-nlm(ll,initial) >out[k]<-t\$estimate >} > >est<-as.vector(out) > > > > > > > > >-- >View this message in context: >http://r.789695.n4.nabble.com/Error-in-integrate-integrand-0-Inf-non-finite-function-value-tp4646868p4646896.html>Sent from the R help mailing list archive at Nabble.com. > >______________________________________________ >[hidden email] mailing list >https://stat.ethz.ch/mailman/listinfo/r-help>PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html>and provide commented, minimal, self-contained, reproducible code. ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.