# How to define a variable as a function of another variable?

I want to define a variable q which is a function of t. And I want to define another variable qdot = dq/dt.

Then what I want to archive is that if I have a function f = a*Sin[q], and when I take the derivative df = D[f,t], Mathematica returns:

a*qdot*Cos[q].


Is there a way to do this?

-
Try using Dt[] instead of D[] – belisarius has settled Aug 20 '13 at 18:58
You mean like this: f[t_] := a*Sin[q[t]]; D[f[t], t] gives a Cos[q[t]] q'[t] !Mathematica graphics – Nasser Aug 20 '13 at 19:13
@belisarius The problem with Dt[] is that the constant in my function also got differentiated. – auzn Aug 22 '13 at 4:14
@Nasser I tried your suggestion and it gives me a good result. I can even define q'[t_]:=qdot[t], so D[f[t],t] gives Cos[q[t]]qdot[t] – auzn Aug 22 '13 at 14:17
@Nasser If this works for the OP, please consider posting an answer:) – Kuba Sep 23 '13 at 23:51

The total derivative Dt will give you an answer assuming every symbol has a derivative, unlike the partial derivative D. To protect your constant, you can give it the attribute Constant.

SetAttributes[a, Constant]
f = a Sin[q];
Dt[f, t]
(* a Cos[q] Dt[q, t] *)

-
Nice experiment – belisarius has settled Jun 6 at 1:12
Yes, definitely a worthwhile effort. I shall endeavor to do the same, my good sir! (+1) – MarcoB Jun 9 at 21:22