Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

High precision NIntegrate problem. Please help!

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60298] High precision NIntegrate problem. Please help!
  • From: a_noether_theorem at yahoo.com
  • Date: Sat, 10 Sep 2005 06:46:47 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

I'm trying to numerically evaluate a particularly nasty integral, and
no matter what I do, I can't get Mathematica to give me an answer without
complaining, and the answer seems to change as I change the precision
options, and continues to change up to arbitrary levels of precision.
I could really use some help.

I've tried every combination of options I could, but nothing works.

In case you care what the function is, it's the following.  Otherwise,
skip what's between the lines.

-------------------------------------------------------------
I 1st evaluate the following sum:

1/( I omega_n - e0) 1/( I omega_n - e1) 1/( I omega_n - e2) 1/( I
omega_n - e3)

from n=-Infinity to Infinity, where omega_n = (2 n + 1) Pi/beta

The sum can be done analytically by contour integration and Mathematica can
also do the sum.  Anyhoo, it leads to a longish expression that I need
to integrate.  Here,

e0 = t1 Cos[x] + t2 Cos[y] - mu
e1 = t1 Cos[x+X1] + t2 Cos[y+Y1] - mu
e2 = t1 Cos[x+X2] + t2 Cos[y+Y2] - mu
e3 = t1 Cos[x+X3] + t2 Cos[y+Y3] - mu

and t1, t2, mu, beta, X1.., Y1... are just some numbers I choose.  This
is a Feyman diagram calculation, if anyone cares.   I evaluate this
with a few {Xi,Yi} sets.
----------------------------------------------------------------------

I've tried every option in NIntegrate and
NIntegrateInterpolatingFunction and Mathematica complains relentlessly.  I've
set $MinPrecision->1000, WorkingPrecision-> 1000, MinRecursion->1000,
MaxRecursion-> 1000000, SingularityDepth -> 1000.  I've tried
Rationalize[..], SetPrecision[..,1000] and everything I could think of.

No matter what I do, it still complains.

My favorite is when it seems to just give up:

"NIntegrate::agpginf: Both Accuracy and Precision goals are
sufficiently large  to allow effectively zero tolerance.  The numerical
algorithm cannot solve the problem exactly."

Anyhoo, *I think* the answer is neither zero nor infinity, at least not
for all combinations of arguments I'm trying,  but I can't get a
consistent answer, especially for some funny symmetrical values of
{Xi,Yi}.  I've tried writing a routine in c, and that hasn't been
sucessful yet.  I think the function has cancelling singularities, but
I'm a little nervous throwing out points in my Reimann sums that =
NAN/Indeterminite.

Soooooooo, is there any way to convince Mathematica to give me a guaranteed
level of precision, assuming I'm willing to wait a while for the
answer?  I assume there is, but I'm baffled by the options.

Any help would be very greatly appreciated.

-john


  • Prev by Date: Re: A very EZ Question! Make a Graph!
  • Next by Date: Solving 2D scalar wave equation?
  • Previous by thread: Re: Timed Notebooks for Student Take-home examinations
  • Next by thread: Re: High precision NIntegrate problem. Please help!