I am late to this discussion so forgive me if I am being redundant.  It 
appears to me that the integral from 0 to infinity of log-gamma may 
diverge to infinity.  Equation 6.1.50 of Abramowitz & Stegun shows that a 
re-expression of lnGamma(x) and the Stirling approximation involves 
(x-1/2)*log(x) -x along with other terms.  This term appears to dominate 
the integral and itself diverge.  It is worth checking out.


> integrate(lgamma, lower = 0, upper = 10)
43.24636 with absolute error < 1.6e-11
> integrate(lgamma, lower = 0, upper = 100)
15438.12 with absolute error < 1.4
> integrate(lgamma, lower = 0, upper = 1000)
2701843 with absolute error < 254
> integrate(lgamma, lower = 0, upper = 10000)
385485116 with absolute error < 18464

> gterm <- function(x){(x-.5)*log(x)-x}
> integrate(gterm,lower=0,upper=10)
33.61633 with absolute error < 1.1e-05
> integrate(gterm,lower=0,upper=100)
15345.59 with absolute error < 1.2
> integrate(gterm,lower=0,upper=1000)
2700923 with absolute error < 252
> integrate(gterm,lower=0,upper=10000)
385475926 with absolute error < 18462
> 

Joseph F. Lucke
Senior Statistician
Research Institute on Addictions
University at Buffalo
State University of New York
1021 Main Street
Buffalo, NY  14203-1016
Office: 716-887-6807
Fax:     716-887-2510
http://www.ria.buffalo.edu/profiles/lucke.html




"Andreas  Wittmann" <andreas_wittmann@gmx.de> 
Sent by: r-help-bounces@r-project.org
04/22/2009 03:28 AM

To
r-help@r-project.org
cc

Subject
[R] integrate lgamma from 0 to Inf






Dear R users,

i try to integrate lgamma from 0 to Inf. But here i get the message 
"roundoff error is detected in the extrapolation table", if i use 1.0e120 
instead of Inf the computation works, but this is against the suggestion 
of integrates help information to use Inf explicitly. Using stirlings 
approximation doesnt bring the solution too.

## Stirlings approximation
lgammaApprox <- function(x)
{
  0.5*log(2*pi)+(x-(1/2))*log(x)-x
}

integrate(lgamma, lower = 0, upper = 1.0e120)
integrate(lgammaApprox, lower = 0, upper = 1.0e120)
> integrate(lgamma, lower = 0, upper = 1.0e120)
1.374051e+242 with absolute error < 3.2e+235
> integrate(lgammaApprox, lower = 0, upper = 1.0e120)
1.374051e+242 with absolute error < 3.2e+235

integrate(lgamma, lower = 0, upper = Inf)
integrate(lgammaApprox, lower = 0, upper = Inf)
> integrate(lgamma, lower = 0, upper = Inf)
Fehler in integrate(lgamma, lower = 0, upper = Inf) : 
  roundoff error is detected in the extrapolation table
> integrate(lgammaApprox, lower = 0, upper = Inf)
Fehler in integrate(lgammaApprox, lower = 0, upper = Inf) : 
  roundoff error is detected in the extrapolation table


Many thanks if you have any advice for me!

best regards

Andreas
--

______________________________________________
R-help@r-project.org 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.


	[[alternative HTML version deleted]]


