The Geometry of the Trigonometric Maclaurin Series

2021-09-22

Download a PostScript version of this document

(PS, 341 KiB)

---

For a long time, I've been curious about the Maclaurin series for the sine and cosine functions:

sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...=∑(((-1)^n/(2n+1)!)x^(2n+1),n=0,infinity)
cos(x)=1-x^2/2!+x^4/4!-x^6/6!+...=∑(((-1)^n/(2n)!)x^(2n),n=0,infinity)

Several aspects of the sine and cosine functions can be understood geometrically, such as the height of a flat board raised at a given angle. The Maclaurin series, however, do not have an obvious geometric interpretation; the series involves taking powers of the argument, which is an angle, and exponents of an angle don't have a clear geometric meaning.

This question has been explored before, probably most notably by Gurin (1996)^, who reconstructed a proof given by his eight-grade mathematics teacher. The proof is entirely geometric in nature, except for the use of two limits from calculus:

lim(sin(x)/x,x->0)=1
lim(x^k/k!,k->infinity)=0

Other authors have expanded Gurin's proof to give it more context and make it easier to understand, but I decided to dive directly into his 1996 paper and try to follow the work myself.

We begin with an angle x inscribed on the unit circle. The terminus of the angle lies at the point (cos(x),sin(x)). We split the angle into n equal parts and construct line segments to connect the vertices of each part. Label the segments a_1, a_2, ..., a_n.

Figure 1: Partition of an angle x

(PNG, 850x1100, 42.8 KiB)

The length of each a_i is L(a_i)=2sin(x/2n). This is because splitting the angle into n parts produces n congruent isosceles triangles A_i whose vertex angles are x/n. The length of the polygonal chain a=union(a_i) is

L(a)=∑(L(a_i))=2n*sin(x/2n)

We now extend each a_i by adding to it the length of every segment a_j, 1≤j<i. Connect the vertices of these extensions to get b_1, b_2, ..., b_(n-1).

Figure 2: Extensions of a_i

(PNG, 850x1100, 38.5 KiB)

Note that the number of segments b_i is n-1.

What is the length of each b_i? b_i are the bases of similar isosceles triangles--indeed, the vertex angle for each b_i is the same as for each a_i--but this time the triangles are not congruent. The legs of a given triangle B_i have length ∑(a_j,j=1,i). For B_1, this translates to a leg length of L(b*_1)=2sin(x/2n); for B_2, L(b*_2)=4sin(x/2n); and in general, L(b*_i)=2i*sin(x/2n). The bases of these triangles are then L(b_i)=4i*(sin(x/2n))^2.

The length of the polygonal chain b=union(b_i) is

L(b)=(2sin(x/2n))^2(1+2+3+...+(n-1))=(2sin(x/2n))^2(n(n-1)/2)=(2sin(x/2n))^2(n choose 2)

We can construct extensions on each b_i using the same heuristic to produce c_i, then extend c_i to produce d_i, e_i, etc.

Figure 3: Extensions of b_i

(PNG, 850x1100, 28.7 KiB)

This construction always produces similar triangles, allowing us to find the lengths of c, d, ... the same way as before. This yields

 L(c)=(2sin(x/2n))^3(1+3+6+...+((n-1)(n-2))/2)=(2sin(x/2n))^3(n choose 3)
 L(d)=(2sin(x/2n))^4(n choose 4)
...
L(n*)=(2sin(x/2n))^n(n choose n)

What happens as n becomes arbitrarily large? Each line segment we construct can be seen as an approximate "unwrapping" of the curve from which it is generated, just as arc length can be approximated by using line segments. As the number of segments tends to infinity, the union of the segments tends to the involute of the previous curve. Many texts provide a formal treatment of involutes, such as Rutter (2000)^^.

Our first calculus limit allows us to determine the length of a via the substitution u=1/2n:

lim(L(a),n->infinity)=lim(2n*sin(x/2n),n->infinity)
                     =lim(sin(ux)/u,u->0)
                     =x*lim(sin(ux)/ux,u->0)
                     =x(1)=x

This is a restatement of the fact that on the unit circle, an arc that subtends an angle of x radians has arc length x.

The other limits require some manipulation, but they can be evaluated categorically. In general, the jth iteration produces a segment of length (2sin(x/2n))^j(n choose j); we use the definition of the binomial coefficient to split this expression apart.

(2sin(x/2n))^j(n choose j)=(2sin(x/2n))^j(n!/(j!(n-j)!))=(2^j(n!/(n-j)!))((sin(x/2n))^j/j!)

The expression n!/(n-j)! expands to n(n-1)(n-2)...(n-(j-1)), which has j terms.

(2^j(n!/(n-j)!))=2^j(n(n-1)(n-2)...(n-(j-1)))
                =(2n)^j(1(1-1/n)(1-2/n)...(1-(j-1)/n))

Our expression now becomes

(2sin(x/2n))^j(n choose j)=(2n*sin(x/2n))^j/j!(1-1/n)(1-2/n)...(1-(j-1)/n)

As n grows without bound, the term 2n*sin(x/2n) tends to x, and all the other terms approach 1:

lim((2n*sin(x/2n))^j/j!(1-1/n)(1-2/n)...(1-(j-1)/n),n->infinity)=x^j/j!(1)(1)...(1)=x^j/j!

Thus the lengths of each involute are

lim(L(a),n->infinity)=x
lim(L(b),n->infinity)=x^2/2!
lim(L(c),n->infinity)=x^3/3!
lim(L(d),n->infinity)=x^4/4!
...

From here we will use a, b, c, ... to refer to the circular arc and involutes themselves, rather than the polygonal chains that tend to them.

Figure 4: Iterated involutes of arc a

(PNG, 850x1100, 28.1 KiB)

It is clear that our successive involutes approach (cos(x),sin(x)). How can we quantify this exactly?

The circular arc a has height sin(x), but since it is not a straight line, its length must be longer than sin(x). Indeed this is true, as shown in the well-known identity

sin(x)0

Thus L(a) "overshoots" the true value of sin(x). Involute b does not affect our height, so it is skipped.

The next involute c has height x-sin(x), but it too is not a straight line, so L(c) also "overshoots" the true value. We thus get

x-x^3/3!

This can be extended indefinitely, yielding

x-x^3/3!+...-x^(4k-1)/(4k-1)!

We now invoke our second calculus limit. As k increases without bound, the difference between the outer expressions vanish, "squeezing" the value of sin(x) between them. This produces the first Maclaurin series:

sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...=∑(((-1)^n/(2n+1)!)x^(2n+1),n=0,infinity)

A similar argument gives us a corresponding inequality for cos(x). However, because cos(x) might equal 1, our inequality changes slightly:

1-x^2/2!+...-x^(4k-2)/(4k-2)!≤cos(x)≤1-x^2/2!+...+x^(4k)/(4k)!

Regardless, our second calculus limit allows us to similarly "squeeze" the value of cos(x), resulting in the second Maclaurin series:

cos(x)=1-x^2/2!+x^4/4!-x^6/6!+...=∑(((-1)^n/(2n)!)x^(2n),n=0,infinity)

I'm frankly surprised this proof is not more widely discussed in advanced calculus courses. The derivative definition of the Maclaurin series does not always provide a physical understanding of what each term means, especially in regards to the sine and cosine functions. The actual mechanics of the proof require only rudimentary algebraic manipulations and geometric arguments, albeit cleverly applied. It would make an excellent challenge problem for the brightest students to try to tackle.

^ Gurin, Leo S. "A Problem." The American Mathematical Monthly 103, no. 8 (1996): 683-86. doi:10.2307/2974881.

^^ Rutter, John W. "Geometry of Curves." Chapman & Hall/CRC, Boca Raton (2000). ISBN:1584881666.

---

[Last updated: 2025-01-27]