Re: Anomaly? or at least a surprise.
- To: mathgroup at smc.vnet.net
- Subject: [mg90268] Re: Anomaly? or at least a surprise.
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Fri, 4 Jul 2008 03:56:17 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- 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
On my system, the above expression plots the graph of *ArcTan[x]* and
not the graph of its first derivative.
Plot[D[ArcTan[x]], {x, -10, 10}, PlotRange -> Full]
Plot[ArcTan[x], {x, -10, 10}, PlotRange -> Full]
%% === %
True
$Version
"6.0 for Mac OS X x86 (64-bit) (February 7, 2008)"
Why is that? Because, although D[Arctan[x]] is meaningless, this does
not bother Plot since Plot does not preprocess its arguments (thanks to
the attributes HoldAll). So it evaluates ArcTan[some_value] that returns
some_other_value, then it evaluates D[some_other_value], which does
nothing. The end result is that one gets the graph of arctan(x) without
fuss!.
You can see what is going on with the command Trace:
Plot[D[ArcTan[x]], {x, -10, 10}, PlotRange -> Full] // Trace
{Plot[D[ArcTan[x]],{x,-10,10},PlotRange->Full],
{x=.,Null},{x=.,Null},{{x}=.,{x=.},{x=.,Null},{Null}},
{{{x,-9.99959142857143`},ArcTan[-9.99959142857143`],-1.4711236288784175`},
D[-1.4711236288784175`],-1.4711236288784175`},
[... rest of the output deleted ...]
> says nothing about leaving out the independent variable even when the
> function is of only one variable. 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? Thank you.
The following expressions both correctly plot the graph of d/dx arctan(x):
Plot[Evaluate[D[ArcTan[x], x]], {x, -10, 10},
PlotRange -> Full]
Plot[ArcTan'[x], {x, -10, 10}, PlotRange -> Full]
%% === %
True
Regards,
-- Jean-Marc