
deterministic integration
Posted:
Feb 27, 2013 3:03 AM


This issue has already been discussed on this list, but the previous solutions are unsatisfactory. Integrate returns nondeterministic results depending on machine speed and kernel cache state. Example (Mathematica 8.0.4):
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 nondeterminism entirely in a subsequent simplification phase?
Alex

