# Most Efficient Method to Find Roots of Polynomial [duplicate]

I am designing a software that has to find the roots of polynomials. I have to write this software from scratch as opposed to using an already existing library due to company instructions. I currently know three main methods of finding roots: the Secant method, the Newton-Raphson method and the Interval Bisection method. I will need to implement the most efficient one of these algorithms in my software, so could someone please let me know how these methods compare in terms of speed? Or if anyone knows any different methods that could potentially be more efficient the three mentioned above, could they please mention them too? Thanks.

It is currently my understanding that the Interval-Bisection method is slower than the Newton-Raphson one. However, I also know that the Newton-Raphson method does not always reach the correct answer due to asymptotes. In regards to this, would it be more efficient to mix two, or more, algorithms, for example, loop through the Newton-Raphson method for a set number of times and then switch to the slower Interval Bisection method after that in case the Newton-Raphson method never reaches an answer? If this is the case, which algorithms would be the most efficient to implement together? I do not currently know how the Secant method compares to the other two in terms of efficiency, so any insight on that would be appreciated too.

Thanks very much for your time.

Update

I would be using these methods to find the Internal Rate of Return (IRR). Therefore, I would not necessarily need to find the complex roots as I will be dealing with finance. However, it could be a very large polynomial depending on how many payments there are.

## marked as duplicate by LutzL, apnorton, Umberto P., Jeel Shah, Tom OldfieldJul 9 '14 at 16:08

• Your question is too general to give you accurate answers. What kind of polynomials are you dealing with; you also need to have a rough guess of where your roots are before you apply any method. Do you care about complex roots? Btw, unless you have multiple roots, it's better to start with a slow method, and then switch to Newton–Raphson which works well when close to your roots. – gniourf_gniourf Jul 4 '14 at 8:42
• You just asked another question with the same theme. I think you need to close one as duplicate. – MonK Jul 4 '14 at 8:56
• I would not rule out fixed point iteration $f(x) = 0 \iff f(x) + x = x$, but you definitely need to go through some numerical analysis texts to compare efficiency and speed up techniques. It was raised here as well: link. – mvw Jul 4 '14 at 9:13