Babylonian method of computing square roots


1 Description

To compute the square root of a number which lies between 0 and 2, one may use a method of successive approximations which involves only the operations of squaring and averaging. The basis of method is the binomial identity:

(x+y)2=x2+2xy+y2

Write the number whose square root is to be computed as 1-x. Write the square root of the number as 1-y. By definition, one has

(1-y)2=1-x

Using the binomial identity,

1-2y+y2=1-x.

Cancelling,

-2y+y2=-x.

Moving terms from one side to the other,

2y=x+y2

Dividing by 2,

y=12(x+y2).

Even though y appears alone on one side of the equation, we cannot use it directly to obtain y because y also appears on the other side. However, if y lies between -1 and +1, then y2 is smaller than y and y2/2 is even smaller. So, as a first approximation, the occurrence of y on the right hand side can be ignored. One then obtains a second approximation to y as x/2. To obtain a third approximation to y, one can substitute the second approximation into the right hand side. One can continue this process of substituting the preceding approximation into the right hand side and computing the next approximation forever. In symbols, this procedure may be described as follows:

y1=0
yn+1=12(x+yn2)

As we shall see, this procedure converges to the correct value of y in the limit as n.

2 Examples

To illustrate this, consider 1/2. Since 1/2=1-1/2, it is the case that x=1/2 so the recursion is as follows:

yn+1=12(12+yn2)=14+12yn2

The first few approximations look as follows:

y1=0
y1=0.25
y2=0.28125
y3=0.28955
y4=0.29192
y5=0.29261
y6=0.29281
y7=0.29287
y8=0.29289

Hence, the eighth approximation for 1/2 is 0.70711. Squaring this, we see that it agrees with 0.5 to five decimal places. To be sure, the Babylonians would have written their numbers is base 60 rather than base 10 as we do, yet the calculation of 1/2 given above is substantially the same as was carried out centuries ago by ancient scholars on clay tablets.

As it shall be seen, this method requires that the number whose square root is to be computed lie between 0 and 2 in order to converge. However, with a few simple hacks, it is possible to use it to compute the square roots of numbers which lie outside of this range. One possibility is to compute the square root of the reciprocal of the number. For example, one can take the reciprocal of the result obtained above to obtain 1.41421 as a value for 2.

However, this is not so good a strategy for computing the square roots of large numbers — the reciprocal of a large number is a small number, and will turn out that the method takes a long time to converge. A better strategy is to divide the number in question by a perfect squareMathworldPlanetmath to obtain a number in the suitable range.

How this works can be illustrated by computing 10. The perfect sqare 9=32 is close to 10. So, instead of computing 10, consider 10/9. Once this has been computed, one can multiply by 3 to obtain the answer because 310/9=910/9=10. In this case, x=-1/9, the recursion looks like

yn+1=-118+12yn2

and the approximations go as follows:

y1=0
y2=-0.05556
y3=-0.05401
y4=-0.05410
y5=-0.05409

Subtracting from 1 and multiplying by 3, one obtains 3.16227 as a value for 10, which is good to 5 decimal places.

3 Convergence

Having shown that how this method works, it is now time to make sure that it really does work. As a first step, it will be shown that, if x lies between -2 and +1, then all approximations yn lie between -1 and +1 as well. By definition y0 lies in the required range, since it is defined to be 0. Suppose that yn lies in the range. Then, by definition,

yn+1=12(x+yn).

Since both x and yn lie between -1 and +1, it follows that their average must lie in the same range.

To show convergence, the recursion will subtracted from a shifted version of itself like so:

yn+2=12(x+yn+12)
yn+1=12(x+yn2)
yn+2-yn+1=12(yn+12-yn2)

The right hand side, being a difference of squares, may be factored.

yn+2-yn+1=12(yn+1+yn)(yn+1-yn)

For ease of explanation, define the quantity zn=yn+1-yn. In terms of this entity, the above equation may be written as

zn+1=12(yn+1+yn)zn

The proof will now proceed differently for the cases of x positivePlanetmathPlanetmath and x negative. (The in-between case x=0 is trivial.) If x is positive, then it readily follows from the recursion that yn is positive for all n. Hence, 12(yn+1+yn) is also positive for all n. Now, z2=x/2, so z2 is positive. Since the product of two positive quantities is positive, it follows by induction that zn is positive for all n. By definition, this means that yn+1>yn for all n. Since we know that yn is less that 1 for all n and boundedPlanetmathPlanetmath increasing sequences converge, it follows that the sequenceMathworldPlanetmath is convergentMathworldPlanetmathPlanetmath.

If x is negative, then it can be shown that yn lies between x/2 and 0 for all n. This is trivially true for y1. Assume that it is true for a particular value of n. Then yn2 is positive and smaller than -x. Hence, x+yn2 lies between x and 0, so (x+yn2)/2, which equals yn+1, lies between x/2 and 0.

Consequently, (yn+1+yn)/2 will lie between x/2 and 0. By the recursion for zn, one therefore has

|zn+1||x2||zn|

from which it follows that

|zn||x2|n|z1|

By definition of zn, one has

|ym-yn|=|j=n+1mzj|j=n+1m|zj|j=n+1m|x2|n|z1|=(|x|/2)m-(|x|/2|)n1-|x|/2|z0|.

If x lies between -2 and 0, then |x|/2 is smaller than 1 in absolute valueMathworldPlanetmathPlanetmathPlanetmathPlanetmath, so it follows from Cauchy’s criterion that the sequence converges.

It is not enough that the sequence converges; it must converge to the right value. This, however, is easily checked. Take the limit of both sides of the recursion:

limnyn+1=limn12(x+yn2)

Defining y=limnyn, it follows that

y=12(x+y2).

Reading the algebraicMathworldPlanetmath argument at the beginning of this entry backwards, one sees that 1-y is indeed the square root of 1-x as it is supposed to be.

Title Babylonian method of computing square roots
Canonical name BabylonianMethodOfComputingSquareRoots
Date of creation 2013-03-22 15:16:45
Last modified on 2013-03-22 15:16:45
Owner rspuzio (6075)
Last modified by rspuzio (6075)
Numerical id 9
Author rspuzio (6075)
Entry type Algorithm
Classification msc 00A05
Classification msc 01A17
Related topic BombellisMethodOfComputingSquareRoots