Re: Dt "gradient" (dumb title, sorry)
- To: mathgroup at smc.vnet.net
- Subject: [mg81091] Re: Dt "gradient" (dumb title, sorry)
- From: "Chris Chiasson" <chris at chiasson.name>
- Date: Wed, 12 Sep 2007 03:44:50 -0400 (EDT)
- References: <fc4ht0$e8q$1@smc.vnet.net> <46E64FE6.8030903@gmail.com>
I agree with your assessment. I also think the present behavior should
be changed. Do you?
On 9/11/07, Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com> wrote:
> Chris Chiasson wrote:
>
> > I wanted a list of different total derivatives, so I fed in the
> > familiar {{vars},n} syntax to Dt. Dt took it without complaint, but I
> > don't trust the results:
>
> The "familiar {{vars, n} syntax" is explicitly documented for the
> partial derivative operator D only. I have found no reference or mention
> of this syntax for the total derivative operator in the documentation
> center, the 5.2 online help, the Mathematica book, and Michael Trott's
> work. (Of course this does not mean that such references do not exist,
> but they seem hard to find.)
>
> > In[1]:= Dt[z[x,y],{x,1}]
> > Dt[z[x,y],{y,1}]
> > Dt[z[x,y],{{x,y},1}]
> >
> > (*this paste of "copy as plain text" shows derivatives as exponents;
> > it's not my doing and isn't the subject of this post*)
> > Out[1]= Dt[y,x] (z^(0,1))[x,y]+(z^(1,0))[x,y]
> > Out[2]= (z^(0,1))[x,y]+Dt[x,y] (z^(1,0))[x,y]
> > Out[3]= {(z^(1,0))[x,y],(z^(0,1))[x,y]}
> >
> > I think out 3 should be a list containing the expression for out 1 and
> > the expression for out 2. It seems like Dt decided to ignore the
> > dependence of y on x in the first entry, and the dependence of x on y
> > in the second entry.
>
> Another explanation (or interpretation of this behavior) is that
> whenever Dt is fed with an argument of the form {{vars}, n} Dt calls D
> instead and we get a list of partial derivatives. That would explain why
> Dt does not complain and produces a result identical to D's.
>
> In[1]:= Dt[z[x, y], {{x, y}, 1}]
>
> Out[1]=
> (1,0) (0,1)
> {z [x, y], z [x, y]}
>
> In[2]:= D[z[x, y], {{x, y}, 1}]
>
> Out[2]=
> (1,0) (0,1)
> {z [x, y], z [x, y]}
>
>
> > Please let me know if my interpretation/expectation is wrong. Thanks.
>
> You can mimic the behavior of D and get the expected result with Dt
> using Thread and a one dimensional list of variables as in
>
> In[3]:= Thread[Dt[z[x, y], #] &[{x, y}]]
>
> Out[3]=
> (0,1) (1,0)
> {Dt[y, x] z [x, y] + z [x, y],
>
> (0,1) (1,0)
> z [x, y] + Dt[x, y] z [x, y]}
>
>
> Best regards,
> --
> Jean-Marc
>
--
http://chris.chiasson.name/