5
$\begingroup$

I'm (very!) new to Mathematica, and trying to use it plot a set in $\mathbb{R}^3$. In particular, I want to plot the set

$$ \big\{ (x,y,z) : (x,y,z) = \frac{1}{u^2+v^2+w^2}(vw,uw,uv) \text{ for some } (u,v,w) \in \mathbb{R}^3\setminus\{0\} \big\}. $$ This is just the image of function from $\mathbb{R}^3\setminus\{0\} \to \mathbb{R}^3$. I haven't been able to make any of the plot functions display this. Any advice would be greatly appreciated.

If it makes it easier, the set above is also $$ \big\{ (x,y,z) : (x,y,z) = \frac{1}{u^2+v^2+w^2}(vw,uw,uv) \text{ for some } (u,v,w) \in \mathbb{S}^2 \big\}. $$ Alternatively, one could plot the three sets $$ \big\{ (x,y,z) : (x,y,z) = \frac{1}{1+v^2+w^2}(vw,w,v) \text{ for some } (v,w) \in \mathbb{R}^2 \big\}, $$ $$ \big\{ (x,y,z) : (x,y,z) = \frac{1}{1 +u^2+w^2}(w,uw,u) \text{ for some } (u,w) \in \mathbb{R}^2 \big\}, $$ $$ \big\{ (x,y,z) : (x,y,z) = \frac{1}{1+u^2+v^2}(v,u,uv) \text{ for some } (u,v) \in \mathbb{R}^2 \big\}. $$

$\endgroup$

3 Answers 3

7
$\begingroup$

Here are a couple more ways.

  1. Parametrize $\mathbb S^2$ with latitude and longitude:

    With[{u = Cos[lat] Cos[lon], v = Cos[lat] Sin[lon], w = Sin[lat]}, 
     ParametricPlot3D[{v w, u w, u v}/(u^2 + v^2 + w^2), {lat, -Pi/2, Pi/2}, {lon, -Pi, Pi}]]
    

    enter image description here

  2. Parametrize $\mathbb R^2$ compactly using the $\tan$ function:

    With[{u = Tan[a], v = Tan[b]}, 
     ParametricPlot3D[{v, u, u v}/(1 + u^2 + v^2), {a, -Pi/2, Pi/2}, {b, -Pi/2, Pi/2}]]
    

    enter image description here

$\endgroup$
1
  • 2
    $\begingroup$ The function is in fact a function on ${\bf RP^2}$, so one can just use half the sphere, e.g. {lon, 0, Pi}. $\endgroup$
    – Michael E2
    Oct 1, 2013 at 20:23
7
$\begingroup$
With[{eqn = Eliminate[{x, y, z} == 1/(u^2 + v^2 + w^2) {v w, u w, u v}, {u, v, w}]},
 ContourPlot3D[eqn, {x, -0.6, 0.6}, {y, -0.6, 0.6}, {z, -0.6, 0.6}]
 ]

Mathematica graphics

$\endgroup$
7
$\begingroup$

We can choose a sample and and visualize it. First we create a grid of values in the 3D-room:

sample = Select[
   Tuples[Range[-10, 10, 0.8], 3],
   Norm[#] > 0.5 &];

Select is used to remove points that are too close to the singularity. Now the plotting is easy using ListPointPlot3D:

f[{u_, v_, w_}] := {v w, u w, u v}/Norm[{u, v, w}]^2
ListPointPlot3D[f /@ sample]

3dpoints

$\endgroup$
3
  • 2
    $\begingroup$ Here's a nice way to create your grid of values. Tuples[Range[-10, 10, 0.8], 3] Bonus: no need to Flatten $\endgroup$
    – RunnyKine
    Oct 1, 2013 at 20:19
  • $\begingroup$ @RunnyKine I wanted something like that! Thank you. $\endgroup$
    – C. E.
    Oct 1, 2013 at 20:25
  • $\begingroup$ Glad you like it. I use Tuples a lot. $\endgroup$
    – RunnyKine
    Oct 1, 2013 at 20:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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