Use funmake.
(C1) f(x) := q*x^2 + r;
(D1) f(x) := q x^2 + r
(C2) df:funmake(lambda,[[x],diff(f(x),x)]);
(D2) LAMBDA([x], 2 q x)
(C3) df(2);
(D3) 4 q
edA-qa mort-ora-y wrote:
> I need a way to define a function and its derivative as functions. That
> is, I want to accomplish what one might expect the following would do:
>
> f(x) := q*x^2 + r;
> df(x) := diff( f('x), 'x );
>
> But if you do this the x variable in df(x) is in no way related to the x
> variable in f(x). If you try this:
>
> df(x) := diff( f(x), x );
>
> It fails as obviously you are differentiating with whatever is passed to
> df(x), not the symbolic variable x anymore.
>
> I even tried using an intermediary:
>
> eq : q*x^2 + r;
> f(x) := eq;
> df(x) := diff( eq, 'x );
>
> But this also didn't work.
>
> So, how do I do this, that is, create a function and then create its
> derivative (also as a function).
>
> --
> edA-qa mort-ora-y
> Idea Architect
> http://disemia.com/
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima