Questions about Integration process

*To*: mathgroup at smc.vnet.net*Subject*: [mg73131] Questions about Integration process*From*: "dimitris" <dimmechan at yahoo.com>*Date*: Sun, 4 Feb 2007 07:09:17 -0500 (EST)

Hello to all! In some cases I would like to know what is being called during the process of evaluation. For example, consider the integral Integrate[BesselJ[2, x]*x^2*Exp[-x + 2], {x, 0, Infinity}] (3*E^2)/(4*Sqrt[2]) N[%] NIntegrate[BesselJ[2, x]*x^2*Exp[-x + 2], {x, 0, Infinity}] 3.91863875559126 3.9186387594626115 As the Implementation Notes for Integrate states: FrontEndExecute[{HelpBrowserLookup["MainBook", "A.9.5", "Integrate"]}] "Many (other) definite integrals are done using Marichev-Adamchik Mellin transform methods. The results are often initially expressed in terms of Meijer G functions, which are converted into hypergeometric functions using Slater's Theorem and then simplified." So, this integral is done by first converting the integrand to an "inert" form representing the integrand product as ( http:// library.wolfram.com/infocenter/Conferences/5832/ ) x^2*MeijerG[{{}, {}}, {{0}, {}}, x - 2]*MeijerG[{{}, {}}, {{1}, {-1}}, x^2/4] E^(2 - x)*x^2*BesselJ[2, x] ---->It would be nice if this (internal) step could be actually "recorded". A few days ago Daniel Lichtblau mentined me the following setting to see explicitly what limits get computed during the evaluation of a definite integral Off[General::spell1] Unprotect[Limit]; Limit[a___] := Null /; (Print[InputForm[limit[a]]]; False) On[General::spell1] E.g. Integrate[1/z, {z, 1 + I, -1 + I, -1 - I, 1 - I, 1 + I}] (*clear previous setting for Limit*) Unprotect[Limit]; Clear[Limit]; Protect[Limit]; ----->Settings like this offer you deeper understanding of Mathematica and I will be glad if somebody can provide me with more (regarding integration of course!). Consider next the integral Timing[Block[{Message}, Integrate[BesselJ[0, x], {x, 0, Infinity}]]] {4.391*Second, 1} I think that this intagral is evaluated using Slater convolution theorem, since application of the Newton-Leibniz formula (first antiderivative through Risch algorithm or Table lookup; then evaluation at endpoints with futher checking for possible singulatities along the path of integration and convergence checking) needs much more time as the following input demonstrates Integrate[BesselJ[0, x], x] Timing[Limit[%, x -> Infinity] - Limit[%, x -> 0]] x*HypergeometricPFQ[{1/2}, {1, 3/2}, -(x^2/4)] {14.608999999999998*Second, 1} ------>So I would like to know if there is settings which show when one definite integral is evaluated using the Newton-Leibniz formula or Marichev-Adamchik/Mellin-Barnes methods. Furthermore, for indefinite integrals, an extended version of the Risch algorithm is used whenever both the integrand and integral can be expressed in terms of elementary functions, exponential integral functions, polylogarithms and other related functions; table lookup take place for elliptic integrals, antiderivatives that require special functions and antiderivatives of special functions. ------>Any ideas how to figure out explicitly this? Dimitris