MathGroup Archive 2006

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

Search the Archive

Re: NIntegrate's Method ->Oscillatory option

  • To: mathgroup at
  • Subject: [mg67457] Re: NIntegrate's Method ->Oscillatory option
  • From: "antononcube" <antononcube at>
  • Date: Mon, 26 Jun 2006 00:12:59 -0400 (EDT)
  • References: <e7lf74$3mm$>
  • Sender: owner-wri-mathgroup at

john.hawkin at wrote:
> Hello all,
> I was wondering what exactly the Method -> Oscillatory option of
> Mathematica's NIntegrate function does.  In the help it says that it
> uses a transformation to handle certain function, like exponentials.

NIntegrate's Oscillatory method is for functions of the form k[a x^n +
b] f[x] over infinite ranges,
where the oscillatory kernel function k is one of Sin, Cos, BesselJ,

> My question is this:  Does it use a specific numerical integration
> algorithm designed to work in these cases, or does it just somehow
> transform the integral so that it can be solved using the standard
> method (which it says is the Gauss-Kronrod)?

The algorithm finds (some of) the zeros of the oscillatory kernel
function, and integrates between them using Gauss-Kronrod quadrature.
Then it uses sequence convergence acceleration via NSum to find the
approximate value of the integral.

Below is an example implementation.

w = 20;
k[x_] := Sin[w*x];
f[x_] := 1/(x + 1)^2;

Plot[k[x]*f[x], {x, 0, 10},  PlotPoints -> 1000, PlotRange -> All]

psum[(i_)?NumberQ] := NIntegrate[k[x]*f[x], {x, i*(1/w)*Pi,  (i +

res = NSum[psum[i], {i, 0, Infinity}, Method -> SequenceLimit,
VerifyConvergence -> False]

exact = N[Integrate[k[x]*f[x], {x, 0, Infinity}]]

Abs[exact - res]/Abs[exact]

> If it uses a different
> algorithm, what is this algorithm commonly called?

Oscillatory's algorithm is usually called "integration between the
zeros". The name implies extrapolation in the infinite range case.

Anton Antonov,
Wolfram Research, Inc.

  • Prev by Date: Re: Quaternion problem-> conversion
  • Next by Date: Re: Listing ALL Options for a mathematica Function
  • Previous by thread: NIntegrate's Method ->Oscillatory option
  • Next by thread: Integrate the Multivariate normal distribution