Re: Higher order total derivatives
- To: mathgroup at smc.vnet.net
- Subject: [mg81583] Re: Higher order total derivatives
- From: dh <dh at metrohm.ch>
- Date: Fri, 28 Sep 2007 02:13:54 -0400 (EDT)
- References: <fdf2qh$2ik$1@smc.vnet.net>
Hi Janus,
Mathematica is a pattern matcher. The pattern Dt[x, {t, 2}] does not
appear in your definitions. Specifically, it is not interpreted as
Dt[Dt[x,t],t]. Therefore, you must a give a rule that unravels
Dt[x,{t,2}]. E.g.:
Unprotect[Dt];
Dt[x_,{t,0}]:=x;
Dt[x_,{t,n_}]:=Dt[Dt[x,t],{t,n-1}];
I associate the rule with Dt because t is too deeply nested for an
association.
hope this helps, Daniel
janus wrote:
> I am trying to avoid explicit specifying functional dependencies on
> time in a dynamical system.
> Total derivatives (Dt) seems like the right thing, but I can't get
> Mathematica to make the right inferences for higher order derivatives.
>
> Consider a simple example:
>
> Block[{a, v, x, t},
> t /: Dt[v, t] = a;
> t /: Dt[x, t] = v;
> Dt[x, {t, 2}]
> ]
>
> Output:
>
> Dt[x, {t, 2}]
>
> What would I have to do to make Dt[x,{t,2}] come out as "a"?
>
> Nest[Dt[#, t] &, x, 2] gives the right answer, but I would rather not
> have to go this way
>
> /Janus
>
>