Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

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


  • Prev by Date: Re: record intermediate steps
  • Next by Date: Re: Problem with new Mathematica Installation on Linux
  • Previous by thread: Re: Boole does not work with symbolic limits in Integrate
  • Next by thread: Exporting expressions in Latex