MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Problem with complex integration in Mathematica 7.0.1

  • To: mathgroup at smc.vnet.net
  • Subject: [mg121168] Problem with complex integration in Mathematica 7.0.1
  • From: Tom D <tomdickens at att.net>
  • Date: Thu, 1 Sep 2011 06:05:06 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

In doing some research involving integration in the complex plane,
over vertical contours (inversion of Mellin transforms), I've noticed
an issue with Mathetica 7.0.1. I've done these same calculations in
v3.0 and don't see the same problem.

I can boil it down to an integration with a single Gamma function as
the integrand. Take f[s_] := Gamma[-s]; since Gamma has poles at
negative integers and 0, f[] will have poles at the positive integers.

The problem is that when I specify the infinite vertical contour using
just the endpoints, the value of the integral does not depend on the
real part of the contour ! However, it must, since the contour is
being moved past the poles oon the real axis. For example,

In[287]:= f[s_] := Gamma[-s]

In[288]:= NIntegrate[
 f[s], {s, 0.9 - I \[Infinity], 0.9 + I \[Infinity]}]

During evaluation of In[288]:= NIntegrate::slwcon: Numerical
integration converging too slowly; suspect one of the following:
singularity, value of the integration is 0, highly oscillatory
integrand, or WorkingPrecision too small. >>

During evaluation of In[288]:= NIntegrate::ncvb: NIntegrate failed to
converge to prescribed accuracy after 9 recursive bisections in s near
{s} =
{1.63072643374912722470619778528907451971744544067085196095506521276*10^-29
I}. NIntegrate obtained 5.04373+146.59 I and 25.32245011719028` for
the integral and error estimates. >>

Out[288]= 5.04373 + 146.59 I

In[289]:= NIntegrate[
 f[s], {s, 1.9 - I \[Infinity], 1.9 + I \[Infinity]}]

During evaluation of In[289]:= NIntegrate::slwcon: Numerical
integration converging too slowly; suspect one of the following:
singularity, value of the integration is 0, highly oscillatory
integrand, or WorkingPrecision too small. >>

During evaluation of In[289]:= NIntegrate::ncvb: NIntegrate failed to
converge to prescribed accuracy after 9 recursive bisections in s near
{s} =
{1.63072643374912722470619778528907451971744544067085196095506521276*10^-29
I}. NIntegrate obtained 5.04373+146.59 I and 25.32245011719028` for
the integral and error estimates. >>

Out[289]= 5.04373 + 146.59 I

(* no redo these these integrals adding an intermediate point to the
path, on the real axis *)

In[291]:= NIntegrate[
 f[s], {s, 0.9 - I \[Infinity], 0.9, 0.9 + I \[Infinity]}]

Out[291]= 0. - 3.97173 I

In[290]:= NIntegrate[
 f[s], {s, 1.9 - I \[Infinity], 1.9, 1.9 + I \[Infinity]}]

Out[290]= -2.28328*10^-12 + 2.31145 I

Note that when I put in the intermediate point on the real axis (0.9
or 1.9) I get results that change, as they should, when I move the
path past the pole at s=1, and I don't see the convergence warnings.
Is this a clue as to what is gong on?

So, does anyone understand why this is happening, or is it a true bug
that should be reported? It really had me confused for a while...

Thanks,
Tom




  • Prev by Date: Re: Mathematica loop help
  • Next by Date: webMathematica KernelTimeLimit question
  • Previous by thread: Re: Mathematica loop help
  • Next by thread: Re: Problem with complex integration in Mathematica 7.0.1