flintlib / arb

Arb has been merged into FLINT -- use https://github.com/flintlib/flint/ instead
http://arblib.org/
GNU Lesser General Public License v2.1
457 stars 138 forks source link

Numerical complex root finding in ARB #238

Open rudolph-git-acc opened 6 years ago

rudolph-git-acc commented 6 years ago

Are there any plans to include a function supporting numerical complex root finding similar to FindRoot in Mathematica?

Context: For numerical work on this project: https://terrytao.wordpress.com/2018/09/06/polymath15-tenth-thread-numerics-update/#comment-504637, we are keen to explore the behaviour of the real and complex zeros of this integral when t become increasingly negative:

image

Have already coded the Muller-method in ARB and this gives reasonably good outcomes, however only for smaller x, y and t (note the integral decays rapidly). Therefore wondered whether any advanced complex root finding methods are planned for the ARB-library.

fredrik-johansson commented 6 years ago

Yes, this is a long-term goal but I'm not working actively on this at the moment.

It's a simple problem to try to find (and then certify) just one root. A harder problem is to isolate all roots on a given rectangle or polygonal domain. It would indeed be interesting to try to have algorithms for both problems entirely without requiring derivatives, using complex magnitudes and analyticity tests for error bounds just like the numerical integration code.

For isolating all roots, I don't know if it's better in practice to do pure subdivision or to use the argument principle to get a certified root count.