Re: NIntegrate[Abs] bug in v5.1, not v5.0
- To: mathgroup at smc.vnet.net
- Subject: [mg64214] Re: NIntegrate[Abs] bug in v5.1, not v5.0
- From: Maxim <m.r at inbox.ru>
- Date: Mon, 6 Feb 2006 02:49:14 -0500 (EST)
- References: <ds1sk5$g0t$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Sat, 4 Feb 2006 09:37:09 +0000 (UTC), Solomon, Joshua
<J.A.Solomon at city.ac.uk> wrote:
> First, I establish that everything works in v5.0.
>
> In[1]:=
>
> f[x_]:=E^-(Sin[.1+x]^2)-E^-(Sin[.1-x]^2)
>
>
> In[2]:=
>
> {$Version,$ReleaseNumber}
>
> Out[2]=
>
> {5.0 for Mac OS X (June 10, 2003),0}
>
>
> In[3]:=
>
> Timing[NIntegrate[-f[x],{x,0,Pi/2},AccuracyGoal->1]]
>
> Out[3]=
>
> {0.001438 Second,0.125515}
>
>
> In[4]:=
>
> Timing[NIntegrate[Abs[f[x]],{x,0,Pi/2},AccuracyGoal->1]]
>
> Out[4]=
>
> {0.0015 Second,0.125515}
>
>
> Now I try again in v5.1.
>
> In[1]:=
>
> f[x_]:=E^-(Sin[.1+x]^2)-E^-(Sin[.1-x]^2)
>
>
> In[2]:=
>
> {$Version,$ReleaseNumber}
>
> Out[2]=
>
> {5.1 for Mac OS X (October 25, 2004),0}
>
> In[3]:=
>
> Timing[NIntegrate[-f[x],{x,0,Pi/2},AccuracyGoal->1]]
>
> Out[3]=
>
> {0.001286 Second,0.125515}
>
>
> In[4]:=
>
> Timing[NIntegrate[Abs[f[x]],{x,0,Pi/2},AccuracyGoal->1]]
>
>
> This produces no output for several minutes. Then the Kernel crashes. Any
> ideas?
>
> j
Mathematica 5.1 has new methods for numerical integration of piecewise
functions. If you want to emulate the behaviour of Mathematica 5.0,
specify the method explicitly:
In[2]:= NIntegrate[Abs[f[x]], {x, 0, Pi/2}, Method -> GaussKronrod]
Out[2]= 0.12551527
This shows that by default NIntegrate calls Reduce:
Trace[
TimeConstrained[NIntegrate[Abs[f[x]], {x, 0, Pi/2}], 1],
Reduce, TraceInternal -> True]
trying to evaluate something similar to
Reduce[Rationalize[f[x]] >= 0 && 0 < x < Pi/2, x, Reals]
but it doesn't finish in 10 minutes. A seemingly harder example works
without a problem:
In[3]:= Reduce[Rationalize[f[x]] >= 0 && 0 < x < Pi/2, x]
Out[3]= False
Apparently a different algorithm is being used in this case.
Maxim Rytin
m.r at inbox.ru