How do computer programs find roots of high-degree polynomials?

2.2k Views Asked by At

My question is motivated by curiosity about the optimization of high-degree polynomial functions.

Let's say your experiment data are modeled by a non-trivial 15th degree polynomial. Taking the derivative of that function would leave you with a 14th degree polynomial. As far as I know, there is simply no way to "manually" find the roots (and therefore critical points) of such a polynomial (please correct me if this is wrong).

However, it seems (Computing roots of high degree polynomial numerically.) that certain programming languages (MATLAB, Mathematica, etc...) have a pretty easy time finding roots of polynomials of much higher degree (up to degree 2000 in less than a minute, apparently).

How do they find those roots, and are they exact values or approximations?

1

There are 1 best solutions below

4
On BEST ANSWER

There's a whole class dedicated to this called Numerical Analysis. Methods like Newton's Method for finding roots are extremely efficient, but this is provided you have the derivative of the function. There are other methods like the Bisection Method where you take an interval and cut the interval in half continuously until you reach the max number of calculations you're willing to do. Bisection is probably the most simple that doesn't fail provided the curve actually does cross in the given interval.

Also, computer algebra systems will give exact results assuming the input is something the terminal knows how to handle. Otherwise, the computer will give approximations in decimal form.