In 3 dimensions, angular velocity is given as:

$$\boldsymbol{\omega} = \frac{1}{2} \nabla \times \boldsymbol{v}$$

How can I use mathematica to solve for velocity $\boldsymbol{v}$, if I give a value of constant angular velocity $\boldsymbol{\omega} = (1,1,1)$ ?

So far I have:

{w1, w2, w3} = 
 1/2 * Curl [{v1, v2, v3}, {r, θ, ϕ}, "Spherical"] // Expand

I tried:

DSolve[{1, 1, 1} == 
  1/2 *Curl [{v1, v2, v3}, {r, θ, ϕ}, "Spherical"], v1, v2, v3]

without success.

Here is the mathematica terminal display:

enter image description here

I realise that a time variable needs to be included, for change in velocity, as radial distance changes about the centre of rotational motion.


The curl is a differential operator, yes? You haven't specified anywhere that v1, v2, and v3 are actually functions of anything, so Mathematica doesn't know what it means to take their curl. If you notice, the result of Curl[...] that you've produced looks awfully simple.

You might, in this case, try writing:

Curl[{v1[r, \[Theta], \[Phi]], v2[r, \[Theta], \[Phi]], 
  v3[r, \[Theta], \[Phi]]}, {r, \[Theta], \[Phi]}, "Spherical"]


enter image description here

On the other hand, I'm not sure that Mathematica can solve a simultaneous set of three differential equations which are each in three variables... but this way, you'll at least get the curl and can go from there?

(I should also note that your DSolve syntax isn't correct—you want to provide a list of things for which to solve, e.g. {v1,v2,v3}, then the variable or variables. Please read the included documentation on DSolve.)


Another option is to use:

$$\boldsymbol{v} = \boldsymbol{\omega} \times \boldsymbol{r}$$

In mathematica this is:

v -> {w1, w2, w3}\[Cross]{x, y, z}


v -> {-w3 y + w2 z, w3 x - w1 z, -w2 x + w1 y}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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