4

After having read the answers to calculating $\pi$ manually, I realised that the two fast methods (Ramanujan and Gauss–Legendre) used $\sqrt{2}$. So, I wondered how to calculate $\sqrt{2}$ manually in an accurate fashion (i.e., how to approximate its value easily).

4 Answers4

11

One really easy way of approximating square roots surprisingly accurately was actually developed by the Babylonians.

First they made a guess at the square root of a number $N$--let this guess be denoted by $r_1$. Noting that $$ r_1\cdot\left(\frac{N}{r_1}\right)=N, $$ they concluded that the actual square root must be somewhere between $r_1$ and $N/r_1$. Thus, their next guess for the square root, $r_2$, was the average of these two numbers: $$ r_2 = \frac{1}{2}\left(r_1+\frac{N}{r_1}\right). $$ Continuing in this way, in general, once we have reached the $n$th approximation to the square root of $N$, we find the $(n+1)$st using $$ r_{n+1}=\frac{1}{2}\left(r_n+\frac{N}{r_n}\right). $$ All that you really need to do is make a moderately decent guess of the square root of a number and then apply this method two or three times and you should have quite a good approximation.

For $\sqrt{2}$, simply using a guess of $1$ and applying this method three times (the algebra involved is remarkably simple) yields an approximation of $$ \frac{577}{408}\approx \color{red}{1.41421}\color{blue}{568627}, $$ whereas $$ \sqrt{2}\approx \color{red}{1.41421}\color{green}{356237}. $$ That's quite a good approximation using an easy and quick manual method.

  • 5
    This is surprisingly the exact recursion that results from applying Newton's method. So any method that is better than this would have to be better than Newton's method. – DanielV Mar 15 '15 at 22:18
3

you can use the formula $$\frac{a_{n+1}}{b_{n+1}}=\frac{a_n^2+2b_n^2}{2a_nb_n}$$ if we take an initial value of $\sqrt{2}$ as $\frac{3}{2}$

now the new value will become $$\frac{a}{b}=\frac{3^2+2*2^2}{2*2*3}=\frac{17}{12}$$

the new value of $a=17$ and $b=12$

and then continue

E.H.E
  • 23,280
3

I think crash's post's method is the best, but if you don't want to do a lot of long divisions, then here is an alternative method for the lazy.

Suppose you want to compute $\sqrt{2}$ to $k$ decimal places. That is, you want to find $x$ in:

$$x \cdot 10^{-k} \approx \sqrt{2}$$ $$x^2 \approx 2 \cdot 10^{2k}$$

This allows you to find $x$ using a binary search: doing approximately $\log(k)$ multiplications of a $k$ digit number (and computing the average of the upper and lower bound, just adding and dividing by $2$ is easy by hand).

And the accuracy of this result guaranteed by construction. Suppose you want to calculate $\sqrt{2}$ to $8$ decimal places:

$$x^2 = 2 \cdot 10^{16}$$

$$\begin{array} {c|ccc} \text{Step} & \text{LowerBound} & \text{UpperBound} &\text{MidPoint} \\ 1 & 100000000 & 1000000000 & 550000000 \\ 2 & 100000000 & 549999999 & 324999999 \\ 3 & 100000000 & 324999998 & 212499999 \\ 4 & 100000000 & 212499998 & 156249999 \\ 5 & 100000000 & 156249998 & 128124999 \\ 6 & 128125000 & 156249998 & 142187499 \\ 7 & 128125000 & 142187498 & 135156249 \\ 8 & 135156250 & 142187498 & 138671874 \\ 9 & 138671875 & 142187498 & 140429686 \\ 10 & 140429687 & 142187498 & 141308592 \\ 11 & 141308593 & 142187498 & 141748045 \\ 12 & 141308593 & 141748044 & 141528318 \\ 13 & 141308593 & 141528317 & 141418455 \\ 14 & 141418456 & 141528317 & 141473386 \\ 15 & 141418456 & 141473385 & 141445920 \\ 16 & 141418456 & 141445919 & 141432187 \\ 17 & 141418456 & 141432186 & 141425321 \\ 18 & 141418456 & 141425320 & 141421888 \\ 19 & 141418456 & 141421887 & 141420171 \\ 20 & 141420172 & 141421887 & 141421029 \\ 21 & 141421030 & 141421887 & 141421458 \\ 22 & 141421030 & 141421457 & 141421243 \\ 23 & 141421244 & 141421457 & 141421350 \\ 24 & 141421351 & 141421457 & 141421404 \\ 25 & 141421351 & 141421403 & 141421377 \\ 26 & 141421351 & 141421376 & 141421363 \\ 27 & 141421351 & 141421362 & 141421356 \\ 28 & 141421357 & 141421362 & 141421359 \\ 29 & 141421357 & 141421358 & 141421357 \\ \end{array}$$

$29$ $8$-digit multiplications for $8$ decimal places of accuracy (and a lot of even that was redundant).

DanielV
  • 23,556
  • Hm, can you explain how you did it? – Alexandre Khoury Mar 16 '15 at 18:53
  • @Mageek Do you know what a binary search is? Like if I say "I'm thinking of a number between 1 and 100" and you guess 50 and I say "too low" so now you know between 50 and 100 so you guess 75, keep going, that is a binary search. – DanielV Mar 16 '15 at 18:58
  • @Mageek This example is much less efficient than crash's, it is just an alternative that is easy to understand. – DanielV Mar 16 '15 at 19:00
1

Another technique might be to use the Taylor series $$(1+x)^{1/2} = 1+ \frac 12 x - \frac 18 x^2 + \frac{1}{16} x^3 - \frac{5}{128} x^4 +\cdots.$$

The coefficients of this series are $\frac{(-1)^k }{k!} \left(\frac12\right) \left(-\frac12\right)\left(-\frac32\right)\cdots\left(\frac32 - k\right)$. You can plug in $x=1$ so that the series evaluates to $\sqrt2$, but the series converges faster if you start with a rational approximation of $\sqrt2$ and use the Taylor series to compute a correction factor, for example $\sqrt 2 = 1.4 \cdot \left(1 + \frac{1}{49}\right)^{1/2}.$

David K
  • 98,388