Polynomial factorization

From Wikipedia, the free encyclopedia

In mathematics and computer algebra, polynomial factorization typically refers to factoring a polynomial into irreducible polynomials over a given field.

Contents

[edit] Formulation of the question

Other factorizations, such as square-free factorization exist, but the irreducible factorization, the most common, is the subject of this article.

Factorization depends strongly on the choice of field. For example, the fundamental theorem of algebra, which states that all polynomials with complex coefficients have complex roots, implies that a polynomial with integer coefficients can be completely reduced to linear factors over the complex field C.

On the other hand, such a polynomial may only be reducible to linear and quadratic factors over the real field R. Over the rational number field Q, it is possible that no factorization at all may be possible. From a more practical vantage point, the fundamental theorem is only an existence proof, and offers little insight into the common problem of actually finding the roots of a given polynomial.

[edit] Factoring over the integers and rationals

For more details on this topic, see Gauss's lemma (polynomial).

It can be shown that factoring over Q (the rational numbers) can be reduced to factoring over Z (the integers). This is a specific example of a more general case — factoring over a field of fractions can be reduced to factoring over the corresponding integral domain. This algebraic point goes by the name of Gauss's lemma.

The classic proof, due to Gauss, first factors a polynomial into its content, a rational number, and its primitive part, a polynomial whose coefficients are pure integers and share no common divisor among them. Any polynomial with rational coefficients can be factored in this way, using a content composed of the greatest common divisor of the numerators, and the least common multiple of the denominators. This factorization is unique.

For example,

10x^2 + 5x + 5 = 5 (2x^2 + x + 1) \,

and

\frac{1}{3}x^5 + \frac{7}{2} x^2 + 2x + 1 = \frac{1}{6} ( 2x^5 + 21x^2 + 12x + 6)

since GCD(1,7,2,1) = 1 and LCM(3,2) = 6.

Now, any polynomial with rational coefficients can be split into a content and a primitive polynomial, and in particular the factors of any factorization (over Q) of such a polynomial can also be so split. Since the content and the primitive polynomials are unique, and since the product of primitive polynomials is itself primitive, the primitive part of the polynomial must factor into the primitive parts of the factors. In particular, if a polynomial with integer coefficients can be factored at all, it can be factored into integer polynomials. So factoring a polynomial with rational coefficients can be reduced to finding integer factorizations of its primitive part.

[edit] Practical techniques

Currently the best techniques for factoring integer polynomials involve factoring over finite fields, but a simpler technique is usable for small polynomials (roughly less than tenth degree), if a computer is used. Since integer polynomials must factor into integer polynomial factors, and evaluating integer polynomials at integer values must produce integers, the integer values of a polynomial can be factored in only a finite number of ways, and produce only a finite number of possible polynomial factors.

For example, consider

f(x) = x5 + x4 + x2 + x + 2.

If this polynomial factors over Z, then at least one of its factors must be of degree two or less. We need three values to uniquely fit a second degree polynomial. We'll use f(0) = 2, f(1) = 6 and f( − 1) = 2. Now, 2 can only factor as

1×2, 2×1, (-1)×(-2), or (-2)×(-1).

Therefore, if a second degree integer polynomial factor exists, it must take one of the values

1, 2, -1, or -2

at x = 0, and likewise at x = − 1. There are eight different ways to factor 6, so there are

4×4×8 = 128

possible combinations, of which half can be discarded as the negatives of the other half, corresponding to 64 possible second degree integer polynomials which must be checked. These are the only possible integer polynomial factors of f(x). Testing them exhaustively reveals that

g(x) = x2 + x + 1,

constructed from g(0) = 1, g(1) = 2 and g( − 1) = 1, factors f(x).

(Van der Waerden, Sections 5.4 and 5.6)

[edit] Factoring over finite fields

See Berlekamp's algorithm and Cantor-Zassenhaus algorithm.

[edit] Factoring over algebraic extensions

We can factor a polynomial p(x) \in K[x], where K is a finite field extension of \mathbb{Q}. First we eliminate any repeated factors in p(x) by taking greatest common divisors with its derivative. Next we write L = K[x] / p(x) explicitly as an algebra over \mathbb{Q}. We next pick a random element \alpha \in L. By the primitive element theorem, α generates L over \mathbb{Q} with high probability. If this is the case, we can compute the minimal polynomial, q(y)\in \mathbb{Q}[y] of α over \mathbb{Q}. Factoring q(y) = \prod_{i=1}^{n} q_i(y) over \mathbb{Q}[y], we determine that L = \mathbb{Q}[\alpha] = \mathbb{Q}[y]/q(y) = \prod_{i=1}^n \mathbb{Q}[y]/q_i(y) (notice that L is reduced since p(x) is), where α corresponds to the element (y,y,\ldots,y). Note that this is the unique decomposition of L as a product fields. Hence this decomposition is the same as \prod_{i=1}^m K[x]/p_i(x) where p(x) = \prod_{i=1}^m p_i(x) is the factorization of p(x) over K[x]. By writing x\in L and generators of K as a polynomials in α, we can determine the embeddings of x and K into the components \mathbb{Q}[y]/q_i(y)=K[x]/p_i(x). By finding the minimal polynomial of x in this ring, we have computed pi(x), and thus factored p(x) over K.

[edit] See also

[edit] Bibliography

  • Van der Waerden, Algebra (1970), trans. Blum and Schulenberger, Frederick Ungar.
In other languages