       Re: NIntegrate Confusion

• To: mathgroup at smc.vnet.net
• Subject: [mg109744] Re: NIntegrate Confusion
• From: Andrew Moylan <amoylan at wolfram.com>
• Date: Fri, 14 May 2010 08:28:11 -0400 (EDT)

```By default NIntegrate seeks a result with a sufficiently small
*relative* error (PrecisionGoal).

Some of your integrals have 0 as the true integral, for which relative
error is not meaningful. NIntegrate repeatedly subdivides but never
obtains an error estimate sufficiently small compared with the integral
estimate.

It is similar to this example:

In:= NIntegrate[0, {x, 0, 1}]

During evaluation of In:= NIntegrate::ncvb: NIntegrate failed to
converge to prescribed accuracy after 9 recursive bisections in x near
{x} = {0.666031}. NIntegrate obtained 0.` and 0.` for the integral and
error estimates. >>

Out= 0.

In cases where the correct value of your integral might be 0, you should
set the AccuracyGoal option, which specifies an acceptable *absolute*
error (independent of the size of the integral). AccuracyGoal -> 6
specifies that 10^-6 is an acceptably small absolute error.

In:= NIntegrate[0, {x, 0, 1}, AccuracyGoal -> 6]

Out= 0.

As Bob Hanlon suggested, you can also use Chop[...] to tidy up the
numerical results.

Andrew Moylan
Wolfram Research

On 4/14/2010 7:16 PM, sukhrob wrote:
> Hi everybody,
> I'm using Mathematica 7.0 , i would like integrate numerically something
> like Fourier coefficients, my programe code contains:
>
> M = 50; f[t_] = 100 Sin[5 t];
>
> basis = Table[Sin[n t], {n, 1, M}];
>
> coef = 2/Pi*Table[NIntegrate[f[t] Sin[n t], {t, 0, Pi}], {n, 1, M}]
>
> in result it gives :
>
> NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after
> 9 recursive bisections in t near {t} = {2.47283}. NIntegrate obtained
> -3.88578*10^-15 and 7.654706546923104`*^-15 for the integral and error
> estimates.>>
> NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after
> 9 recursive bisections in t near {t} = {2.47283}. NIntegrate obtained
> -3.19189*10^-15 and 1.8799124112361456`*^-14 for the integral and error
> estimates.>>
>
> NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after
> 9 recursive bisections in t near {t} = {0.00254055}. NIntegrate obtained
> 1.2045919817182948`*^-14 and 9.105942246869344`*^-13 for the integral and
> error estimates.>>
>
> General::stop: Further output of NIntegrate::ncvb will be suppressed during
> this calculation.>>
>
> Can anyone help me to solve  that problem. Any help would be very much
> appreciated.