MathGroup Archive 2009

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

Search the Archive

Re: NIntegrate when integral is zero

  • To: mathgroup at smc.vnet.net
  • Subject: [mg103197] Re: NIntegrate when integral is zero
  • From: antononcube <antononcube at gmail.com>
  • Date: Thu, 10 Sep 2009 07:21:23 -0400 (EDT)
  • References: <h87phe$5h8$1@smc.vnet.net>

Hi,

I think your question is not so much about a Method option value, but
about AccuracyGoal and PrecisionGoal values.
Consider this equal to 0 integral:

In[21]:= NIntegrate[x - 1/2, {x, -1, 2}]

During evaluation of In[21]:= NIntegrate::slwcon:Numerical integration
converging too slowly; suspect one of the following: singularity,
value of the integration is 0, highly oscillatory integrand, or
WorkingPrecision too small. >>

During evaluation of In[21]:= NIntegrate::ncvb:NIntegrate failed to
converge to prescribed accuracy after 9 recursive bisections in x near
{x} = {-0.736375}. NIntegrate obtained -4.33681*10^-17 and
2.5638670873850966`*^-16 for the integral and error estimates. >>

Out[21]= 0``16.362829735502853

We get the messages because the default option values of AccuracyGoal
and PrecisionGoal are Infinity and 6 respectively. Neither can be
satisfied with the global adaptive bisection method of improving the
integral estimates. So we need to decide with what accuracy we get 0:

In[20]:= NIntegrate[x - 1/2, {x, -1, 2}, AccuracyGoal -> 4]

Out[20]= 1.249000902703301*^-16


So your function can be redefined as:

\[CapitalDelta][(\[Delta]_)?NumericQ] := Block[{\[CapitalDelta]},
       SpecialPoint = Sign[\[Delta]] - \[Delta];
        MeanOfMyDistribution[(\[CapitalDelta]_)?NumericQ] :=
          NIntegrate[x*PDF[StudentTDistribution[2],
                Tan[(x + \[Delta])*(Pi/2)] - \[CapitalDelta]]*
      Sec[(Pi/2)*(x + \[Delta])]^
                2*(Pi/2), {x, -1, SpecialPoint, 1},
            AccuracyGoal -> 14];
        FindRoot[
     MeanOfMyDistribution[\[CapitalDelta]] == 0, {\[CapitalDelta],
      0}][[1,
           2]]];


Then we get:

In[15]:= \[CapitalDelta][0.9]
Out[15]= -0.03390656657860691

In[16]:= MeanOfMyDistribution[%]
Out[16]= 0``16.53594543679524

(I have put value to Method )

Anton Antonov


On Sep 9, 4:38 am, Alexey <lehi... at gmail.com> wrote:
> Hello,
> My goal is to find a value of a parameter of the integrand function
> for which integral becomes equal zero. What a value of "Method" option
> is appropriate in my case?
> Here is the function:
>
> \[CapitalDelta][\[Delta]_?NumericQ] :=
>  Block[{\[CapitalDelta]}, SpecialPoint = Sign[\[Delta]] - \[Delta];
>   MeanOfMyDistribution[\[CapitalDelta]_?NumericQ] :=
>    NIntegrate[(x PDF[
>        StudentTDistribution[
>         2], (Tan[(x + \[Delta]) Pi/2] - \[CapitalDelta])] Sec[\[P=
i]/
>           2 (x + \[Delta])]^2 \[Pi]/2), {x, -1, SpecialPoint, 1=
}];
>   FindRoot[
>     MeanOfMyDistribution[\[CapitalDelta]] == 0, {\[CapitalDelta],
>      0}][[1, 2]]]
> \[CapitalDelta][.9]
>
> (I am using Mathematica 7.01)



  • Prev by Date: Re: Mathematica 7.0.0 running on Mac OSX Snow Leopard ?
  • Next by Date: Re: Re: inconsistent synatx for FillingStyle
  • Previous by thread: NIntegrate when integral is zero
  • Next by thread: Minimal number of transformations