Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is it possible to take a time derivative of a vector given in some curvelinear coordinate system (i.e. spherical)? Mathematica would need to take into account the time dependence of the basis vectors.

$$ \frac{d}{dt}\vec{r}=\dot{r}\hat{r}+r\dot{\theta}\hat{\theta}+r\sin[\theta]\dot{\phi}\hat{\phi} $$

I bet that there is something built into mathematica already to get the above result, but I can't figure it out.

Edit: Thanks for your answers, they already helped me a lot. In the end I was hoping for a quick way to get:

$$ \frac{d}{dt}\left( \begin{array}{c} f(r,\theta,\phi) \\ 0 \\ 0 \end{array} \right)=\left(\frac{d}{dt}f(r,\theta,\phi)\right) \left( \begin{array}{c} \dot{r} \\ r\dot{\theta} \\ r\sin[\theta]\dot{\phi} \end{array} \right) $$

just by typing

$$ Dt[\{f(r,\theta,\phi),0,0\},t] $$

in Mathematica. I could get this behavior by multiplying the time derivative of $f$ with the result from TransformedField, but this could quickly become tedious with higher time derivatives and more vector components. Is there a more direct way to do it?

Thanks a lot

share|improve this question
Well, if you concluded that there's something built-in why didn't you take a Documentation Centre tour ? As a starter take a look here – Sektor Mar 22 '14 at 10:55
The documentation center tour didn't really show me any examples on what I want to achieve. But my question was not clear in that regard, for which I apologize. I have updated it (see my edit). – ftiaronsem Mar 22 '14 at 12:01

You can do :

TransformedField["Cartesian" -> "Spherical", Dt[{x, y, z}, t], {x, y, z} -> {r, θ, ϕ}] 
 // Simplify
(* {Dt[r, t], r Dt[θ, t], r Dt[ϕ, t] Sin[θ]} *)
share|improve this answer
Thanks a lot, that already started me in the right direction, but I was wondering for a more direct way of taking the time derivative of vectors (arrays) (see my edit). – ftiaronsem Mar 22 '14 at 12:00
I think you already get the time derivative of vectors; if you want it in a different basis, which is what your edit suggests, then this is a different question. – b.gatessucks Mar 22 '14 at 13:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.