The MATLAB script file M_polyroots.m is to compute all the roots with multiplicities of any given polynomials.
Let a given polynomial p(x) be expressed as
p(x) = x^9 +7x^8 +12x^7 12x^6 42x^5 6x^4 +44x^3 +20x^2 15x 9
= (x +3)^2 * (x +1)^4 * (x 1)^3
= (x^2 +2x 3)^2 * (x +1)^3 * (x^2 1)
It does give, respectively,
c = [ +1 +7 +12 12 42 6 +44 +20 15 9 ]
r = [ 3 3 1 1 1 1 +1 +1 +1 ]
A = [ 2 3 +2 +1; 3 +1 +1 +0; 1 1 +0 +1 ]
Then the polynomial coefficient vector p may be created by either
(1) p = c
(2) p = poly(r)
(3) p = polyget(A)
The desired roots/mults Z are therefore computed from p by
Z = polyroots(p)
********************************************************************************************
For detail description and typical examples, please see attached file: SolvingMultipleRootsPolynomials.pdf
The standalone file M_polyroots.exe has also been created to be run in DOS without MATLAB.
Request for 'M_polyroots.exe' may be made by email to: fcchang007@yahoo.com.
Ref: IEEE Antennas & Propagation Magazine, vol. 51, no. 6, pp.151155, Dec 2009
*****************************************************************************************
