Re: variable of integration not localized in Integrate and Sum?
- To: mathgroup at smc.vnet.net
- Subject: [mg63836] Re: [mg63827] variable of integration not localized in Integrate and Sum?
- From: Pratik Desai <pdesai1 at umbc.edu>
- Date: Wed, 18 Jan 2006 02:39:05 -0500 (EST)
- References: <200601170933.EAA07428@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Don Hatch wrote:
>Apparently I need to explicitly localize t in the following,
>otherwise it messes up when I pass in t as the second argument.
> In:
> F[f_, x_] := Integrate[f[x + t], {t, -1/2, 1/2}]
> F[Sin, x]
> F[Sin, t]
> Out:
> 2 Sin[1/2] Sin[x] <---- correct
> 0 <---- ?!?!
>
>
This works, when you say you want to integrate with respect to t on your
RHS, you loose all of your control over changing the variable you
integrate over in your function definition
In[23]:=
Clear[f,F,x,r]
F[f_,r_] := Integrate[f[x + t], {r, -1/2, 1/2}]
F[Sin,t]
F[Sin,x]
Out[25]=
\!\(2\ Sin[1\/2]\ Sin[x]\)
Out[26]=
\!\(2\ Sin[1\/2]\ Sin[t]\)
>This is surprising to me-- I thought that
>the fact that t is the integration variable
>would cause it to be automatically localized, but apparently not.
>To get the right answer, I can say:
> In:
> F[f_, x_] := Module[{t}, Integrate[f[x + t], {t, -1/2, 1/2}]]
> F[Sin, x]
> F[Sin, t]
> Out:
> 2 Sin[1/2] Sin[x] <---- correct
> 2 Sin[1/2] Sin[t] <---- correct
>(note, I really have to use Module, not Block-- it still messes up using
>Block).
>
>The documentation for Integrate doesn't seem to support my hope that t gets
>localized, as far as I could see;
>however, note that exactly the same problem
>occurs for Sum, whose documentation does explicitly state:
> The iteration variable i is treated as local.
>So here is an example that seems to clearly contradict the documentation
>of Sum:
> In:
> F[f_, x_] := Sum[f[x + t], {t, -1/2, 1/2, 1/10}]/11
> F[Identity, x]
> F[Identity, t]
> Out:
> x <---- correct
> 0 <---- ?!?!
>Just as for Integrate, it works properly when I explicitly
>localize using Module (but not Block):
> In:
> F[f_, x_] := Module[{t}, Sum[f[x + t], {t, -1/2, 1/2, 1/10}]/11]
> F[Identity, x]
> F[Identity, t]
> Out:
> x <---- correct
> t <---- correct
>
>Is this a bug in Sum and/or Integrate?
>I'm using Mathematica version 5.2.0.0, on Linux/X.
>
>Don Hatch
>
>
>
- References:
- variable of integration not localized in Integrate and Sum?
- From: Don Hatch <hatch@plunk.org>
- variable of integration not localized in Integrate and Sum?