The problem is to design a frictionless ramp that connects (0,0) to (1,1) (the positive y-axis is assumed to point downward) such that a ball rolling down it will get to (1,1) in the shortest amount of time.
We give three formulations. Each formulation involves a discretization of an integral that represents time.
bc4.mod is the formulation found in most books
(see, e.g., the classical text on calculus by Thomas). This version involves
minimizing an integral of a nonconvex function
of the unknown function y(x) giving the height (or depth really) of the ramp as
a function of horizontal position. This formulation is a difficult nonconvex
bc7.mod, the roles of x and y are interchanged
(we assume monotonicity of
the function y(x)). That is, we seek a function x(y) that gives the horizontal
position of the ramp as it crosses level y. This version turns out to be
convex. It can also be cast as a second-order cone optimization problem.
bc5.mod is the most straightforward of the models. In it, x(t) and y(t) are
both unknown functions to be determined. They must satisfy the boundary
conditions and the force balance equations. The calculation of the time
for a ramp so given is then easy to specify.
bc4.modand y in
bc7.mod). Uniform spacing leads to very slow convergence. Appropriate nonuniform spacing gives dramatically better results. See the model files for examples.
The plot shown below was produced with
using the following command:
plot "bc.out" w lines