Square-free polynomial

Polynomial with no repeated root

In mathematics, a square-free polynomial is a polynomial defined over a field (or more generally, an integral domain) that does not have as a divisor any square of a non-constant polynomial.[1] A univariate polynomial is square free if and only if it has no multiple root in an algebraically closed field containing its coefficients. This motivates that, in applications in physics and engineering, a square-free polynomial is commonly called a polynomial with no repeated roots.

In the case of univariate polynomials, the product rule implies that, if p2 divides f, then p divides the formal derivative f' of f. The converse is also true and hence, f {\displaystyle f} is square-free if and only if 1 {\displaystyle 1} is a greatest common divisor of the polynomial and its derivative.[2]

A square-free decomposition or square-free factorization of a polynomial is a factorization into powers of square-free polynomials

f = a 1 a 2 2 a 3 3 a n n = k = 1 n a k k {\displaystyle f=a_{1}a_{2}^{2}a_{3}^{3}\cdots a_{n}^{n}=\prod _{k=1}^{n}a_{k}^{k}\,}

where those of the ak that are non-constant are pairwise coprime square-free polynomials (here, two polynomials are said coprime is their greatest common divisor is a constant; in other words that is the coprimality over the field of fractions of the coefficients that is considered).[1] Every non-zero polynomial admits a square-free factorization, which is unique up to the multiplication and division of the factors by non-zero constants. The square-free factorization is much easier to compute than the complete factorization into irreducible factors, and is thus often preferred when the complete factorization is not really needed, as for the partial fraction decomposition and the symbolic integration of rational fractions. Square-free factorization is the first step of the polynomial factorization algorithms that are implemented in computer algebra systems. Therefore, the algorithm of square-free factorization is basic in computer algebra.

Over a field of characteristic 0, the quotient of f {\displaystyle f} by its greatest common divisor (GCD) with its derivative is the product of the a i {\displaystyle a_{i}} in the above square-free decomposition. Over a perfect field of non-zero characteristic p, this quotient is the product of the a i {\displaystyle a_{i}} such that i is not a multiple of p. Further GCD computations and exact divisions allow computing the square-free factorization (see square-free factorization over a finite field). In characteristic zero, a better algorithm is known, Yun's algorithm, which is described below.[1] Its computational complexity is, at most, twice that of the GCD computation of the input polynomial and its derivative. More precisely, if T n {\displaystyle T_{n}} is the time needed to compute the GCD of two polynomials of degree n {\displaystyle n} and the quotient of these polynomial by the GCD, then 2 T n {\displaystyle 2T_{n}} is an upper bound for the time needed to compute the square free decomposition.

There are also known algorithms for the computation of the square-free decomposition of multivariate polynomials, that proceed generally by considering a multivariate polynomial as a univariate polynomial with polynomial coefficients, and applying recursively a univariate algorithm.[3]

Yun's algorithm

This section describes Yun's algorithm for the square-free decomposition of univariate polynomials over a field of characteristic 0.[1] It proceeds by a succession of GCD computations and exact divisions.

The input is thus a non-zero polynomial f, and the first step of the algorithm consists of computing the GCD a0 of f and its formal derivative f'.

If

f = a 1 a 2 2 a 3 3 a k k {\displaystyle f=a_{1}a_{2}^{2}a_{3}^{3}\cdots a_{k}^{k}}

is the desired factorization, we have thus

a 0 = a 2 1 a 3 2 a k k 1 , {\displaystyle a_{0}=a_{2}^{1}a_{3}^{2}\cdots a_{k}^{k-1},}
f / a 0 = a 1 a 2 a 3 a k {\displaystyle f/a_{0}=a_{1}a_{2}a_{3}\cdots a_{k}}

and

f / a 0 = i = 1 k i a i a 1 a i 1 a i + 1 a k . {\displaystyle f'/a_{0}=\sum _{i=1}^{k}ia_{i}'a_{1}\cdots a_{i-1}a_{i+1}\cdots a_{k}.}

If we set b 1 = f / a 0 {\displaystyle b_{1}=f/a_{0}} , c 1 = f / a 0 {\displaystyle c_{1}=f'/a_{0}} and d 1 = c 1 b 1 {\displaystyle d_{1}=c_{1}-b_{1}'} , we get that

gcd ( b 1 , d 1 ) = a 1 , {\displaystyle \gcd(b_{1},d_{1})=a_{1},}
b 2 = b 1 / a 1 = a 2 a 3 a n , {\displaystyle b_{2}=b_{1}/a_{1}=a_{2}a_{3}\cdots a_{n},}

and

c 2 = d 1 / a 1 = i = 2 k ( i 1 ) a i a 2 a i 1 a i + 1 a k . {\displaystyle c_{2}=d_{1}/a_{1}=\sum _{i=2}^{k}(i-1)a_{i}'a_{2}\cdots a_{i-1}a_{i+1}\cdots a_{k}.}

Iterating this process until b k + 1 = 1 {\displaystyle b_{k+1}=1} we find all the a i . {\displaystyle a_{i}.}

This is formalized into an algorithm as follows:

a 0 := gcd ( f , f ) ; b 1 := f / a 0 ; c 1 := f / a 0 ; d 1 := c 1 b 1 ; i := 1 ; {\displaystyle a_{0}:=\gcd(f,f');\quad b_{1}:=f/a_{0};\quad c_{1}:=f'/a_{0};\quad d_{1}:=c_{1}-b_{1}';\quad i:=1;}
repeat
a i := gcd ( b i , d i ) ; b i + 1 := b i / a i ; c i + 1 := d i / a i ; i := i + 1 ; d i := c i b i ; {\displaystyle a_{i}:=\gcd(b_{i},d_{i});\quad b_{i+1}:=b_{i}/a_{i};\quad c_{i+1}:=d_{i}/a_{i};\quad i:=i+1;\quad d_{i}:=c_{i}-b_{i}';}
until b = 1 ; {\displaystyle b=1;}
Output a 1 , , a i 1 . {\displaystyle a_{1},\ldots ,a_{i-1}.}

The degree of c i {\displaystyle c_{i}} and d i {\displaystyle d_{i}} is one less than the degree of b i . {\displaystyle b_{i}.} As f {\displaystyle f} is the product of the b i , {\displaystyle b_{i},} the sum of the degrees of the b i {\displaystyle b_{i}} is the degree of f . {\displaystyle f.} As the complexity of GCD computations and divisions increase more than linearly with the degree, it follows that the total running time of the "repeat" loop is less than the running time of the first line of the algorithm, and that the total running time of Yun's algorithm is upper bounded by twice the time needed to compute the GCD of f {\displaystyle f} and f {\displaystyle f'} and the quotient of f {\displaystyle f} and f {\displaystyle f'} by their GCD.

Square root

In general, a polynomial has no square root. More precisely, most polynomials cannot be written as the square of another polynomial.

A polynomial has a square root if and only if all exponents of the square-free decomposition are even. In this case, a square root is obtained by dividing these exponents by 2.

Thus the problem of deciding if a polynomial has a square root, and of computing it if it exists, is a special case of square-free factorization.

Notes

References

  1. ^ a b c d Yun, David Y.Y. (1976). "On square-free decomposition algorithms". SYMSAC '76 Proceedings of the third ACM Symposium on Symbolic and Algebraic Computation. Association for Computing Machinery. pp. 26–35. doi:10.1145/800205.806320. ISBN 978-1-4503-7790-4. S2CID 12861227.
  2. ^ Dummit, David S.; Foote, Richard M. (2004). Abstract Algebra. p. 547. ISBN 978-81-265-3228-5.
  3. ^ Gianni, P.; Trager, B. (1996). "Square-Free Algorithms in Positive Characteristic". Applicable Algebra in Engineering, Communication and Computing. 7 (1): 1–14. doi:10.1007/BF01613611. S2CID 36886948.