Simple Nature - Light and Matter

(Martin Jones) #1

a/Approximations to the
brachistochrone curve using
a third-order polynomial (solid
line), and a seventh-order poly-
nomial (dashed). The latter
only improves the time by four
milliseconds.


famous question. Starting from rest, an object slides frictionlessly
over a curve joining the point (a,b) to the point (0, 0). Of all the
possible shapes that such a curve could have, which one gets the
object to its destination in the least possible time, and how much
time does it take? The optimal curve is called thebrachistochrone,
from the Greek “short time.” The solution to the brachistochrone
problem evaded Bernoulli himself, as well as Leibniz, who had been
one of the inventors of calculus. The English physicist Isaac Newton,
however, stayed up late one night after a day’s work running the
royal mint, and, according to legend, produced an algebraic solution
at four in the morning. He then published it anonymously, but
Bernoulli is said to have remarked that when he read it, he knew
instantly from the style that it was Newton — he could “tell the
lion from the mark of his claw.”
Rather than attempting an exact algebraic solution, as Newton
did, we’ll produce a numerical result for the shape of the curve
and the minimum time, in the special case ofa=1.0 m andb=1.0 m.
Intuitively, we want to start with a fairly steep drop, since any speed
we can build up at the start will help us throughout the rest of the
motion. On the other hand, it’s possible to go too far with this idea:
if we drop straight down for the whole vertical distance, and then
do a right-angle turn to cover the horizontal distance, the resulting
time of 0.68 s is quite a bit longer than the optimal result, the reason
being that the path is unnecessarily long. There are infinitely many
possible curves for which we could calculate the time, but let’s look
at third-order polynomials,

y=c 1 x+c 2 x^2 +c 3 x^3 ,

where we requirec 3 = (b−c 1 a−c 2 a^2 )/a^3 in order to make the curve
pass through the point (a,b). The Python program, below, is not
much different from what we’ve done before. The function only asks
forc 1 andc 2 , and calculatesc 3 internally at line 4. Since the motion
is two-dimensional, we have to calculate the distance between one
point and the next using the Pythagorean theorem, at line 16.

1 import math
2 def timeb(a,b,c1,c2,n):
3 g=9.8
4 c3 = (b-c1*a-c2*a**2)/(a**3)
5 x=a
6 y=b
7 dx = -a/n
8 t=0
9 for i in range(n):
10 y_old = y
11 x = x+dx
12 y = c1*x+c2*x**2+c3*x**3

94 Chapter 2 Conservation of Energy

Free download pdf