If a uniform chain or piece of floppy (but not stretchy) string has its
end-points fixed, it hangs in the shape of a portion of a distinctive curve
known as the catenary

(from the Latin word for chain); I'll now derive
what shape that is.

The chain's shape is idealised as a smooth curve, with specified end-points
and total length. The chain hangs under gravity, here presumed to have a
constant field strength g in a direction we can call downwards

; define a
coordinate y measured in the opposite direction, upwards. The displacement
between end-points can now be composed into a vertical component (downward or
upwards) and a horizontal component (perpendicular to the vertical). Use the
direction of the horizontal component to define a coordinate x. As long as
we're only concerned with the stationery state of the curve, we have no need to
consider time or any other spatial coordinates. Parameterise each coordinate
by length, so that summing the squares of the coordinate differences along a
straight line gives you the square of the line's length.

Parameterise our curve by distance from one of its ends; we can now represent its shape by a pair of functions X and Y, each ({coordinate}: |{lengths s: zero ≤ s ≤ L}), giving the x and y coordinates of the point on the chain [x, y] = [X(s), Y(s)] at distance s from the given end, [X[0], Y[0]]. The chain's total length is L and the other end is [X[L], Y[L]]. That the parameter s is length along the chain implies that the squares of the derivatives of X and Y sum to 1 everywhere along the curve, so we can define a function ({angles}: e :{lengths}) for which [X'(s), Y'(s)] = [Cos(e(s)), Sin(e(s))], so X(s) = integral(: Cos(e(t)) ←t ; 0 ≤ t ≤ s :{lengths}) = integral(Cos&on;e) and Y(s) = integral(Sin&on;e), likewise.

The chain is under tension; its floppiness, i.e. total lack of stiffness, imposes the constraint that the tension can only be parallel to the direction of the chain, at each point. As the chain curves, the tension thus changes direction. The tension at each point consists of the chain to each side of that point pulling in its direction, with pulls in the two directions equal; however, the rate of change in tension along the curve provides the force that supports the weight of the chain. Let the magnitude of the tension at [X(s), Y(s)] be T(s), for each s.

Let's consider a portion of the chain between distances s and t from the end we've chosen to measure from, with s < t. The forces on it are the weight of chain between these two and the difference in tension, T(t).[Cos(e(t)),Sin(e(t))] −T(s).[Cos(e(s)),Sin(e(s))]. Since the weight acts downwards, the horizontal component of this last must be zero, hence T(t).Cos(e(t)) = T(s).Cos(e(s)) and T.Cos&on;e is constant. This means that X'(s) = Cos(e(s)) never changes sign along the curve, as T is necessarily nowhere negative. The only way T can be zero anywhere is if Cos&on;e is zero – i.e. e is ±turn/4, which means the chain hangs vertically – everywhere T isn't zero.

The vertical component of the change in tension must be equal but opposite to the weight of chain. If T(s) = 0 = T(t), this difference is zero so there must be no weight in the chain between s and t; when the weight distribution is nowhere zero, this implies s = t; so T can be zero at at most one place on our chain (with Cos&on;e constant at ±turn/4 everywhere else). When it is zero at any point, X' is everywhere zero, so Y' is everywhere ±1. This describes a chain hanging straight down; the point where T is zero is the lowest point on the chain, with Y' taking the value +1 on one side of it and −1 on the other.

Otherwise, T.Cos&on;e's constant value is non-zero, T is nowhere zero and X' has constant sign. Consequently, X is a strictly monotonic function. The change in vertical component of tension, between s and t, is then

- −weight
- = T(t).Sin(e(t)) −T(s).Sin(e(s))
- = T(t).Sin(e(t)) −T(t).Cos(e(t)).Sin(e(s))/Cos(e(s))
- = T(t).Cos(e(t)).(Tan(e(t)) −Tan(e(s)))

Now, Tan(e(s)) = Sin(e(s))/Cos(e(s)) = Y'(s)/X'(s). As X is monotonic, it's invertible: there is a function ({lengths}: S :{coordinates}) for which S&on;X is the identity on the interval from 0 to L and X&on;S is the identity on the range of values X takes; S(x) is the distance along the chain from [X(0), Y(0)] to the point on it where X takes the value x. Then F = Y&on;S is a mapping from x coordinate to y coordinate along our curve, and F'(x) = Y'(S(x))/X'(S(x)) = Tan(e(S(x))); this is the rate of change of y with respect to x along our curve. So the weight of a segment of chain is equal to the constant value T.Cos&on;e takes (the horizontal component of tension) times the change in F' between the ends of the segment.

When the weight is evenly-distributed along the chain, the weight between s and t is then proportional to t−s. For any x coordinates u and v within the range of X, the change in F' between them is thus F'(u) −F'(v) and proportional to S(u) −S(v). This being true for all u, v we can infer (by differentiating with respec to either) that F'' is proportional to S'. Now, X&on;S is an identity, so has derivative 1 = (X&on;S)'(x) = d(X(S(x)))/dx = X'(S(x)).S'(x) so S'(x) = 1/X'(S(x)) = 1/Cos(e(S(x))) = √(1 +square(Tan(e(S(x))))) = √(1 +square(F'(x))) and this is proportional to F''(x). Writing F'(x) = sinh(q(x)) for some function q = arcsinh&on;F', we get cosh(q(x)) proportional to F''(x) = cosh(q(x)).q'(x), hence q'(x) is constant. Thus F'(x) = cosh(x/a +k) for some constants a, k; and F(x) = a.cosh(x/a +k) +h for some constant h.

When specifying our coordinate directions, I imposed no constraint on their origin; by choice of origin we can make k = 0 = h and get the curve F(x) = a.cosh(x/a), i.e. our chain occupies the portion {[x, a.cosh(x/a)]} with x between the x coordinate values of our fixed end-points.

The above analysis applies to an arbitrarily fine chain

of infinitely
many infinitesimal links. It equally applies to a piece of string, provided
the string has no stiffness, or at least its stiffness is negligible compared to
its weight per unit length. Real chains are made of finitely many links, each
of which is of finite length. So consider a chain of n links described by
({lengths}: L |n) and ({weights}: W |n), representing its shape by ({positions}:
hinge |1+n) with the distance from hinge(i) to hinge(1+i) being L(i), for each i
in n. The end-points hinge(0) and hinge(n) are fixed and the chain hangs freely
between them.

The simplest case has L and W constant – all links of the chain are identical.

Written by Eddy.