differential operator



On Mon, Mar 29, 2010 at 3:20 PM, ?????? ?????? <aeol at mail.ru> wrote:
> Hello,
>
> I'm currently thinking of switching from Maple to Maxima in my research
> work. Unfortunately, I encountered the following problem. I often deal with
> functions in general form, e.g., u(x), u(2*x), f(g(t)), etc. What I need is
> to obtain their derivatives:
> diff(u(x), x) = u'(x),
> diff(u(2*x), x) = 2*u'(2*x),
> diff(f(g(t)), t) = f'(g(t))*g'(t)*t,
> and so on.
> But apparently Maxima doesn't have a proper way to display this. More
> specific, it doesn't have operator form of differentiation. In Maple it is
> "D" operator: if you have a function of one argument named f, then D(f)
> denotes its derivative, regardless of what argument you supply to it. In
> Maxima you cannot denote the derivative of a function without explicitly
> specifying its arguments, and that is the reason why, for example, it cannot
> apply chain rule to differentiating f(g(t)).
>
> Is there any way to handle this problem? Is it possible to write a function
> that will act as a differential operator?

You can use the pdiff package:

(%i1) load(pdiff)$
(%i2) diff(f(g(t, t^2)), t);
(%o2) (g[(1,0)](t,t^2)+2*t*g[(0,1)](t,t^2))*f[(1)](g(t,t^2))

The subscripts are used to denote (partial) derivatives.

Andrej