Heron was ahead of his time- this is actually   now called Newton Rhapson   iteration . The basic process can be used to solve  some very large order (in variables) simultaneous non-linear equations   as in power system  load flow  problems that can have hundreds or more variables (first applied to these problems in the 1960's - a time when many numerical analysts didn't think there was a need to deal with anything near as many variables.

I recall showing my youngest son this when he first encountered square roots.

Don Kelly



On 2018-11-01 12:53 PM, Jimmy Gauvin wrote:
Hi,

A good read on the subject of square roots :

A Perfect Square Root Routine
E.E. McDonnell
http://www.jsoftware.com/papers/eem/sqrt.htm

On Thu, Nov 1, 2018 at 3:32 PM Raul Miller <[email protected]> wrote:

Square roots cannot (in the typical case) be represented using
extended precision numbers (which are integers).

    a=:1234567890101020405060708090x
    a^1r2
3.51364e13
    datatype a^1r2
floating

This floating representation represents numbers using a representation of
    sign * 1+fraction * 2^exponent

This all fits into a 64 bit representation with one bit for sign
(choosing from 1 or _1), 52 bits for the fraction, and the remaining
11 bits for the exponent (with a few exponent values reserved for
handling infinities and "NaN" numbers). (All arranged so that the same
less than / greater than logic used for integers will also work for
floating point numbers.)

But the (a) value is not a square number:

    __ q: a
2 5 211 461 23339 54381270850093261
1 1   1   1     1                 1

If it were square, the values in the second row of that result would
all be even numbers.

So that means that a precise representation of the square root would
take an infinite number of bits in the floating point fraction, which
is more than the 52 bits which get used.

Anyways, if you want a better approximation of the square root, you'd
probably use the floating point value as a starting point and then use
some algorithm to improve that estimate until it seems good enough.

--
Raul





FYI,

--
Raul
On Thu, Nov 1, 2018 at 3:13 PM Skip Cave <[email protected]> wrote:
a=:1234567890101020405060708090x


a=2^~a^1r2

1

a=2^~%:a

1

a-:2^~a^1r2

1

a-:2^~%:a

1


NB. All looking good. However:


x:2^~a^1r2

1234567890101024064259751936

a

1234567890101020405060708090


NB. Clearly not equal.


x:2^~%:a

1234567890101020490846961664

a

1234567890101020405060708090


NB. Also clearly not equal, and different from the first one!


What's going on!


Skip
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to