Code covered by the BSD License  

Highlights from
Solving multiple-root polynomials

Be the first to rate this file! 10 Downloads (last 30 days) File Size: 51.9 KB File ID: #28377

Solving multiple-root polynomials

by

 

03 Aug 2010 (Updated )

Find roots and multiplicities of given polynomials using this short compact routine.

| Watch this File

File Information
Description

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 stand-alone file M_polyroots.exe has also been created to be run in DOS without MATLAB.

Request for 'M_polyroots.exe' may be made by e-mail to: fcchang007@yahoo.com.

Ref: IEEE Antennas & Propagation Magazine, vol. 51, no. 6, pp.151-155, Dec 2009

*****************************************************************************************

 

Acknowledgements

Polynomial Coefficient Vector Derived From Sub Polynomial Factors and Polynomials With Multiple Roots Solved inspired this file.

MATLAB release MATLAB 6.5 (R13)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
07 Jan 2011

Update the files. Include, for example, solving a polynomial expanded: p(x) = (x +98.7654321+123.456789i)^123.

Contact us