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