A Study of two Classic Methods for the Approximate Construction of Regular Polygons by Using Mathematica

The authors use Mathematica to illustrate two classic methods for the approximate construction of regular polygons: the method of Archimedes and the method of Bardin, making a comparative study of the errors of both methods. They also include an algorithm, coded in Mathematica 4.0, for the animation of both methods.

by Juan A. Aledo, Juan C. Cortés and Fernando L. Pelayo

It is well known that the problem of the division of a circumference in n equal parts using the euclidean tools of straightedge and the compass has no solution in general. Euclid was the first to get results in this respect. He demonstrated that it is possible to build with euclidean tools the regular polygons of 3, 4, 5 and 15 sides, as well as all those deduced from the previous ones by reiterated bisection of their sides. During the following 2000 years, the problem did not advance, until the 30th of March of 1796, when Carl Friedrich Gauss, at the age of 19, built with euclidean tools the regular polygon of 17 sides. That same day he decided to dedicate himself to mathematics, rather than philosophy, and he began a diary where he wrote, over the next 18 years, some of his biggest discoveries, beginning with the construction of the regular polygon of 17 sides.
	In fact, Gauss characterized the values of n for which a regular polygon of n sides is constructible with euclidean tools:

The only regular polygons which are constructible with euclidean tools are those whose number of sides n verifies that:
a) n = (2^p), with p = 2, 3, ...
b) n is a prime number in the way  (Subscript[F, P]) = (2^((2^P))) + 1, p = 0, 1, 2, ..., which are called primes of Fermat.
c) n is the product of a power of 2 and different primes of Fermat, this is, 
		n = (2^P)((2^((2^α))) + 1)((2^((2^β))) + 1)((2^((2^γ))) + 1)...		α≠β≠γ≠...

The initial examples of regular polygons not constructible with straightedge and compass are those of 7, 9 or 11 sides. The known Fermat primes are (Subscript[F, 0]) = 3, (Subscript[F, 1]) = 5, (Subscript[F, 2]) = 17, (Subscript[F, 3]) = 257 and (Subscript[F, 4]) = 65537, and it is conjectured that they are the only ones. In fact, Euler proved that (Subscript[F, 5]) = (2^((2^5))) + 1 = 641*6700417 is a composit number. Later, F. J. Richeliot (1832) published an extensive investigation of the polygon of 257 sides. In 1894, a professor Hemes of Lingen dedicated 10 years from his life to the construction of the regular polygon of 65537 sides.

1. THE METHOD OF ARCHIMEDES

The method of Archimedes is a geometric procedure for dividing the circumference into a number n of equal parts in an approximate way, and therefore, it has as its more immediate application the approximate construction of regular polygons. We would like to point out that although the authorship of the present algorithm is usually attributed to Archimedes, there is no unanimity in this respect in the scientific community.

1.1. DESCRIPTION OF THE ALGORITHM

1) Trace a circumference centered on an x-y coordinate system.
	2) Trace the main vertical diameter \(AB\&_\) of the circumference (as main diameters we understand the two perpendicular diameters that coincide with the coordinated axes), and divide it from top to bottom in n equal parts, where n is the number of sides of the polygon we want to draw.
	3) Trace two arcs centered on the points A and B respectively with radius \(AB\&_\). These circumference arcs will intersect in a point M with a positive x-coordinate.
	4) Assign the label N to the second division, beginning from the top, of the diameter \(AB\&_\), and so obtain the point C with a negative x-coordinate, on the circumference, resulting in the intersection of the straight line joining M with N and the circumference.
	5) The segment \(BC\&_\) is the side that, taken on the circumference, allows us to draw, in an approximate way, a regular polygon of n sides for inscription in the circumference.

Figure 1: Construction of the regular octagon by Archimedes

Now, we will use Mathematica to justify that this algorithm can indeed be used for the approximate construction of regular polygons. We will find the length of the side of the regular polygon that we want to build in an approximate way; this is, we will find the distance between the points B and C as a function of the number of sides n.
	For this study we will suppose, without loss of generality, that the radius of the circumference in which we want to inscribe the regular polygon is 1, and that it is centered on (0,0). It is clear that the point M is determined by the intersection of the circumferences

{({{(x^2) + (((y + 1))^2) = 4}, {(x^2) + (((y - 1))^2) = 4}})

which can be solved with Mathematica by means of

Solve[{x^2 + (y + 1)^2 == 4, 
        x^2 + (y - 1)^2 == 4}, {x, y}]

Keeping in mind that according to the described algorithm, the x-coordinate of the point M is positive, we choose M = ((Sqrt[3]),0) from the two solutions of the previous system. On the other hand, the coordinates of the point N are

N = (0, 
          1 - 2  (2/n)) = (0, ((n - 4)/n)),

and the equation of the straight line that goes through the points M and N is

y = ((4 - n)/n) ((((Sqrt[3]) x)/3) - 1).

The point C results from solving the non linear system

{({{(x^2) + (y^2) = 1}, {y = ((4 - n)/n) ((((Sqrt[3]) x)/3) - 1)}})

with Mathematica.

Simplify[
      Solve[{(x^2) + (y^2) == 1, 
          y == ((4 - n)/n) ((((Sqrt[3]) x)/3) - 1)}, {x, 
          y}]]

Choosing the solution whose x-coordinate is negative, we have

\(C = \(\((\(\@3\) \((\(\((n - 4)\)\^2 - n \@\( n\^2 + 16  n - 32\)\)\/\(4 \((n\^2 - 2  n + 4)\)\))\), \(\(4 - 
                  n\)\/n\) \((\((\(\((n - 4)\)\^2 - n \@\( n\^2 + 16  n - 32\)\)\/\(4 \((n\^2 - 2  n + 4)\)\))\) - 1)\))\)\(.\)\)\)

In order to calculate the distance between the points B and C, we can use the following simple algorithm with Mathematica

Cx[
          n_] := (Sqrt[3]) ((((((n - 4))^2) - n (Sqrt[ (n^2) + 16  n - 32]))/(4 ((n^2) - 2  n + 4))));
Cy[
          n_] := ((4 - 
                n)/n) (((((((n - 4))^2) - n (Sqrt[ (n^2) + 16  n - 32]))/(4 ((n^2) - 2  n + 4)))) - 1);
pointC[n_] := {Cx[n], Cy[n]};
distan[{a_, b_}, {c_, 
            d_}] := (Sqrt[(((c - a))^2) + (((d - b))^2)]);
Simplify[distan[pointC[n], {0, 1}]]

We obtain as an approximate side of the polygon the value

(Subscript[L, A]) = ((Sqrt[2])/2) (Sqrt[(((n^2) + 4  n + 
                    16 - (n - 4) (Sqrt[(n^2) + 16  n - 32]))/((n^2) - 
                    2  n + 4))]).

It is simple to check that (Subscript[L, A]) is well-defined for any n ≥ 3, and therefore this method can be applied for the approximate construction of any regular polygon.

1.2. ERROR OF THE METHOD OF ARCHIMEDES

Next we will study the precision of the method of Archimedes, comparing the exact value (Subscript[L, E]) of the length on the side of a regular polygon, with the value obtained by means of this technique. It is well known that

(Subscript[L, E]) = 2  sin ((π/n)).

Thus we will obtain an estimate of the precision of the method starting from the relative error ((Subscript[L, E])-(Subscript[L, A]))/(Subscript[L, E]). The reason we do not consider the error by taking the absolute value of the difference (Subscript[L, E])-(Subscript[L, A]) is that we want to know if the value (Subscript[L, A]) obtained by means of the algorithm of Archimedes is greater than or less than the exact length (Subscript[L, E]).
	To calculate the limit of the relative error when n->∝, we can implement the code

SideArchimedes[
          n_] := ((Sqrt[2])/2) (Sqrt[(((n^2) + 4  n + 16 - (n - 4) (Sqrt[(n^2) + 16  n - 32]))/((n^2) - 2  n + 4))]);
ExactSide[n_] := 2  Sin[(π/n)];
RelativeErrorArchimedes[
          n_] := ((ExactSide[n] - SideArchimedes[n])/ExactSide)[n];
Limit[RelativeErrorArchimedes[n], n -> Infinity]

obtaining as a result this limit

1 - ((2 (Sqrt[ 3]))/π) ≃ -0.10266

Figure 2 illustrates the behaviour of the relative error of the method of Archimedes for values of n between 3 and 100. Although we present it with a continuous line for further clarity, we should remember that it is defined only for integral values greater or equal to 3.

Plot[RelativeErrorArchimedes[n], {n, 3, 100}];

Figure 2: Behaviour of the relative error of the method of Archimedes

In Table 1 we study several values of (Subscript[L, E]), (Subscript[L, A]), the difference (Subscript[L, E])- (Subscript[L, A]), the quotient (Subscript[L, A])/ (Subscript[L, E]) and the relative error ((Subscript[L, E])- (Subscript[L, A]))/ (Subscript[L, E]). Notice that the method of Archimedes is exact for the construction of the triangle, the square and the regular hexagon. The positive sign of the column (Subscript[L, E])- (Subscript[L, A]) indicates that the approach for the method of Archimedes is an under-estimation, and the negative sign that the approach is an over-estimation.

({{n, (Subscript[L, E]), (Subscript[L, A]), (Subscript[L, E]) - (Subscript[L, A]), (Subscript[L, A])/
            (Subscript[L, E]), ((Subscript[L, E]) - (Subscript[L, A]))/(Subscript[L, E])}, {3, 1.73205, 1.73205, 0, 1, 0}, {4, 1.41421, 1.41421, 0, 1, 0}, {5, 1.17557, 1.17491, 6.57336*(10^(-4)), 0.99944, 5.59163*(10^(-4))}, {6, 1, 1, 0, 1, 0}, {7, 0.85776, 0.86917, -1.40948*(10^(-3)), 1.00162, -1.62426*(10^(-3))}, {8, 0.76536, 0.76838, -3.02029*(10^(-3)), 1.00395, -3.94620*(10^(-3))}, {9, 0.68404, 0.68859, -4.55432*(10^(-3)), 1.00666, -6.65798*(10^(-3))}, {10, 0.6803, 0.62393, -5.90314*(10^(-3)), 1.00955, -9.55148*(10^(-3))}, {11, 0.56346, 0.57050, -7.04708*(10^(-3)), 1.01250, -0.0124955}, {12, 0.51763, 0.52561, -7.97689*(10^(-3)), 1.01541, -0.0154102}, {13, 0.47863, 0.48736, -8.73428*(10^(-3)), 1.01825, -0.0182484}, {14, 0.44504, 0.45438, -9.33876*(10^(-3)), 1.02098, -0.0209840}, {15, 0.41582, 0.42563, -9.81485*(10^(-3)), 1.02360, -0.0236034}, {50, 0.12558, 0.13400, -8.42832*(10^(-3)), 1.06711, -0.0671146}, {100, 0.06282, 0.06803, -5.21126*(10^(-3)), 1.08295, -0.0829534}, {1000, 6.28317*(10^(-3)), 6.91450*(10^(-3)), -6.31322*(10^(-4)), 1.10048, -0.0100478}, {10000, 6.28319*(10^(-4)), 6.92682*(10^(-4)), -6.43634*(10^(-5)), 1.0244, -0.102438}})

Table 1: Relative error Archimedes

1.3. IMPROVEMENT OF THE METHOD OF ARCHIMEDES

Why do we join the point M with the second point of the partition of the vertical diameter? Would it be possible to improve the method of Archimedes by selecting a different point N? To answer these questions, let us consider the point on the y-axis with coordinates

\(\((0, 
        1 - \(k\_A\) \((n)\) 
            2\/n)\) = \(\((0, \(n - 2 \( k\_A\) \((n)\)\)\/n)\) = \((0, \(n - δ\)\/n)\)\), δ = \(\(δ\_A\) \((n)\)\  = \ 
        2 \( k\_A\) \(\((n)\)\(.\)\)\)\)

Our intention is to find the value of δ so that the length on the segment joining B and C is equal to (Subscript[L, E]) (observe that C depends on the election of δ). Repeating the previous process we obtain

\(distan \((B, 
          C)\) = \(\@2\) \(\(\@\(\(n\^2 + δn + δ\^2 - \((n - δ)\) \@\(n\^2 + 4  δn - 2  δ\^2\)\)\/\(4  n\^2 - 
                    2  δn + δ\^2\)\)\)\(.\)\)\)

Hence, given n, we want to find the value of δ or equivalently the value of (Subscript[k, A])(n) such that

distan (B, C) = (Subscript[L, E]).

So that we can implement in Mathematica

kA[n_] := 
        (x/2) /. FindRoot[
            2  Sin[(π/n)] - (Sqrt[2]) (Sqrt[(((n^2) + x n + (x^2) - (n - x) (Sqrt[(n^2) + 4  x n - 2  (x^2)]))/(4  (n^2) - 2  x n + (x^2)))]), {x, 
              4}];

Thus the following algorithm, starting from the idea of Archimedes, allows the exact construction of the regular polygon of n sides:
	1) Fix n (number of sides of the regular polygon that we want to draw).
	2) Calculate (Subscript[k, A])(n) and N=(0,1-(2/n)(Subscript[k, A])(n)).
	 3) Substitute this value of N in step 4 of the method of Archimedes.
Table 2, showing selected values for  (Subscript[k, A])(n), justifies the selection of the second point of the division of the vertical diameter, when the method of Archimedes is applied to building a regular polygon with an arbitrary number of sides.

({{n, (Subscript[k, A]) (n)}, {3, 2}, {4, 2}, {5, 2.00129}, {6, 2}, {7, 1.99647}, {8, 1.99153}, {9, 1.98584}, {10, 1.97983}, {11, 1.97378}, {12, 1.96783}, {13, 1.96209}, {14, 1.95660}, {15, 1.95139}, {50, 1.87079}, {100, 1.84441}, {1000, 1.81703}, {10000, 1.81412}})

Table 2: Improvement of the Method of Archimedes

Finally, the limit of the function  (Subscript[k, A])(n) when n→∝ is (Sqrt[3]) π/3≃1.813799, as can be checked in Mathematica using

Limit[
      (x/2) /. Solve[
          2  Sin[(π/n)] - (Sqrt[2]) (Sqrt[(((n^2) + x n + (x^2) - (n - x) (Sqrt[(n^2) + 4  x n - 2  (x^2)]))/(4  (n^2) - 2  x n + (x^2)))]) == 0, 
          x], n -> Infinity]

2. THE METHOD OF BARDIN

The method of Bardin is another geometric procedure the approximate construction of a regular polygon. We will make a parallel study to the one carried out for the method of Archimedes.

2.1. DESCRIPTION OF THE ALGORITHM

1) Trace a circumference.
	2) Trace its two main diameters, which we will denote for \(\(AA'\)\&_\) and \(TraditionalForm\`\(BB'\)\&_\). Divide one of these diameters, for example the horizontal one, from right to left in as many equal parts, n, as the number of sides the regular polygon that we want to build. We will call  the third division Q.
	3) Add to the diameters \(\(AA'\)\&_\) and \(TraditionalForm\`\(BB'\)\&_\) toward the right and up respectively one of these n parts. This way we obtain  the points M and N.
	4) Trace a straight line joining M and N that will cut the circumference in two points (whenever ≥5). We will use P to identify the point from the both previous whose x-coordinate is larger.
	5) The segment \(PQ\&_\) is the side that, taken on the circumference, allows us to draw in an approximate way a regular polygon of n sides inscribed in the circumference.

Figure 3: Construction of the regular octagon by Bardin

As in the previous section, we will use Mathematica to justify the validity of the method. Let us begin by finding the length of the side \(PQ\&_\) of the regular polygon of n sides which results from the preceding algorithm. Working again with the circumference of radius 1, we obtain the point P by solving the nonlinear system

{({{(x^2) + (y^2) = 1}, {x + y = ((n + 2)/n)}})

where the straight line x+y = (n+2)/n is the one going through the points

M=(1 + (2/n), 0)=(((n + 2)/2), 0)   and   N=(0, 1 + (2/n))=(0, ((n + 2)/2)).

Now we can apply Mathematica.

Solve[{(x^2) + (y^2) == 1, x + y == ((n + 2)/n)}, {x, y}]

Taking into account the procedure of Bardin, from the two solutions we choose that with smaller y-coordinate (or larger x-coordinate), this is

\(P = \(\((\(n + 2 + \@\(n\^2 - 4  n - 4\)\)\/\(2  n\), \(n + 2 - \@\(n\^2 - 4  n - 4\)\)\/\(2  n\))\)\(.\)\)\)

On the other hand, the coordinates of the point Q are

Q = (1 - 3  (2/n), 0) = (((n - 6)/n), 0).

Hence, the length of the segment \(TraditionalForm\`PQ\&_\) can be calculated by means of the functions

P[
          n_] := {((n + 2 + (Sqrt[(n^2) - 4  n - 4]))/(2  n)), ((n + 2 - (Sqrt[(n^2) - 4  n - 4]))/(2  n))};
Q[n_] := {((n - 6)/n), 0};
Simplify[distan[P[n], Q[n]]]

obtaining as length of the approximate side (Subscript[L, B]) of the regular polygon of n sides

\(L\_B = \(\(\@\(n\^2 - 8  n + 48 - \((n - 6)\) \@\(n\^2 - 4  n - 4\)\)\/n\)\(.\)\)\)

Note that the point P is only well defined for values of n ≥ 5, because then (n^2) - 4n - 4 ≥ 0. Therefore, the method of Bardin is not applicable either to the construction of the equilateral triangle or to the square.

2.2. ERROR IN THE METHOD OF BARDIN

Let us study, as in the method of Archimedes, the relative error ((Subscript[L, E])- (Subscript[L, B])) / (Subscript[L, E]) to analyze the precision of the algorithm of Bardin. By means of the code

SideBardin[
          n_] := ((Sqrt[(n^2) - 8  n + 48 - (n - 6) (Sqrt[(n^2) - 4  n - 4])])/n);
RelativeErrorBardin[
          n_] := ((ExactSide[n] - SideBardin[n])/ExactSide)[n];
Limit[RelativeErrorBardin[n], n -> Infinity]

we obtain as a limit of the relative error when n≥∝ the value

1-((Sqrt[10])/π)≃-0.00658

The comparison of this value with the limit of ((Subscript[L, E]) - (Subscript[L, A])) / (Subscript[L, E]) suggests that the method of Bardin is more exact than that of Archimedes. Figure 4 illustrates the behaviour of the relative error for the method of Bardin.

Plot[RelativeErrorBardin[n], {n, 5, 100}];

Figure 4: Behaviour of the relative error of the method of Bardin

In Table 3 we study some values of (Subscript[L, E]), (Subscript[L, B]), the difference (Subscript[L, E]) - (Subscript[L, B]), the quotient (Subscript[L, B])/(Subscript[L, E]) and the relative error ((Subscript[L, E])-(Subscript[L, B]))/(Subscript[L, E]). Observe that the method of Bardin is also exact for the construction of the regular hexagon.

({{n, (Subscript[L, E]), (Subscript[L, B]), (Subscript[L, E]) - (Subscript[L, B]), (Subscript[L, B])/
            (Subscript[L, E]), ((Subscript[L, E]) - (Subscript[L, B]))/(Subscript[L, E])}, {5, 1.17557, 1.16619, 9.38013*(10^(-3)), 0.992021, 7.97921*(10^(-3))}, {6, 1, 1, 0, 1, 0}, {7, 0.86776, 0.86751, 2.48210*(10^(-4)), 0.999714, 2.86033*(10^(-4))}, {8, 0.76536, 0.76461, 7.48958*(10^(-4)), 0.999021, 9.78561*(10^(-4))}, {9, 0.68404, 0.68304, 9.94934*(10^(-4)), 0.998546, 1.45450*(10^(-3))}, {10, 0.61803, 0.61698, 1.05149*(10^(-3)), 0.998299, 1.70134*(10^(-3))}, {11, 0.56346, 0.56246, 1.00313*(10^(-3)), 0.998220, 1.78029*(10^(-3))}, {12, 0.51763, 0.51673, 9.04078*(10^(-4)), 0.998253, 1.74654*(10^(-3))}, {13, 0.47863, 0.47784, 7.84956*(10^(-4)), 0.998360, 1.64000*(10^(-3))}, {14, 0.44504, 0.44437, 6.62171*(10^(-4)), 0.998512, 1.48789*(10^(-3))}, {15, 0.41582, 0.41527, 5.44080*(10^(-4)), 0.998692, 1.30844*(10^(-3))}, {21, 0.29808, 0.29805, 3.49901*(10^(-5)), 0.999883, 1.17383*(10^(-4))}, {22, 0.28463, 0.28464, -1.94551*(10^(-5)), 1.000068, -6.835239*(10^(-5))}, {50, 0.12558, 0.12596, -3.86981*(10^(-4)), 1.003082, -3.08152*(10^(-3))}, {100, 0.06282, 0.06311, -2.95464*(10^(-4)), 1.004703, -4.70322*(10^(-3))}, {1000, 6.28317*(10^(-3)), 6.32329*(10^(-3)), -4.01130*(10^(-4)), 1.006384, -6.38426*(10^(-3))}, {10000, 6.28319*(10^(-4)), 6.32443*(10^(-4)), -4.12436*(10^(-6)), 1.006564, -6.56412*(10^(-3))}})

Table 3: Relative error Bardin

We would like to remark that the construction is carried out for under-estimation until the polygon of 21 sides, while this construction over-estimates starting from the polygon of 22 sides. Moreover, from the last column it follows that the construction of the polygons of 21 and 22 sides by means of the algorithm of Bardin is especially accurate.

2.3. IMPROVEMENT OF THE METHOD OF BARDIN

Let us justify the selection of the point Q and study a possible improvement of the method. In order to do that, let us consider the point of the x-axis

(1 - (Subscript[k, B]) (n) (2/n), 0)=(((n - 2  (Subscript[k, B]) (n))/n), 0)=(((n - δ)/n), 0),δ=(Subscript[δ, B]) (n) = 2  (Subscript[k, B]) (n).

We want to find the value of δ such that the length on the segment joining P and Q is equal to (Subscript[L, E]) (observe that Q depends on the selection of δ). Reasoning as before, we have that

\(distan \((P, 
          Q)\) = \(\(\@\(\((\(n + 2 + \@\(n\^2 - 4  n - 4\)\)\/\(2  n\) - \(n - δ\)\/n)\)\^2 + \((\(n + 2 - \@\(n\^2 - 4  n - 4\)\)\/\(2  n\))\)\^2\)\)\(.\)\)\)

For an arbitrary n, our purpose is to find δ such that

distan (P, Q) =  (Subscript[L, E]),

that can be calculated with Mathematica by means of

kB[n_] := 
        (x/2) /. FindRoot[
            2  Sin[(π/n)] - (Sqrt[(((((n + 2 + (Sqrt[(n^2) - 4  n - 4]))/(2  n)) - ((n - x)/n)))^2) + (((((n + 2 - (Sqrt[(n^2) - 4  n - 4]))/(2  n))))^2)]), {x, 6}];

This justifies the following algorithm that allows to build the regular polygon of n sides in an exact way, starting from the idea of Bardin:
	1) Fix n (number of sides of the regular polygon we want to draw).
	2) Calculate (Subscript[k, B])(n) and Q=(1-(2/n)(Subscript[k, B])(n),0).
	 3) Substitute this value of Q in step 5 of the method of Bardin.
Table 4 clearly shows the reason for the selection of the third division in the algorithm of Bardin.

({{n, (Subscript[k, B]) (n)}, {5, 3.02731}, {6, 3}, {7, 3.00095}, {8, 3.00325}, {9, 3.00483}, {10, 3.00565}, {11, 3.00591}, {12, 3.00580}, {13, 3.00545}, {14, 3.00495}, {15, 3.00435}, {21, 3.00039}, {22, 2.99977}, {50, 2.98977}, {100, 2.98441}, {1000, 2.97886}, {10000, 2.97826}})

Table 4: Improvement of the Method of Bardin

Again, we can observe that this selection is independent of the number of sides. On the other hand, the limit of the function (Subscript[k, B])(n) when n→∝ is (Sqrt[(π^2)-1])≃ 2.97819, as can be proved with Mathematica by using

Limit[
      x/2 /. NSolve[
          2  Sin[(π/n)] - (Sqrt[(((((n + 2 + (Sqrt[(n^2) - 4  n - 4]))/(2  n)) - ((n - x)/n)))^2) + (((((n + 2 - (Sqrt[(n^2) - 4  n - 4]))/(2  n))))^2)]) == 0, x], n -> Infinity]

3. COMPARISON BETWEEN BOTH METHODS. CONCLUSIONS.

To begin with, observe that the method of Archimedes is valid for the approximate construction of any regular polygon, while the method of Bardin is valid for the approximate construction of regular polygons of five or more sides. This restriction of the method of Bardin is not relevant, because the equilateral triangle and the square can be built easily in an exact way. It is important to point out that both methods are exact for the construction of the regular hexagon, being also identical to the method of Archimedes for the construction of the triangle and the square.
	From the observation of the tables of the relative errors, it follows that the method of Archimedes obtains its best approach in the construction of the pentagon and the relative error grows with the number of sides. On the other hand, the algorithm of Bardin reaches its best results for the construction of the polygons of 21 and 22 sides.
	The construction of the regular polygons by means of the method of Archimedes always results in over-estimation except for the pentagon, while the method of Bardin approaches the polygons by under-estimation from the triangle to the polygon of 21 sides, with over-estimation starting from the polygon of 22 sides. 
	Finally, comparing the limits at infinity of the relative errors of both algorithms (10.26% for the method of Archimedes and 0.658% for the method of Bardin), we can conclude the advantage of the method of Bardin over the Archimedes one. In fact, only for the construction of the pentagon is the method of Archimedes superior to the method of Bardin. The comparison of the limits at infinity of the ratios (Subscript[L, A])/(Subscript[L, E]) and (Subscript[L, B])/(Subscript[L, E]), also illustrates this advantage.
	Figure 5 compares the relative errors of both methods, using a solid line for the graph corresponding to the method of Archimedes and a dashed line for the graph of Bardin.

Plot[{RelativeErrorArchimedes[n], RelativeErrorBardin[n]}, {n, 5, 
          100}, PlotStyle  -> {GrayLevel[0], Dashing[{ .02}]}];

Figure 5: Comparison between relative errors

4. ANIMATION WITH MATHEMATICA 4.0 OF BOTH METHODS

To conclude we give the code in Mathematica for animating the two methods:

4.1 METHOD OF ARCHIMEDES

Needs["Graphics`Graphics`"];

\(\(circ[x_] := 
        ParametricPlot[{Cos[t], Sin[t]}, {t, 0, x*Pi/3}, 
          AspectRatio -> Automatic, 
	Ticks -> None, AxesOrigin -> {0, 0}, 
          PlotRange -> {{\(-1.2\), 2}, {\(-1.2\), 1.2}}, 
          PlotStyle -> RGBColor[1, 0, 0]];\)\)

arc1 = 
        ParametricPlot[{2*Cos[t], 1 + 2*Sin[t]}, {t, 7*Pi/4 + Pi/20, 
            7*Pi/4 + 3*Pi/20}, AspectRatio -> Automatic, Ticks -> None, 
          AxesOrigin -> {0, 0}, 
          PlotRange -> {{-1.2, 2}, {-1.2, 1.2}}, 
          PlotStyle -> RGBColor[1, 0, 0]];
\(\(arc2 = 
        ParametricPlot[{2*Cos[t], \(-1\) + 2*Sin[t]}, 
		{t, 
            Pi/4 - 3*Pi/20, Pi/4 - Pi/20}, AspectRatio -> Automatic, 
          Ticks -> None, 
		AxesOrigin -> {0, 0}, 
          PlotRange -> {{\(-1.2\), 2}, {\(-1.2\), 1.2}}, 
          PlotStyle -> RGBColor[1, 0, 0]];\)\)

Input["Introduce the number of sides (greater than 2) of the \
regular polygon you want to draw; m:="];

ray[n_, k_] := 
        Line[{{-0.05, 1 - 2  k/n}, {0.05, 1 - 2  k/n}}];
vectoray[j_] := Table[ray[m, k], {k, 1, j}];
two := 1 - 4/m;

straight[n_] := 
        Plot[(4 - n)/n*((x/Sqrt[3]) - 1), {x, -1.2, 2}, 
          AspectRatio -> Automatic, Ticks -> None, AxesOrigin -> {0, 0}, 
          PlotRange -> {{-1.2, 2}, {-1.2, 1.2}}];
mark = straight[m];

lsubA[
          n_] = ((Sqrt[2])/2)*(Sqrt[((n^2 + 4  n + 16 - (n - 4) (Sqrt[n^2 + 16  n - 32]))/(n^2 - 2  n + 4))]);
angle[n_] := 2*ArcSin[lsubA[n]/2];
anglevertex[n_, r_] := Pi/2 + r*angle[n];
abcissa[n_, r_] := Cos[anglevertex[n, r]];
ordinate[n_, r_] := Sin[anglevertex[n, r]];
vertex[n_, r_] := {abcissa[n, r], ordinate[n, r]};
segment[n_, 0] := Line[{{0, 1}, vertex[n, 1]}];
segment[n_, m - 1] := Line[{vertex[n, m - 1], {0, 1}}];
segment[n_, r_] := 
        Line[{vertex[n, r], vertex[n, r + 1]}];
vectorsegment[j_] := Table[segment[m, k], {k, 0, j}];

c1 = circ[1]; c2 = circ[2]; c3 = circ[3]; c4 = circ[4]; 
    c5 = circ[5]; 
    c6 = circ[6];
Show[c6, 
        Graphics[{PointSize[ .02], 
            Point[{0, 1}]}]];
Show[c6, 
        Graphics[{PointSize[ .02], Point[{0, 1}]}], 
        arc1];
Show[c6, arc1, 
        Graphics[{PointSize[ .02], Point[{0, -1}]}]];
Show[c6, 
        arc1, arc2, 
        Graphics[{PointSize[ .02], Point[{0, -1}]}]];
For[
        i = 0, i < m - 1, 
        Show[c6, arc1, arc2, Graphics[vectoray[i]]], i++];
Show[c6,arc1,arc2,Graphics[Text["\!\(\*
StyleBox[\"2\",\nFontSize->14]\)",{ .15, two}]],Graphics[vectoray[m - 1]]];
Show[c6,arc1,arc2,Graphics[Text["\!\(\*
StyleBox[\"2\",\nFontSize->14]\)",{ .15, two}]],mark,Graphics[vectoray[m - 1]]];
For[j = -1,j < m - 1,Show[c6,arc1,arc2,Graphics[Text["\!\(\*
StyleBox[\"2\",\nFontSize->14]\)",{ .15, two}]],mark,Graphics[vectoray[m - 1]],
		Graphics[vectorsegment[j]]],j++];

4.2 METHOD OF BARDIN

Needs["Graphics`Graphics`"]

\(\(circB[x_] := 
        ParametricPlot[{Cos[t], Sin[t]}, {t, 0, x*Pi/3}, 
          AspectRatio -> Automatic, 
	Ticks -> None, AxesOrigin -> {0, 0}, 
          PlotRange -> {{\(-1.2\), 1.6}, {\(-1.2\), 1.6}}, 
          PlotStyle -> RGBColor[1, 0, 0]];\)\)

Input["Introduce the number of sides (greater than 4) of the \
regular polygon you want to draw; m:="];

rayB[n_, k_] := 
        Line[{{-1 + 2  k/n, -0.05}, {-1 + 2  k/n, 
              0.05}}];
vectorayB[j_] := Table[rayB[m, k], {k, 1, j}];
three := 1 - 6/m;

\(\(arcB = 
        ParametricPlot[{\((1 + 2/m)\)*Cos[t], \((1 + 2/m)\)*Sin[t]}, {t, 0, 
            Pi/2}, 
		AspectRatio -> Automatic, Ticks -> None, 
          AxesOrigin -> {0, 
              0}, 
		PlotRange -> {{\(-1.2\), 1.6}, {\(-1.2\), 1.6}}, 
          PlotStyle -> RGBColor[1, 0, 0]];\)\)

straightB[n_] := 
        Plot[-x + (n + 2)/n, {x, -0.2, 1.6}, 
          AspectRatio -> Automatic, Ticks -> None, AxesOrigin -> {0, 0}, 
          PlotRange -> {{-1.2, 1.6}, {-1.2, 1.6}}];
mark1 = straightB[m];

signal1[
          n_] := {((n + 2 + (Sqrt[n^2 - 4  n - 4]))/(2  n)), ((n + 2 - (Sqrt[n^2 - 4  n - 4]))/(2  n))};
signal2[n_] := {((n - 6)/n), 0};
measure[n_] := Line[{signal1[n], signal2[n]}];
mark2 = measure[m];

lsubB[
          n_] := (Sqrt[((n^2 - 8  n + 48 - (n - 6)*(Sqrt[n^2 - 4  n - 4]))/n)^2]);
angleB[n_] := 2*ArcSin[lsubB[n]/2];
anglesignalB[n_, r_] := Pi/2 + r*angleB[n];
abcissaB[n_, r_] := Cos[anglesignalB[n, r]];
ordinateB[n_, r_] := Sin[anglesignalB[n, r]];
signal3[n_, r_] := {abcissaB[n, r], ordinateB[n, r]};
segmentB[n_, 0] := Line[{{0, 1}, signal3[n, 1]}];
segmentB[n_, m - 1] := Line[{signal3[n, m - 1], {0, 1}}];
segmentB[n_, r_] := 
        Line[{signal3[n, r], signal3[n, r + 1]}];
vectorsegmentB[j_] := Table[segmentB[m, k], {k, 0, j}];

c1 = circB[1]; c2 = circB[2]; c3 = circB[3]; c4 = circB[4]; 
    c5 = circB[5]; 
    c6 = circB[6];
For[i = 0, i < m + 1, 
        Show[c6, Graphics[vectorayB[i]]], i++];
Show[c6, 
        Graphics[{PointSize[ .02], Point[{0, 0}]}], 
        Graphics[vectorayB[m + 1]]];
Show[c6, 
        arcB, Graphics[{PointSize[ .02], Point[{0, 0}]}], 
        Graphics[vectorayB[m + 1]]];
Show[c6, arcB, mark1, 
        Graphics[vectorayB[m + 1]]];
Show[c6,arcB,mark1,Graphics[Text["\!\(\*
StyleBox[\"3\",\nFontSize->14]\)",{three, - .15}]],Graphics[vectorayB[m + 1]]];
Show[c6,arcB,mark1,Graphics[Text["\!\(\*
StyleBox[\"3\",\nFontSize->14]\)",{three, - .15}]],Graphics[mark2],Graphics[vectorayB[m + 1]]];
For[j = -1,j < m - 1,Show[c6,arcB,mark1,Graphics[Text["\!\(\*
StyleBox[\"3\",\nFontSize->14]\)",{three, - .15}]],Graphics[mark2],Graphics[vectorayB[m + 1]],
		Graphics[vectorsegmentB[j]]],j++];

5. REFERENCES

• C.B.Boyer, Historia de las Matemáticas, First Edition. Ed.Alianza Universidad Textos, Madrid (1987), 195--204.
• J.C.Cortés, Estudio matemático del trazado general de polígonos regulares, Epsilon 39 (1997), 149--158.
• S.Wolfram, Mathematica, a system for doing mathematics by computer. Ed.Adison-Wesley (1991).
• S.Wolfram, The Mathematica book, Wolfram Media, Inc (1996).

ABOUT THE AUTHORS

Juan A. Aledo is Doctor in Mathematics and Assistant Professor in the Department of Mathematics of the University of Castilla-La Mancha (Spain). Email: jaledo@pol-ab.uclm.es
	Juan C. Cortés is Doctor in Mathematics and Assistant Professor in the Department of Computer Sciencies of the University of Castilla-La Mancha (Spain). Email: jccortes@info-ab.uclm.es
	Fernando L.Pelayo is Degree in Mathematics and Assistant Professor in the Department of Computer Sciencies of the University of Castilla-La Mancha (Spain). Email: fpelayo@info-ab.uclm.es

ELECTRONIC SUBSCRIPTIONS

Included in the distribution for each electronic subscription is the file aledo.nb containing Mathematica code for the material described in this article.