[Edu-sig] Re: catenaries vs. parabolas
Kirby Urner
pdx4d@teleport.com
Tue, 02 May 2000 15:27:55 -0700
Earlier today, Adam Stinchcombe wrote:
>Not one suspension bridge in the world was built without a precise
>mathematical understanding of the shape of Martha's hanging chain.
>This might be an interesting thing to look into, and if I have
>the time, I'll get back to the group about my findings. Dating
>the catenary to the famous Bernoullis is easy enough.
Some of you researching this interesting topic have probably found:
http://www-groups.dcs.st-andrews.ac.uk/~history/Curves/Catenary.html
Plus students might need more background re cosh (hyperbolic
cosine):
http://www.ping.be/~ping1339/hyp.htm#The-hyperbolic-funct
Less directly math-oriented, but still part of our technological
world, I also consider the following to be relevant:
http://consumerlawpage.com/article/overhead.shtml
(about kids electrocuting themselves on the overhead catenary
lines, and Conrail paying damages, for gross negligence in
this regard).
This is because of my "math as storyteller" model, i.e. using
math to "connect the dots" in a more narratively-based
format.[1]
I.e. getting into the railroading business is a good excuse to:
(a) study the etymology of "catenary" (first use of the
term attributed to Christiaan Huygens, 1629-1695) and then
(b) look at the application and the dangers associated
therewith (perhaps even useful reinforcement for survival
reasons, if your students live in urban areas
Plus trains are going to come up elsewhere, maybe metaphorically
(as in "great circle railroad tracks") i.e. when we study networks
(graph theory), transportation problems etc. The idea is to
"overload" these dips into trains with a lot of "extraneous"
lore -- partly so that students attention remains entrained
(because we're talking about more than "just the math", are
weaving in a lot of culture).
More good train imagery:
http://lackawanna.railfan.net/hoboken4.htm
http://www.info-4u.com/modelmemories/polepic.htm
http://www.railway-technology.com/contractors/electrification/
Note: especially important is the pantograph, which maintains
contact with the wire to maintain contact with the line, which
is only very shallowly catenary (i.e. dips up and down with
far less amplitude than an overhead telephone line).
I think what's obvious from my approach is that the web is
making a difference. This is in support of my thesis,
advanced on the AMTE listserv: that textbooks need to be
supplemented with cyberspace materials if we're to keep
math relevant.
This is because the "upgrade cycle" as inertially weighed
down by the very slow-turning wheels of the mass-publishing
industry is simply unable to keep pace -- and kids know this,
at least intuitively. We need to use cyberspace to drive
the upgrade cycle more quickly, and bring the curriculum
back into synch with the real world.
A textbook publisher could never afford the time, space (or
expensive permissions) associated with diving into "trains"
or "suspension bridges" in any great detail, as we're
passing through the catenary topic (not a big focus --
the whole "curves" topic is a pale shadow of what it
used to be).
A few word problems, with a shred of realism attached, is
about all there's room for in your standard text book.
But with the web, teachers are in position to _source_ a
lot of new curriculum, simply by using a search engine
and some imagination.
As educators can go where no text book publisher would
or could -- and we should, because this is a way to
help satisfy the deep hunger for relevant content which
many kids feel.
Also on AMTE, I circled over-reliance on calculators as
symptomatic of curriculum impoverishment. Computers do
so much more, are easier to program, give us access to
alpha/character-focused algorithms (e.g. "Hamming Distance"),
plus get us "beyond flatland" (off the XY plane).
I don't mind using the calculator interface as a useful
guide to what are the most important primitive functions,
distilled over the centuries. Let's tour all the keys
and figure out what they do (including the hyperbolic
trig stuff -- on most scientific calculators).
But let's not _stop_ with the calculator for gosh sakes.
At least one programming language should be a part of
every math-learning course of study. Numeracy and
computer literacy are convergent goals.
And so here's another reason not to rely too heavily on
text books: they're largely out of date on the computer
front, stuck back in the days of BASIC or Logo, missing
the object-oriented boat, which is where objects like
Vectors (even Quaternions) come into their own.
We just can't afford to wait another five years for
McGraw-Hill to finally come out with its Python-focussed
math ed series (if that's even on the drawing board --
not saying I really know (I used to work in McGraw-Hill's
K-12 computer department, but that was over 15 years
ago)).
Those of you familiar with my 'Numeracy + Computer Literacy'
pages know that I'm into using Python as an alternative
(self-executing) math notation.[2] Python has easy syntax
and there's a growing body of literature aimed at
communicating it to kids, including downloadable lessons
(linked from the For Further Reading section at the
bottom of Part 1 of my 4-part essay).
Using Python, we could explore the catenary as follows:
>>> import math # native module
>>> math.e # contains built-in value for e
2.71828182846
>>> math.cosh(10) # as well a built-in hyperbolic cosine
11013.2329201
>>> def newcosh(n): # ... but let's define our own (using e)
return (math.e**n + math.e**(-n))/2.0
>>> newcosh(10) # ... and confirm: same result
11013.2329201
Given a function is a set of (domain, range) pairs, we'd
like to pass a domain to catenary() and get back a set
of tuples (pairs):
>>> def catenary(domain,a):
# accept list of domain values, constant a,
# return (domain,range) pairs of corresponding
# catenary function
pairs = []
for x in domain: # for each member of domain...
range = math.cosh(x/a) # ... compute range
pairs.append((x,range)) # append tuple
return pairs
>>> def mkdomain(low, high, interval):
# create list of domain values, from low to high
# stepping by interval
output = [] # the output list
i=0
while 1: # just keep looping...
output.append(low + i*interval)
i=i+1
if output[-1]>=high: break # ...until high reached
return output
>>> domain = mkdomain(-1.0,1.0,0.1)
>>> domain
[-1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1,
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
So let's get the tuples for this function, with some value
for a:
>>> function = catenary(domain,0.5) # a = 1/2
>>> function
[(-1.0, 3.76219569108), (-0.9, 3.10747317632), (-0.8, 2.57746447119),
(-0.7, 2.15089846539), (-0.6, 1.81065556732), (-0.5, 1.54308063482),
(-0.4, 1.3374349463), (-0.3, 1.18546521824), (-0.2, 1.08107237184),
(-0.1, 1.02006675562), (0.0, 1.0), (0.1, 1.02006675562),
(0.2, 1.08107237184), (0.3, 1.18546521824), (0.4, 1.3374349463),
(0.5, 1.54308063482), (0.6, 1.81065556732), (0.7, 2.15089846539),
(0.8, 2.57746447119), (0.9, 3.10747317632), (1.0, 3.76219569108)]
Now of ourse we'll eventually want to graph the thing. Here's
how I do it, using Python + Povray:
>>> import functions, povray # add more tools to our namespace
>>> catpix = povray.Povray("mycat.pov") # open a draw file
>>> functions.xyzaxes(catpix,3) # output some colorful xyz axes
>>> graphit(function,catpix) # see note [3] for more detail
>>> catpix.close() # close the file
And here's the picture I get, using tools developed at my website:
http://www.inetarena.com/~pdx4d/ocn/graphics/catenary.gif
Kirby
PS: http://www.bfi.org/catenary.htm is also relevant (and closer
to "home" (cite "ET math"))
NOTES:
[1] http://fire1b.math.utk.edu/hypermail/mathedcc/0011.html
or, after May 31, 2000 try:
http://fire1b.math.utk.edu/hypermail/mathedcc/may00/0011.html
[2] http://www.inetarena.com/~pdx4d/ocn/cp4e.html#python
[3] Here's my graphit function:
>>> def graphit(myfunc, myfile):
for i in range(len(myfunc)-1):
v1 = Vector((myfunc[i][0],myfunc[i][1],0))
v2 = Vector((myfunc[i+1][0],myfunc[i+1][1],0))
myfile.edge(v1,v2) # draw edge between the two
makes use of a Vector class in coords.py module.
More background info re vector algebra w/ Python at:
http://www.python.org/pipermail/edu-sig/2000-May/000380.html
http://www.python.org/pipermail/edu-sig/2000-May/000381.html