next up previous contents

Subsections


3 Hanging Chain

Find the chain (of uniform density) of length $L$ suspended between two points with minimal potential energy.

Implementation

This classical problem (see Cesari [11, pages126-127]) was suggested by Hans Mittelmann. In this problem we need to determine a function $ x (t) $, the shape of the chain, that minimizes the potential energy

\begin{displaymath}
\ \int_0^1 x \sqrt{1 + x'^2} \,dt
\end{displaymath}

subject to the constraint on the length of the chain,

\begin{displaymath}
\int_{0}^{1} \sqrt{1 + x'^2} \,dt = L,
\end{displaymath}

and the end conditions $ x(0) = a $ and $ x(1) = b $. We reformulate this problem as a control problem in terms of the function $ u = x' $. The optimal control version of the problem is to minimize

\begin{displaymath}
\ \int_0^1 x \sqrt{1 + u^2} \,dt
\end{displaymath}

subject to a differential equation and a constraint on the length of the chain,

\begin{displaymath}
x' = u, \qquad \int_{0}^{1} \sqrt{1 + u^2} \,dt = L .
\end{displaymath}

We discretize the integrals and the differential equation with the trapezoidal rule on a uniform mesh with $n_h$ intervals. Data for this problem appears in Table 3.1.



Table 3.1: Hanging chain problem data
Variables $2 n_h$
Constraints $ n_h + 1 $
Bounds 0
Linear equality constraints $ n_h $
Linear inequality constraints 0
Nonlinear equality constraints 1
Nonlinear inequality constraints 0
Nonzeros in $\nabla ^2 f(x)$ $3n_h$
Nonzeros in $c'(x)$ $5n_h$

Performance

Results for the AMPL implementation are summarized in Table 3.2 with $a = 1$, $b=3$, and $L=4$. The starting point is the quadratic

\begin{displaymath}
x(t) = \left ( 2 \vert b-a \vert \right ) t ( t - 2 t_m ) + a ,
\end{displaymath}

where $ t_m = 0.25 $ if $ b > a $ and $ t_m = 0.75 $ otherwise, evaluated at the mesh points. This choice is convex and satisfies the boundary data. The control function $ u $ is set to $ x' $. The optimal chain is shown in Figure 3.1.



Table 3.2: Performance on hanging chain problem
Solver $n_h=50$ $n_h=100$ $n_h=200$ $n_h=400$
LANCELOT 13.91 s 42.79 s 268.7 s 577.24 s
$f$ 5.07230e+00 5.07005e+00 5.06903e+00 5.06788e+00
$c$ violation 3.31310e-06 9.61060e-06 2.01200e-06 6.25860e-06
iterations 772 1169 3042 3203
LOQO 17.24 s 6.69 s 174.58 s 1028.35 s
$f$ 5.07226e+00 5.06978e+00 5.06891e+00 5.06862e+00
$c$ violation 3.3e-08 7.3e-10 5.7e-10 2.4e-09
iterations 773 206 758 777
MINOS 1.22 s 5.52 s 14.75 s 73.9 s
$f$ 5.07226e+00 5.06978e+00 5.06891e+00 5.06862e+00
$c$ violation 6.1e-08 4.0e-07 2.5e-06 3.3e-06
iterations 17 22 30 60
SNOPT 5.72 s 32.76 s 52.8 s $\ddagger$
$f$ 5.07226e+00 5.06978e+00 5.06891e+00 $\ddagger$
$c$ violation 5.9e-09 5.2e-09 1.6e-06 $\ddagger$
iterations 165 246 85 $\ddagger$
$\dagger$ Errors or warnings. $\ddagger$ Timed out.

Figure 3.1: Hanging chain of length $L = 4$
\includegraphics[width=3.5in]{ps/chain.eps}


next up previous contents
Liz Dolan
2001-01-02