Polynomial GCD Derived through Monic Polynomial Subtractions

A simple and efficient algorithm for finding the GCD of a pair of univariate polynomials is derived. The process requires only successive subtraction of two monic polynomials. Amazingly, this approach gives the desired GCD for a pair of test polynomials of very high degree, such as (𝑥


Introduction
The computation of the greatest common divisor GCD of a pair of polynomials is an important issue in computational mathematics and also plays a crucial role in many science and engineering fields.Several numerical methods have been proposed for the derivation of polynomial GCD 1-5 .Some are based on the classical Euclidean algorithm and the others are based on the procedures involving Sylvester resultant matrix.Most of them require algorithm of some advanced mathematics, such as the singular value decomposition and the least square iteration process.
In this paper a simple and effective method to find the GCD of a pair of given polynomials is presented.The process requires only the successive subtraction of two monic polynomials.It is modified purposely from the longhand polynomial divisions employed in the classical Euclidean GCD computation.The entire computations require only simple elementary arithmetic operations, such as division and subtraction.
A MATLAB code is provided, along with a typical numerical example.Amazingly, this routine gives the GCD for a pair of test polynomials of very high degree.

Mathematical Formulation
From the classical Euclidean algorithm for computing polynomial GCD, the longhand polynomial division is consecutively employed: where quotient q k x and remainder p k x are obtained from dividing dividend p k−2 x by divisor p k−1 x .If the quotient q k x in every recurrent process can be converted into a numerical constant or even equal to 1, q k x 1, by making both p k−2 x and p k−1 x equal degree and monic, then the longhand polynomial division becomes simply a pair of "monic polynomials subtraction": The recurrent process of this approach may therefore be summarized as follows.

2.4
Both polynomials p 0 x and p 1 x are now in the same degree and monic.Applying the monic polynomial subtraction consecutively starting from k 2 until k K 1, such that

2.7
It is noted that the complete set of p k x , referred to as "polynomial remainder sequence" 3, 4 , may also be computed during the recurrent process.The entire computations involve only elementary arithmetic operations without any advanced mathematics.The total numbers of recurrent process for computing GCD of the two given polynomials b x and a x are amazingly fewer than n c m c .

Computer Routine in MATLAB
The computer code ÔÓÐÝ ºÑ in MATLAB is presented.The inputs p and q are coefficient vectors of two given polynomials b x and a x , and the output g is the desired greatest common divisor g x .The input data can be either real or complex numbers.See Algorithm 1.

Applications
One of the most important applications of polynomial GCD is to find the roots with multiplicities of high-degree multiple-root polynomials 3 .Let a univariate polynomial p x of degree N be given, and then the K roots z k with multiplicities m k are to be sought, such that −87555 55800 −13500 0 0 0 0 0 ; q polyder p ; q polygcd p,q ; p, q, g, p 1 −5 We are now to find the rational function r x or its related polynomials u x and v x , such that where and g x is the polynomial GCD of p x and p x : Then, z k and m k are simply the poles and residues of the rational function r x .Therefore, instead of directly solving for z k and m k from the original N-degree multiple-root polynomial, we may now easily find the roots z k from the K-degree simple-root polynomial, and the corresponding multiplicities m k by the partial fraction expansion coefficients of the rational function r x v x /u x , A short program code ÔÓÐÝ ÖÓÓØ×ºÑ for solving multiple-root polynomials is presented.It uses only basic built-in MATLAB routines except the function ÔÓÐÝ .Ñ for computing polynomial GCD.See Algorithm 3.

Conclusion
The very simple and efficient algorithm for the calculation of GCD of a pair of given polynomials is developed.The entire computations involve only simple elementary arithmetic operations.Amazingly, the derived routine gives the desired results for the test polynomials of very high degrees, such as x 1 1000 , x−123456789 30 , and 1234x 56789 50 , and their respective derivatives.
One of the most important applications for polynomial GCD is to find the roots with multiplicities of polynomials with high degrees 1-3 .It reveals that the higher the root multiplicities of the given polynomial are, the more efficient this approach becomes.This is contrary to the usual experience that the most difficult part of solving for the roots of a polynomial is calculating those that have high multiplicities 1 .
Given a pair of polynomials b x and a x of degrees n and m, and a x have n z and m z zero trailing coefficients, respectively, and b c x and a c x represent the polynomials without zero trailing coefficients, assuming that n c ≥ m c , where n c deg b c x and m c deg a c x .Before finding our desired g x gcd b x , a x , we first consider g c x gcd b c x , a c x by setting