Software Listing of Author : "Feng Cheng Chang"
- Multiple-root polynomial solved by partial fraction expansion
- License: Freeware
- Price: 0.00


A given polynomial p(x) is transformed into a rational function r(x). The poles and residues of the derived rational function are found to be equivalent to the roots and multiplicities of the original polynomial. p(x) = Given polynomial = PROD[k=1:K]{(x - z_k)^m_k} d(x) = (d/dx)p(x) g(x) = GCD(p(x),d(x)) u(x) = p(x)/g(x) w(x) = (d/dx)u(x) v(x) = d(x)/g(x) r(x) = v(x)/u(x) = SUM[k=1:K]{m_k/(x - z_k)} Thus, the roots z_k are computed from solving the simple-root polynomial u(x)=0, instead of the original multiple-root polynomial p(x)=0; and the multiplicities m_k are determined as the partial fraction expansion coefficients of the derived rational function r(x)=v(x)/u(x), z_k = Roots(u(x)), k=1,K m_k = v(z_k)/w(z_k), k=1,K In addition, re-constructing a polynomial pz(x) from the computed z_k and m_k, the overall deviation...
- Publisher: Feng Cheng Chang
- Date Released: 22-03-2013
- Download Size: 10 KB
- Download
- Platform: Matlab, Scripts
- Polynomial coefficient vector derived from sub-polynomial factors
- License: Freeware
- Price: 0.00


For given p(x) = PROD[i=1,m]{SUM[j=2,n+2]{(A(i,j)*x^(j-2))^A(i,1)}} we shall get p(x) = SUM[s=1,N+1]{p(s)^(N+1-s)} For example If p(x) = (x-4)^5 * (3x^6-7x^3+5x+2)^2 * (x^3+8)^3 * x^2 or A = [ 5 -4 1 0 0 0 0 0 2 2 5 0 -7 0 0 3 3 8 0 0 1 0 0 0 1 0 0 1 0 0 0 0 ] then from p = polyget(A) we get p = [ 9 -180 1440 -5586 .... -7864320 -209715 0 0 ] or p(x) = 9x^28-180x^27+1440x^26-5586x^25+ ... -7864320x^3-2097152x^2. This routine is mainly to be used for creating test polynomials to (a) determine the polynomial GCD of a pair of polynomials, (b) find the roots with muliplicities of a given polynomial. References in MATLAB Central: (1) "GCD of polynomials," File ID 20859, 12 Apr 2009 (2) "Factorization of a polynomial with multiple roots," File ID: 20867, 27 Jul 2008 (3) "Multiple-roots polynomial solved by...
- Publisher: Feng Cheng Chang
- Date Released: 01-05-2013
- Download Size: 10 KB
- Download
- Platform: Matlab, Scripts
- Polynomial division by convolution -- up to finite terms
- License: Shareware
- Price:


Polynomial division by convolution. Calculate inverse Z-transform -- (Polynomial division) - Up to K terms, q(z) = b(z)/a(z), where b(z)=b(0)+...+b(k)/z^k +...+b(n)/z^n. a(z)=a(0)+...+a(k)/z^k +...+a(m)/z^m. q(z)=q(0)+...+q(k)/z^k +...+q(K)/z^K + ...... If coefficients of b(x) and a(x) are all integers, then the entire process may involve integer arithmetric perations only. The round-off errors may therefore be eliminated. This code is similar to the code by Tamer Abdelazim Mellik's "Calculate inverse Z-transform by long division."
- Publisher: Feng Cheng Chang
- Date Released: 18-03-2013
- Download Size: 10 KB
- Download
- Platform: Matlab, Scripts
- Solving multiple-root polynomials
- License: Shareware
- Price:


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:...
- Publisher: Feng Cheng Chang
- Date Released: 09-06-2013
- Download Size: 51 KB
- Download
- Platform: Matlab, Scripts


