MathGroup Archive 2013

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

Search the Archive

deterministic integration

  • To: mathgroup at
  • Subject: [mg129929] deterministic integration
  • From: Alex Krasnov <akrasnov at>
  • Date: Wed, 27 Feb 2013 03:02:57 -0500 (EST)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:

This issue has already been discussed on this list, but the previous 
solutions are unsatisfactory. Integrate returns non-deterministic results 
depending on machine speed and kernel cache state. Example (Mathematica 

In:	Assuming[Element[z, Reals], Integrate[1/Sqrt[x^2+y^2+z^2], {x, -1, 1}, {y, -1, 1}]]
Out:	-4*(z*ArcCot[z*Sqrt[2 + z^2]] + Log[1 - I*z] + Log[(1 + I*z)/(3 + z^2 + 2*Sqrt[2 + z^2])])

In:	Assuming[Element[z, Reals], Integrate[1/Sqrt[x^2+y^2+z^2], {x, -1, 1}, {y, -1, 1}]]
Out:	-4*(z*ArcCot[z*Sqrt[2 + z^2]] + Log[(1 + z^2)/(3 + z^2 + 2*Sqrt[2 + z^2])])

The previous solutions involve adjusting the machine speed and clearing 
the kernel cache before each evaluation. This strategy attempts to achieve 
the least transformed result, though this is presumably not guaranteed. 
Instead, how can one achieve the most transformed result? The behavior of 
Integrate appears to be similar to that of Refine, Simplify, FullSimplify. 
However, unlike the latter, Integrate does not expose a TimeConstraint 
option. How can one achieve the effect of TimeConstraint -> Infinity? Is 
the absence of this option related to the undecidability of Risch's 
algorithm or is the non-determinism entirely in a subsequent 
simplification phase?


  • Prev by Date: NIntegrate function
  • Next by Date: Re: NIntegrate function
  • Previous by thread: Re: NIntegrate function
  • Next by thread: Re: deterministic integration