Message Boards Message Boards

1 Reply
4 Total Likes
View groups...
Share this post:

How trap wrong definite integrals from discontinuous functions

The Wolfram blog by Oleksandr Pavlyk:

Mathematica and the Fundamental Theorem of Calculus
says that "of course" Mathematica's definite integral algorithms do not make the mistake clearly demonstrated by the attached file igdemo.nb .  The last two lines in the calculation should be identical:  one gives 0 and the other alpha.  The 4 lines above those should also be identical; there is a 3 to 1 vote.  The problem comes from the ambiguity in the choice of branch of an inverse trig function appearing in the antiderivative.  I have a very large calculation full of similar integrals.  How can I tell which results are correct and which are nonsense?  By the way, I beg to differ with the terminology in the blog.  A correct antiderivative of a true function is ALWAYS continuous.  If the alleged antiderivative has a jump discontinuity, its derivative is not the original integrand.  The derivative is the integrand plus a Dirac delta function (if distributions are supported) or Undefined (if they are not).  Is any progress being made toward handling this situation properly in Mma?
POSTED BY: Stephen Fulling
Posted 11 years ago
It's perfectly standard in the context of Lebesgue intergration to refer to the "almost everywhere" antiderivative as the antiderivative.  For an absolutely continuous integrand, the   antiderivative is everywhere differentiable (just because an antiderivative is continuous does not mean it is everywhere differentiable), that derivative equals the integrand everywhere,  and we reproduce the familiar results of Riemann integration.  For less continuous functions,  derivative of the antiderivative and the integrand will agree in regions where the integrand is absolutely continuous, and the antiderivative will not be differentiable elsewhere.

As for the substance of your complaint, I think it is a sad fact that all software packages have bugs.  One way of validating the integrals is to use NIntegrate, substituting in random values for free parameters, and comparing against the numericized result for integrate.  Hardly perfect, but catches a lot issues.
POSTED BY: Itai Seggev
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract