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.