Re: Bug in NIntegrate[]?

*To*: mathgroup at smc.vnet.net*Subject*: [mg126904] Re: Bug in NIntegrate[]?*From*: Bob Hanlon <hanlonr357 at gmail.com>*Date*: Fri, 15 Jun 2012 15:33:39 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201206150741.DAA24405@smc.vnet.net>

NIntegrate first tries to evaluate its argument symbolically and evaluates to 1 since your definition defines f as one for symbolic input. You could change your default to f[x_?NumericQ] = 1; to preclude evaluation for symbolic input; however, it would be better to define f using Piecewise. f[x_] := Piecewise[{{1, 0 <= x <= 1}}] Bob Hanlon On Jun 15, 2012, at 3:41 AM, GS <vokaputs at gmail.com> wrote: > I define the function f[x] as follows: > > f[x_] := 0 /; x < 0 || x > 1; > f[x_] := 1 > > It is zero outside of the interval [0,1]. This can be verified by plotting > Plot[f[x], {x, -1, 2}] > > Now I integrate it from -1 to 2: > In[270]:= NIntegrate[f[x], {x, -1, 2}] > Out[270]= 3. > > The result should be 1, but it is 3. Clearly Mathematica ignores the fact that f[x] is zero outside of [0,1]. > > This caused a lot of headache for me recently when I encountered such behavior in one of my research code. > GS >

**References**:**Bug in NIntegrate[]?***From:*GS <vokaputs@gmail.com>