Re: Anomaly? or at least a surprise.
- To: mathgroup at smc.vnet.net
- Subject: [mg90271] Re: Anomaly? or at least a surprise.
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Fri, 4 Jul 2008 03:56:52 -0400 (EDT)
- References: <g4i942$3cr$1@smc.vnet.net>
Steve Gray wrote: > Doing D[ArcTan[x], x] gives 1/(x^2+1) as expected. > Doing Plot[D[ArcTan[x]],{x,-10,10},PlotRange->Full] with no variable > to differentiate by gives a correct plot (!) This is surprising - Help > says nothing about leaving out the independent variable even when the > function is of only one variable. Note that D[ArcTan[x]] does not evaluate to 1/(x^2+1), but to ArcTan[x]. This is consistent with D[f,x,x] being the double derivative, D[f,x,x,x] the triple derivative, etc. D[f] is the "zeroth" derivative, i.e. it does nothing. > Now, doing > Plot[D[ArcTan[x], x], {x, -10, 10}, PlotRange -> Full] > gives error messages such as > > General::ivar: -9.18326 is not a valid variable. >> > General::ivar: -9.59143 is not a valid variable. >>, etc. > > I thought that D[ArcTan[x], x] and 1/(x^2+1) should behave identically > in the Plot statement. > > Is this behavior something I should know? > Yes, this is related to evaluation order and the Hold* attributes. Plot has the HoldAll attribtue, i.e. its arguments do not get evaluated before Plot sees them. So Plot substitutes a number for x in D[ArcTan[x],x], and not in 1/(x^2+1). Two solutions: Plot[Evaluate[D[ArcTan[x], x]], {x, -10, 10}] or Plot[D[ArcTan[x],x], {x,-10,10}, Evaluated->True]