Because you are differenciating with respect to a number.
The value of x in the argument of the plot function is substituted
first and then the argument is evaluated, effectively resulting in
attempting to differentiate your function evaluated at numerical
values with respect to those numerical values.
Try the alternative
Plot[D[myFunction[z], z] /. z -> x, {x, 0, 5}]
or
Plot[Evaluate[D[myFunction[x], x] ], {x, 0, 5}]
to force the differentiation to take place first (since Plot has the
HoldAll attribute).
which will work. However you may want to think through why you are
including the unevaluated differentiation within the Plot command
anyway: it will take place at each plot point and thus be quite
inefficient...
Hope this helps,
David
On Aug 3, 6:34 am, Andrew DeYoung <adeyo... at andrew.cmu.edu> wrote:
> Hi,
>
> It seems like Mathematica has difficulty plotting calls to other
> functions. Is this true? For example, can you help me understand why
> the following does not plot?
>
> If I write
>
> myFunction[x_] := x^2;
> Plot[D[myFunction[x], x], {x, 0, 5}]
>
> nothing plots.
>
> If I write
>
> myFunction[x_] := x^2;
> Plot[D[myFunction[x][x], x], {x, 0, 5}]
>
> again, nothing plots.
>
> However, if I compute the derivative of the function outside of the
> Plot command,
>
> myFunction[x_] := x^2;
> myDerivative = D[myFunction[x], x]
> Plot[myDerivative, {x, 0, 5}]
>
> the derivative of x^2 (i.e., 2x) plots correctly.
>
> Can anyone please help me understand why my first two tries do not
> work, but my third try does?
>
> Many thanks in advance.
>
> Andrew DeYoung
> Carnegie Mellon University
> adeyo... at andrew.cmu.edu