       Re: Precision available with NIntegrate {Method -> Oscillatory}

• To: mathgroup at smc.vnet.net
• Subject: [mg74053] Re: Precision available with NIntegrate {Method -> Oscillatory}
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Thu, 8 Mar 2007 04:30:12 -0500 (EST)
• Organization: The Open University, Milton Keynes, UK
• References: <eslsev\$q3h\$1@smc.vnet.net>

```Peter wrote:
> Hi.  I'm helping someone with a scientific programming problem, and I
> wanted to get a high accuracy result to use as a reference solution.
> I am able to get 15 digits of accuracy for a non-oscillatory integral,
> but it appears that when I specify the option Method -> Oscillatory
> for NIntegrate, it ignores my precision request:
>
> --------------------------------------------------------------------
> a = 0;
> b = 6706902 * 10^\(-7);
> c = 589300 * 10^(-6);
> d = 9802874 * 10^(-7);
> t = -5026548 * 10^(-6);
> =CE=B1 = 0;
>
> Iint = NIntegrate[(b^2 - 2 d Cos[t + x] b + d^2 + (a + b c
> x)^2)^(-3/2), {x, =CE=B1, Infinity}, {PrecisionGoal -> 15, WorkingPrecision
> -> 30, MaxRecursion -> 200}]
>
>
> NIntegrate::slwcon :
> Numerical integration converging too slowly; suspect one of the
> following: singularity, value of the integration being 0, oscillatory
> integrand, or insufficient WorkingPrecision. If your integrand is
> oscillatory try using the option Method->Oscillatory in NIntegrate.
> More...
>
> 1=2E46869038002327
>
> Cint = NIntegrate[Cos[x]/(b^2 - 2 d Cos[t + x] b + d^2 + (a + b c
> x)^2)^(3/2), {x, =CE=B1, Infinity}, {PrecisionGoal -> 15, WorkingPrecision -
>> 25, MaxRecursion -> 300, Method -> Oscillatory}]
>
> 0=2E2592156
>
> --------------------------------------------------------------------
>
> I'm not concerned about the slow convergence warning on the first
> integral, Iint.  Rather, the second integral, Cint, is only evaluated
> to a precision of 8 digits, despite the explicit request for more in
> the call to Nintegrate.  Does anyone have a suggestion to obtain 15
> digits of precision on the second integral?
>
> Thanks,
> Peter
>
>

Set the system variable \$MinPrecision to 15.

In:=
a = 0;
b = 6706902/10^7;
c = 589300/10^6;
d = 9802874/10^7;
t = -5026548/10^6;

Block[{\$MinPrecision = 15},
Cint = NIntegrate[Cos[x]/(b^2 - 2*d*Cos[t + x]*b +
d^2 + (a + b*c*x)^2)^(3/2), {x, 0, Infinity},
{PrecisionGoal -> 15, WorkingPrecision -> 30,
MaxRecursion -> 300, Method -> Oscillatory}]]

Precision[Cint]

Out=
0.2592155970460264

Out=
15.988

Regards,
Jean-Marc

```

• Prev by Date: Re: Efficient repeated use of FindRoot
• Next by Date: Re: Efficient repeated use of FindRoot
• Previous by thread: Re: Precision available with NIntegrate {Method -> Oscillatory}
• Next by thread: Re: Precision available with NIntegrate {Method -> Oscillatory}