Polynomials with multiple roots are a challenge for traditional root finding algorithms, as their accuracy and numerical stability can be severely affected.
This problem can be reduced by dividing the polynomial of interest, by the greatest common divisor or itself and its derivative. One can easily show that this results in a polynomial with non-multiple roots.
The proposed algorithm works as follows:
1. Divide the input polynomial by the greatest common factor of itself and its first derivative.
2. Find roots of resulting polynomial.
3. Finally, determine multiplicity of each root.
Mauricio Martinez-Garcia (2021). Computing multiple roots of polynomials with improved accuracy. (https://www.mathworks.com/matlabcentral/fileexchange/56818-computing-multiple-roots-of-polynomials-with-improved-accuracy), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!