Take the 2-minute tour ×

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
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
add comment

2 Answers

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:


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.

 Mesh -> None, Exclusions -> {0, 0}, 
 PlotRange -> {{-4, 4}, {-4, 4}, {-1, 1}}, PlotPoints -> 100]

Second 3D version

share|improve this answer
add comment

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
add comment

Your Answer


