MathGroup Archive 2009

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

Search the Archive

Re: HoldAll for Integrate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg97986] Re: HoldAll for Integrate
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Fri, 27 Mar 2009 05:35:12 -0500 (EST)
  • References: <gqfknb$kht$1@smc.vnet.net>

Hi,

compare
x = 10;
SetAttributes[Integrate, HoldAll];


Trace[Block[{x}, Integrate[x^2, x]]]

with

Trace[Integrate[x^2, x]]

and you see, that x^2 is evaluated to 100 but
x is preserved, than 100 dx is computed to 100*x
and than x->10 is substituted again to give
1000

Regards
   Jens


Tammo Jan Dijkema wrote:
> The following commands yield unexpected output:
> 
> x=10;
> Integrate[x^2, {x,0,1}]
> 
> That is because Integrate does not have attributes HoldAll, so that the 
> second command will be interpreted as Integrate[100, {10,0,1}] which is 
> not a command that Integrate can work with (so a warning message is 
> returned).
> 
> However, I can add the attribute HoldAll to Integrate myself:
> 
> SetAttributes[Integrate, HoldAll];
> 
> I'm not very sure what to expect when now trying the same experiment 
> (the correct answer 1/3 would be nice), but the actual output surprised 
> me:
> 
> x=10;
> Integrate[x^2, {x,0,1}]
> 
> Yields as output: 0 (without any warnings). Could anyone explain why I 
> should have expected this result?
> 
> On a side note, I found a similar in the Tech Support column of the 
> Mathematica Journal Volume 6, Issue 2, by Carl Roy. He tried the 
> integral without limits:
> 
> x=10;
> SetAttributes[Integrate, HoldAll];
> Integrate[x^2, x]
> 
> In the journal, the output 1000/3 is mentioned, whereas in Mathematica 
> 7.0.1 this outputs 1000.
> 
> Again, does anyone understand this?
> 
> Regards,
> 
> Tammo Jan Dijkema
> 
> 


  • Prev by Date: Re: How do I hide all input in a Mathematica notebook?
  • Next by Date: Re: What's going on here (Table-generated lists)?
  • Previous by thread: HoldAll for Integrate
  • Next by thread: Re: HoldAll for Integrate