Polynomials with multiple roots solved

Solving multiple roots polynomial, using simple elementary arithematic operations mostly.
Updated 15 May 2014

View License

A given polynomial having multiple roots is solved by the routine
Z = poly_roots(p)
Input p: polynomial coefficient vector
Output Z: root-multiplicity pairs

The MATLAB source code is very simple and compact (fewer then 50 lines) and amazingly gives the expected results for any test polynomials of very high degree and multiplicities.

In this simple routine 'poly_roots.m', except for a MATLAB built-in function 'roots.m', all the required computations involve only simple elementary arithematic operations (such
as additions, subtractions, multiplications, divisions, and integer exponations), without applying any high mathematics. The only routine 'roots.m' is used here mainly to solve a simple roots polynomial (not any multiple roots polynomials).

Most of the calculations in this routine involve elementary arithematic operations, therefore, it is fairly easy to improve the expected results from the existing double precision to vpi' multiple precision.

For detail description, please refer to

F.C. Chang, "Solving multple-root polynomials" IEEE Antennas and Propagation Magazine, Vol.51, No.6, pp. 151-155, Dec. 2009.

Cite As

Feng Cheng Chang (2024). Polynomials with multiple roots solved (https://www.mathworks.com/matlabcentral/fileexchange/25375-polynomials-with-multiple-roots-solved), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Polynomials in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Correct a tiny bug, pinpointed by a reader.

Minor correction to poly_roots.m

Update the original source code. It involves only simple elementary operations, except 'roots.m'. It may easily convert into multiple precision later.

add some examples

Update the m-file to speed up operations. Also present 17 typical examples for test polynomials in MATLAB script file.

Update m-file -- improve help description

Update the m-file, the very small roots can thus be solved.