pdiff and chain rule problem



No, this isn't a bug.

 (%i37) load(pdiff)$
 (%i38) depends(g,x)$
 (%i39) diff(f(g(x)),x);
 (%o39) g[(1)](x)*f[(1)](g(x))

 (%i40) convert_to_diff(%);
 (%o40) ('diff(g(x),x,1))*(at('diff(f(g34216),g34216,1),[g34216=g(x)]))

The variable g34216 differs from the way it's printed :(

 (%i41) subst([g(x)=g, part(%,2,1,2) = g],%);
 (%o41) ('diff(g,x,1))*(at('diff(f(g),g,1),[g=g]))

The 'at' stubbornly refuses to evaluate :(

 (%i42) ev(%,at);
 (%o42) ('diff(g,x,1))*(at('diff(f(g),g,1),[g=g]))

Barton

-----maxima-bounces at math.utexas.edu wrote: -----

>To:?<maxima at math.utexas.edu>
>From:?nijso?beishuizen?<nijso at hotmail.com>
>Sent?by:?maxima-bounces at math.utexas.edu
>Date:?03/03/2010?04:13PM
>Subject:?[Maxima]?pdiff?and?chain?rule?problem
>
>
>
>
>
>Hello?all,
>
>I?would?like?to?obtain?the?derivative?of?f(g(x))?with?respect?to?x,?using
>the?chain?rule,?without?declaring?dependencies.?So?I?thought?I'd?try
>pdiff.
>
>kill(all);
>load(pdiff);
>ans:diff(f(g(x)),x);
>?g???(x)?f???(g(x))
>??(1)?????(1)
>
>ok,?but?now?I?want?it?back?into?the?'normal'?diff?format
>convert_to_diff(ans);
>????d??????????????d????????????????????????!
>?(--?(g(x)))?(-------?(f(g16016))!?????????????)
>???dx??????????dg16016?????????????????!
>??????????????????????????????????????????????!g16016?=?g(x)
>
>
>I?was?hoping?on?an?answer?without?the?'16016'?stuff.?A?bug?
>
>Best?regards,
>Nijso
>
>
>
>Express?yourself?instantly?with?MSN?Messenger!?MSN
>Messenger_______________________________________________
>Maxima?mailing?list
>Maxima at math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima