Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

Re: NIntegrate's Method ->Oscillatory option

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

john.hawkin at gmail.com 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,
BesselY.


>
> 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 +
1)*(1/w)*Pi}]

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