factor a multivariate polynomial
field extension over which to factor
multivariate polynomial with rational coefficients
(optional) equation method="Wang"
The factor function computes the factorization of a multivariate polynomial with integer, rational, (complex) numeric, or algebraic number coefficients.
The factor function does NOT factor integers. Nor does it factor integer coefficients in a polynomial. Use the ifactor function to factor integers.
For multivariate polynomials with integer coefficients, the factor command offers two algorithms: Wang's algorithm (see [Wang78]) and the algorithm by Monagan and Tuncer ([MT16], [MT18]). The default is the latter, since it is faster on most examples. To explicitly request Wang's algorithm, which was the default in Maple 2018 and earlier versions, use the option method="Wang".
If the second argument K is not given, the polynomial is factored over the field implied by the coefficients. For example, if the coefficients are all integers then factor computes all irreducible factors with integer coefficients. Thus factor does not necessarily factor into linear factors. Note that any integer content (see first example below) is not factored.
If the input, a, is a rational expression, then it is first normalized (see normal) and the numerator and denominator of the resulting expression are then factored. This provides a fully factored form which can be used to simplify an expression in the same way the normal function is used. However, it is more expensive to compute.
If the input, a, is a list, set, equation, range, relation, or function, then factor is applied recursively to the components of a. If a is an exact series, that is, a series object with no order term, then it is first converted to a polynomial before applying factor. If a is a series but not an exact series, then factor is applied recursively to the components of a (that is, its coefficients).
If the second argument K is the keyword real or complex, a floating-point factorization is performed over the reals and complexes respectively. At present this is only implemented for univariate polynomials.
If the second argument K is a single RootOf, a list or set of RootOfs, a single radical, or a list or set of radicals, then the expression is factored over the algebraic number field defined by K.
The following is a splitting field example. The polynomial a is a polynomial over the rationals.
a ≔ x4−x2+1
To factor a over the rationals, use the following.
To factor a into linear factors, you must extend the field of coefficients using algebraic extensions.
a1 ≔ Split⁡a,x
Represent it using radicals.
Depending on the algebraic extension, this can factor in several different ways.
Mark van Hoeij, Factoring polynomials and the knapsack problem. Journal of Number Theory, 95, 167-189, (2002).
[MT16] Michael Monagan and Baris Tuncer. Using Sparse Interpolation in Hensel Lifting. Proceedings of CASC 2016, Springer-Verlag LNCS 9890, 381-400 (2016).
[MT18] Michael Monagan and Baris Tuncer. Factoring multivariate polynomials with many factors and huge coefficients. Proceedings of CASC 2018, Springer-Verlag LNCS 11077, 319-334 (2018).
[Wang78] Wang, P.S. An improved Multivariate Polynomial Factoring Algorithm, Mathematics of Computation 32, (1978).
The factor command was updated in Maple 2019.
Download Help Document