Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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\}. $$

share|improve this question

3 Answers 3

up vote 7 down vote accepted

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

share|improve this answer
2  
The function is in fact a function on ${\bf RP^2}$, so one can just use half the sphere, e.g. {lon, 0, Pi}. –  Michael E2 Oct 1 '13 at 20:23
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

share|improve this answer

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

share|improve this answer
2  
Here's a nice way to create your grid of values. Tuples[Range[-10, 10, 0.8], 3] Bonus: no need to Flatten –  RunnyKine Oct 1 '13 at 20:19
    
@RunnyKine I wanted something like that! Thank you. –  Pickett Oct 1 '13 at 20:25
    
Glad you like it. I use Tuples a lot. –  RunnyKine Oct 1 '13 at 20:38

Your Answer

 
discard

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.