6 Feb 01
Okay, a while back (August 25th 2000), in this general vicinity (of this
directory), I had a =little= tirade on the use of technology in the math
curriculum. I said I would have something more constructive later, and I
don't think I ever got around to it. So in email yesterday, someone asked
me about calculating sine by hand, and because the network went down while
i was composing the email, I decided to give everybody the benefit of my
experience and put up the techniques here.
I am going to tell of two basic ways to calculate sin(x) "by hand"; the
first is how most calculators give results (and it turns out, Maple isn't
any more sophisticated than this) -- using Taylor series
approximations. This technique involves only +, -, *, and / (which I
assume you can do by hand, but I recommend doing using calculator. If you
don't have a calculator that works with stacks (aka an HP calculator), you
should write down individual terms so that you don't screw yourself up
with order of operations and parentheses).
I'm not going to explain the math behind Taylor series, other than to
recommend two particular "pre-processing" steps:
1. Make sure the angle of interest is in radians. Radians are the
"natural" (non)-units of angles, because they relate the angle measurement
to the length of arc the angle cuts off on a unit circle. So 2*Pi radians
are equivalent to 360 degrees. Basically, if you have that sucker in
degrees, multiply it by 2 * Pi / 360. Unit conversion is done.
2. Make sure the angle is between -Pi and Pi. Because sine is a periodic
function, with period 2*Pi, just subtract or add 2*Pi enough times to get
the angle between those two points.
Now, we're ready to go:
sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - ... +
+ (-1)^(n-1)*x^(2n-1)/(2n-1)! + ....
(and on to infinity! More about infinity later)
Definitions: x^n is the regular power function: x * x * .... * x
(n x's multiplied together)
k! is the factorial function: k * (k-1) * (k-2) * ... * 2 *1
(example: 5! = 5*4*3*2*1 = 120)
Obviously, you have to stop at some point. You can't keep calculating
forever. However, this series converges rather rapidly (which is why you
see physics profs using the sin(x) = x approximation all the time..it
works well for angles as large as 10 degrees (remember to have it in
radians!)). And after a certain point, the terms are guaranteed to
decrease - so just stop adding (or subtracting) on terms once the next
term is smaller than the level of precision desired.
Example: I want to calculate sin(15 degrees)
Step 1: 15 degrees = 15*(2*Pi/360) radians = Pi/12 radians
Step 2: I need Pi/12 in decimal (let's see, Pi=3.14159 (memorize that
much, it's pretty easy... "Pi when calculating sine, 3 point 1 4 1 5 9!"))
Pi/12 approx = .261799 (we only had 6 sig figs, so we can't add
and more than that)
Now to the series:
first term: x=.261799 1st estimate: .261799
second term: -x^3/3! = -.0029905 2nd estimate: .258809
third term: x^5/5! = .0000102 3rd estimate: .258819
fourth term: -x^7/7! = -.167*10^-7 stop here - past precision
Look - only three terms to get the sine to 6 decimal places!
Let's check against the Maple calculator:
>evalf(sin(Pi/12));
.2588190451
This is an incredibly fast way to calculate sine, and you can calculate to
any level of precision desired. This is how computers and calculators do
it, more or less.
However, that method was based on recognizing radians as a natural unit,
and, even more importantly, needs the development of calculus. This is
not how Ptolemy and the other ancient Greeks made their trig tables to the
half degree. They had to do =everything= by hand (and everything by
fractions -- they had no decimal-type system!) -- If you wish to see pure
trigonometric and calculating virtuosity, look no further than Archimedes,
my main man, the greatest applied mathematician who ever lived, in my
opinion.
Anyway, back to the Greeks. For this next method, using trigonometric
identities, one needs one extra operation allowed: taking square
roots. Taking square roots can be done "by hand" using Newton's method
(and a couple of other clever, iterative methods). I do not wish to go
into it here, because almost any introduction to Newton's method involves
finding the square root of any number.
So let's say you have a calculator that does square roots, adds,
subtracts, multiplies, and divides. And you have a big sheet of paper,
or, more to the point, a good programmable spreadsheet. You are about to
create tables for both sine and cosine to the half degree in the first
quadrant. (You can do it by radians as well, if you wish, but we're
simply going to follow in the Greeks' footsteps). To tell the truth, the
following is not =exactly= what Ptolemy did. To find that, look at:
http://hypertextbook.com/eworld/chords.shtml
These are the identities we shall use:
[cos(x)]^2 + [sin(x)]^2 = 1
sin(x+y) = sin(x)cos(y) + sin(y)cos(x)
cos(x+y) = cos(x)cos(y) - sin(x)sin(y)
sin(-x) = -sin(x) [sine is odd]
cos(-x) = cos(x) [cosine is even]
So let us start at the very beginning (a very good place to start):
You need to know the sine & cosine of a few values - say, 0 degrees, 30
degrees, 45 degrees, 60 degrees, and 90 degrees. If you're a good little
math student, you should have these values memorized (just like Pi). So
put their values in appropriate places in the table (and you may wish to
keep them exact for right now - sqrt(3)/2 might be easier to deal with
than .866...).
So let's get chugging. What might be the next value easy to
calculate? How about sin(15 degrees?) (Hmm, that sounds familiar). No
problem, 15 degrees = 45 degrees - 30 degrees, so:
sin(15) = sin(45-30) = sin(45)cos(30) - cos(45)sin(30)
= 1/sqrt(2)*sqrt(3)/2 - 1/sqrt(2)*1/2
= sqrt(2)/4*(sqrt(3)-1)
=.2588190453
(In a like manner, calculate cos(15), sin(75) and cos(75))
Now we have covered all possible sums and differences, where to go from
here? Simply to use a special form of the sum of angles formula, called
the double-angle (or half-angle) formula:
sin(2x) = sin(x+x) = 2*sin(x)*cos(x)
cos(2x) = 2*cos(x)^2 - 1
If you solve for sin(x) and cos(x):
sin(x) = sqrt( (1-cos(2x))/2)
cos(x) = sqrt((1+cos(2x))/2)
So, say we have cos(15); then I can get sine and cosine for 7.5, 3.75,
1.875, .9375.
From the info from 45 degrees, we can get sine and cosine for 22.5, 11.25,
5.625, 2.8125, 1.40625.
Now what helps at this point is to be able to get sine & cosine for 72
degrees, which comes from a regular pentagon. [cos(72) = (sqrt(5) -1)/4,
all the rest follows]
Then from 72 degrees, one can get 36, 18, 9, 4.5, 2.25, 1.125, .5625.
One can also start using the differences: using 72 - 60 to get 12, then 6,
then 3, 1.5, .75, .375, .1875.
Still, this does not give us the half-degree increments we desire. We
need sine and cosine of .5 to generate the full table: how to get it? I
will admit at this point that Ptolemy did what any self-respecting applied
mathematician would do: he "cheated". This means, rather than get "exact"
calculations for the values (which he couldn't do anyway, because you're
going to carry those square roots for only so far - he needed to
=calculate= with these amounts, not fiddle endlessly to see how all these
values related to each other) he used a geometric inequality that relates
angles and their sines. I don't want to get into it right now, but what
we =can= do is implement linear interpolation (yeah!)
There are several ways we can do this; I'll just pick particular numbers.
We've got values at .9375 and 1.125 -- let's pretend that the sine
function is a line between those two points, and then find the value of
the line at x=1. You can do that as well for cosine 1, but you may end up
with difficulties. In any case, there are many ways you can adjust
calculations all through this procedure.
In any case, you're going to have to get used to linear interpolation if
you're creating a trig table.
Do you see why calculators do it the other way? I would think it was
pretty obvious at this point.
In any case, when I took trigonometry and wasn't allowed to use a
calculator, I was given a trigonometric table of values for sine and
cosine in increments of 1 degree. I had to use linear interpolation by
hand (meaning, long division and all that jazz, woo hoo). I was not
amused. The discipline this imposed on me was to do the least amount of
"function calls" possible. So, instead of trying out sine, cosine,
tangent, etc. for every single angle given me, I would actually figure out
which function values I needed. I could sometimes eschew looking up
multiple values for a single problem by using the law of sines or law of
cosines. I'm not sure if the teacher was looking for that type of
efficiencies, but the pressure of time and the belief that there was no
grading on a curve really motivated me. When I was still getting 70s
(because I couldn't finish in time), I got upset and complained to my
parents, who then talked to the teacher. It seems the teacher was lying
about grading on a curve, because he wanted to prevent the seniors from
slacking off (And they were, indeed, the slackest in the class, excepting
that inebriated junior who kept trying to copy my homework for trig during
latin class. That was so funny. I don't know why he thought I would do
it. Perhaps for the same reason he thought his aura of cologne would mask
the scent of alcohol. But, yet again, I digress.) So I ended up with my
habitual A, and a big lesson in why I hate arithmetic.