Post Reply 
Heads up for a hot new root seeking algorithm!!
02-01-2017, 10:03 PM (This post was last modified: 02-01-2017 10:15 PM by Namir.)
Post: #30
RE: Heads up for a hot new root seeking algorithm!!
(02-01-2017 05:39 PM)Mike (Stgt) Wrote:  I did also invest few days to the subject but I do not publish my results as they are somehow 'unfair'. My focus is limited to solve a^2-z and a^4-z with enhanced precission no pocket calculator offers. The 'unfair' point is, that I compare the elapse time of 'Classical Newton' (CN) solving for sqare root with other methods, but use as x(n+1) = x(n) - f(x(n))/f'(x(n)) its evaluation a = .5 * (a + z / a). So per loop there are only three operations, a division, an addition and a multipliacation. I evaluated also CN of a^4-z, Ostrowski, Grau et al., Weerakoon et al., and Homeier. All have from few more to many more operations which need more time to calculate with the enhanced settings of accurancy (10'000 and more) than the order of convergence might save.

I did my tests on an Hercules-emulated mainframe with compiled REXX and with ooREXX on Windows. My assumption to find the same relations in elapse time did not hold true. While CN was always winner on the host, on the PC the root of 1.01 took twice as long than for 0.99, so other methods did better.

My conclution: i) REXX on PC is not the first choice for heavy number crunching (but for other tasks my favourite language) and ii) the 200LX or the corresponding Connectivity Pack is sufficient for day-to-day root solving, showing a graph too. I tested with it the functions shown in the papers and found no 'pathological' withal.


Oh wow! You use REXX and ooREXX?? I have them installed on my PC but never have the time to use them. I found 00REXX about twenty years ago! I had reviewed REXX for either BYTE magazine or Computer Language. It is a good batch language but not a number crunching language.

Counting the operations adds more insight to the CPU effort. Of course you have to exclude the operations used to evaluate the target function and its derivative(s) and instead count the number of times you call them. I usually use difference approximation for the first and second derivatives. I manage to issue the same number of total function calls as the number of calls to f(x), f'(x), and f''(x) if the latter is needed. Of course some functions have derivatives that have simpler expressions and some have derivatives with more elaborate expressions. "Wish it were so simple" (Paraphrasing from the movie "Hail Caesar").

Find all posts by this user
Quote this message in a reply
Post Reply 

Messages In This Thread

User(s) browsing this thread: 2 Guest(s)