Suppose you’re given two points (*x*_{1}, *y*_{1}) and (*x*_{2}, *y*_{2}) with *y*_{1} and *y*_{2} positive. Find the smooth positive curve *f*(*x*) that passes through the two points such that the area of the surface formed by rotating the graph of *f* around the *x*-axis is minimized.

You can state this as a problem in calculus of variations, which leads to a differential equation, which leads to the solution

*f*(*x*) = *c* cosh((*x* + *d*)/*c*).

In other words, the surface area is minimized when the graph of *f* is a piece of a catenary [1].

This is interesting because the answer is not something you’re likely to guess, unlike say the isoperimetric problem, where the it’s easy to guess (but hard to prove) that the solution is a circle.

There’s also some interesting fine print to the solution. It’s not quite right to say that the solution is a catenary. To be more precise we should say that **if** there is a unique catenary that passes through both specified points, then it is the smooth curve with minimal area when rotated about the *x*-axis. But there are a couple things that could go wrong.

It’s possible that two catenaries pass through the given points, and in that case one of the catenaries leads to minimal surface area. But it’s also possible that there is no catenary passing through the given points.

My first thought would be that you could always find values of *c* and *d* so that the function *f* passes through the points (*x*_{1}, *y*_{1}) and (*x*_{2}, *y*_{2}), but that’s not true. Often you can, but if the difference in the *y*‘s is very high relative to the difference in the *x*‘s it might not be possible.

Suppose the graph of *f* passes through (0, 1) and (1, *y*_{2}).

Since the graph passes through the first point, we have

*c* cosh(*d*/*c*) = 1.

Since cosh(*x*) ≥ 1, we must also have *c* ≤ 1. And since our curve is positive, we must have *c* > 0. We can maximize

*c* cosh((1 + *d*)/c)

for 0 < *c* ≤ 1 subject to the constraint

*c* cosh(*d*/*c*) = 1

to find the maximum possible value of *y*_{2}. If we ask Mathematica

NMaximize[ { c Cosh[(1 + d)/c], {0 < c <= 1}, {c Cosh[d/c] == 1} }, {c, d} ]

we get

{6.45659*10^8, {c -> 0.0352609, d -> -0.142316}}

meaning the largest possible value of *y*_{2} is 6.45659 × 10^{8}, and it occurs when *c* = 0.0352609, *d* = −0.142316.

**Update**: See the comment by Bill Smathers below arguing that the maximum should be unbounded. If the argument is correct, this would imply the code above ran into a numerical limitation.

## Related posts

[1] See Calculus of Variations by I. M. Gelfand and S. V. Fomin.

So what’s the solution to the problem when no catenary exists? Does there even exist a solution?

When no catenary exists, no smooth curve minimizing the area exists. In that case you could say that the solution in some sense the the function that equals y_1 at x_1, equals y_2 and x_2, and is 0 everywhere in between. Of course this function is not differentiable, or even continuous, but you can find a sequence of smooth functions that come closer and closer to it.

“Often you can, but if the ratio of y‘s is very high relative to the ratio of x‘s it might not be possible.”

I think I understand what you’re trying to say, but this seems like the wrong way to phrase it. The ratio of x’s in the example you give is infinity. Also, if the x’s are farther apart, I would expect the degenerate surface (essentially two discs) to be better, not worse, relative to a catenary.

Thanks. I reworded that part of the post. I meant to say the

differencein the x’s and y’s rather than their ratio.I remember I “proved” it was a catenary before I knew any variations calculus: the minimal surface is realised by soap film, so its mean curvature is everywhere 0, and its principal curvatures as are opposite, which gives the same differential equation.

You are observing the effects of numerical error. In reality there is always a catenary between two points.

Using your setup, you want to maximize c cosh((1+d)/c) = c cosh(1/c) cosh(d/c) + c sinh(1/c) sinh(d/c) such that c cosh(d/c) = 1. This latter equation implies c^2 cosh^2 (d/c) = cosh^2 (d/c) – sinh^2(d/c), or sinh^2(d/c) = ( 1- c^2)cosh^2(d/c). Thus assuming d > 0 (we can do this for free since cosh(x) = cosh(-x)) we get c sinh(d/c) = sqrt(1 – c^2). Plugging this expression in, the objective becomes cosh(1/c) + sqrt(1-c^2) sinh(1/c), which is clearly unbounded for c approaching 0.