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 have been trying to evaluate the following code, but nothing happened. I don't see any result.

ParametricPlot3D[{v Cosh[u/v], v Cosh[u/v], u}, {u, -1, 1}, {v, -1, 1}]

What am I doing wrong?

share|improve this question
1  
Perhaps dividing by zero? Cosh[u/v] with both $u$ and $v$ going from -1 to 1 will do that. –  Verbeia Mar 15 '12 at 11:11

2 Answers 2

up vote 11 down vote accepted

You are dividing by zero at a point where there is a singularity anyway.

Mathematica handles this in the 2D case:

ParametricPlot[{v Cosh[u/v], u}, {u, -1, 1}, {v, -1, 1}]

2D graphic

You can get the graphic you are looking for by breaking up the plot into pieces, avoiding the zone near $v=0$. ParametricPlot3D allows you to show multiple objects in the same plot pretty simply.

ParametricPlot3D[{{v Cosh[u/v], v Cosh[u/v], u},
 {-v Cosh[u/-v], -v Cosh[u/-v], u}}, {u, -1, 1}, {v, 0.1, 1}, 
 Mesh -> None]

3D graphic

Adapting b.gatessucks's suggestion of using Exclusions, I have found that you also need to specify PlotRange and PlotPoints to get a sensible graphic.

ParametricPlot3D[{v Cosh[u/v],  v Cosh[u/v], u}, {u, -1, 1}, {v, -1, 1},
 Mesh -> None, Exclusions -> {0, 0}, 
 PlotRange -> {{-4, 4}, {-4, 4}, {-1, 1}}, PlotPoints -> 100]

Second 3D version

share|improve this answer

This is just a problem of the choice of parameterization. Try this instead:

ParametricPlot3D[{v Cosh[u], v Cosh[u], u v}, {u, -30, 30}, {v, -1, 
  1}, Mesh -> None, PlotRange -> {{-4, 4}, {-4, 4}, {-1, 1}}]
share|improve this answer
    
Very clever use a transformation of variables. But anyway I think the question was why the plot fails. But this is one of the best workarounds. –  FJRA Mar 18 '12 at 3:19

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.