# Polynomial Root finder

(Hit count: 241723)This Polynomial solver finds the **real** or **complex** roots (or zeros) of a polynomial
of any degree with either **real** or **complex** coefficients. The method was original based on a modified Newton iteration method developed by Kaj Madsen back in the seventies, see: [K.Madsen: "A root finding algorithm based on Newton Method" Bit 13 1973 page 71-75]. However I have recently added other methods: Ostrowski, Halley's, Householder 3^{rd} order, Jenkins-Traub, Laguerre's, Eigenvalue, Durand-Kerner, Aberth-Ehrlich, Chebyshev, Ostrowski Square root method, Arithmetic Mean Newton & Steffensen method. See the Authors paper on the subject Read more ... Notice that all methods are so called *modified method's*, which maintain there convergence rate even for multiple roots.

**Corrections:**

5-Mar-2024 | Introduce Autoscaling, no autoscaling in plotting of graph and 2D contour |

20-Dec-2023 | Added 2D Contour plot |

23-Nov-2023 | Added 3D Surface plot |

30-Oct-2023 | Improve the termination criterion for the Durand-Kerner and the Anerth method |

22-Oct-2023 | Switched to the Plotly librariy for the graphic. The issue with the Plot function has been fixed |

12-Jul-2021 | Fixed a bug in parsing Polynomial involving non-integer number to the ^ operator |

24-Jun-2020 | Added Steffensen & Arithmetic Mean Newton root method |

6-Jun-2020 | Added Chebyshev & Ostrowski Square root method |

26-Apr-2020 | Added Durand-Kerner and Aberth-Ehrlich method |

22-Apr-2020 | Fix a bug in the Halley method for multiplicity greater than 1 |

17-Apr-2020 | Fix a bug in the Ostrowski method |

16-Mar-2020 | Added the Laguerre's and the Eigenvalue methods for finding zeros of Polynomials with either real or complex coefficients |

31-Jan-2020 | Added the fameous Jenkins-Traub methods for finding zeros of Polynomials with either real or complex coefficients |

29-Jan-2020 | Fixed an issue where the test for newton convergence produce a wrong result making Newton, Halley & Householder failed for large polynomials |

17-Jan-2020 | Added 3 extra methods, Halley, Householder 3^{rd} and Ostrowski |

1-Nov-2019 | GUI redesigned |

25-Oct-2018 | Fix a bug where the wrong Complex arithmetic libraries was uploaded to the web site. |

24-Mar-2014 | Fixed several parsing issues involving cascade power e.g. i^2, i^3^2 and cascade power for x e.g. x^2^3 etc. Fixed also an overflow issue when dealing with polynominal with a degree exceeding 174. e.g. x^175+1. Thanks to Kaspii Kaspars & Wei Xu for reporting this. |

21-Apr-2011 | Email button added, for Emailing the result. |

17-Apr-2011 | Layout changes and switching to using canvas object for HTML graphic. Now Print also print the Graphic of the Roots, Function Values and Convergence Power |

16-Nov-2009 | A parsing error was corrected -x^2 was incorrectly parsed as x^2 while -1x^2 was handle correctly |

28-Oct-2009 | A parsing error was corrected involving proper treatment of the exponent E or e in the expression like1.31E-06 |

20-Jun-2009 | Works now with the Safari Browser |

14-Apr-2009 | Fixed a bug that allowed overflow in calculation caused by unreasonable step size for large polynomials greater than x^27 resulting in some incorrect roots. |

24-Feb-2009 | Parsing bug corrected that incorrectly did not recognized an implicit multiplication in complex expression. |

01-Jan-2009 | Parsing bug corrected that left out the constant term in some situations |

23-Oct-2008 | Detect a constant as a non polynomial and report an error |

05-Sep-2008 | Works with Google Chrome |

18-Jul-2008 | Works with IE7, Firefox 2 & 3 and add polynomial expression as input |

30-Oct-2007 | Complex coefficients with an implicit value e.g (i) was interpreted as i0 instead of i1 |

29-July-2007 | Now roots point in the graphic display will also be printable |

12-July-2007 | A bug has been fixed for polynomial with roots of zeros. |

07-Dec-2006: | A small FireFox 2.0 bug was corrected on Dec 8, 2006. The problem was that separation of sign and arguments was not done correctly due to a differences in the Regular expression split function. (Thanks to Brian Phelan for making me aware of the problem and providing the fix) |