At the end of this 90 minute lecture by Stephen Wolfram on the history of the development of Mathematica, Wolfram takes questions from the audience. One of those questions asked how the Integrate[] function chooses the method to compute the integral, whether substitution, integration-by-parts, and so on.

Stephen Wolfram answered "None of those". He then went on to briefly mention a higher level method and I did not quite understand the name of the method nor the way this does Integration. But, it was an all too brief answer.

Does anyone know what the details are on the methods employed by Mathematica to do this integration operation. Wolfram also mentioned that the methods displayed in the "step-by-step" details is a "complete fake" (his words), invented purely for pedagogical reasons. Wolfram also mentioned that the problem of converting the answer to the Integrate function into something meaningful and useful to the user was the bigger part of the problem.

  • $\begingroup$ A related question. $\endgroup$ – J. M. is in limbo Jul 4 '16 at 17:17
  • $\begingroup$ And see here too: dl.acm.org/… $\endgroup$ – Szabolcs Jul 4 '16 at 17:27
  • $\begingroup$ Thanks for the links -- I did search for a preexisting answer but did not find one. Searched on "Integrate methods" and a few other things. I did not use the term "implementation" though. $\endgroup$ – K7PEH Jul 4 '16 at 18:30
  • 1
    $\begingroup$ The short answer is that most functions you know are special cases of the Meijer $G$ and generalized hypergeometric $_pF_q$ functions, which generally integrate to some other variant of themselves. Typically if you start with a simple integrand the corresponding $G$ / $_pF_q$ function will have a lot of structure, and the integration will respect most of that structure, which means there's a high chance that you're still on a pretty special case of the $G$ / $_pF_q$ function that you can represent using simpler functions. The challenge is finding that representation. $\endgroup$ – Emilio Pisanty Jul 5 '16 at 0:52
  • $\begingroup$ You also probably mean "complete fake" instead of "total crock" if you want to attribute an exact quote to Wolfram. $\endgroup$ – Emilio Pisanty Jul 5 '16 at 0:56

I am definitely not an expert in this field, but I believe that some part of Integrate uses Risch's algorithm. And that, to my understanding, is also the reason why it's not easy to show the "steps" Integrate takes to solve an integral. The intermediate "steps" are not meaningful to most humans. Some more references are in the page "Some Notes On Internal Implementation" in the "Differentiation and Integration" section.

  • $\begingroup$ @J.M. thanks for the edit. I should have done that myself. $\endgroup$ – user21 Jul 4 '16 at 17:21
  • $\begingroup$ I'd have added a link to the part in the docs where Risch is mentioned, but I hate browsing the docs on a smartphone… :) $\endgroup$ – J. M. is in limbo Jul 4 '16 at 17:24
  • $\begingroup$ @J.M. done that. $\endgroup$ – user21 Jul 4 '16 at 17:30
  • $\begingroup$ Thanks for the link to the Risch Algorithm. I spent some time just now looking at that. I think I will end my query though after I read where it takes about 100 pages to describe the algorithm. I am curious but not that curious to wade through 100 pages. I see though that it was rather recent, 1969, my senior year as an undergrad. $\endgroup$ – K7PEH Jul 4 '16 at 18:33
  • $\begingroup$ @K7, a probably gentler introduction would be the book by Geddes/Czapor/Labahn, if you're up for it. Or the one by Bronstein. $\endgroup$ – J. M. is in limbo Jul 4 '16 at 18:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.