If I have a multivariate polynomial $P[X_1,\dots,X_n]\in \mathbb{R}[X_1,\dots, X_n]$, is there a polynomial time algorithm to factor the polynomial into irreducible polynomials $\in \mathbb{C}[X_1,\dots,X_n]$?

Also, how do the factors look like - are they all linear or constant polynomials or could they also be non-linear?

If the factorization involves non-linear irreducible polynomials, then is it possible to list all the roots of $P[X_1,\dots,X_n]$ in polynomial time?

Edit: To give some motivation for my question, my goal is to find if a polynomial is $\geq 0$ on its entire domain or not.

  • 1
    $\begingroup$ Not necessarily linear, example $y-x^k$. $\endgroup$ – André Nicolas Oct 14 '11 at 21:42
  • 1
    $\begingroup$ How do you propose to list all the roots of a polynomial in any amount of time, if the polynomial has uncountably many of them? (I take it by "roots" you mean $n$-tuples of complex numbers that make the polynomial zero; if you mean something else, then, what?) $\endgroup$ – Gerry Myerson Oct 14 '11 at 21:55
  • $\begingroup$ I thought that every polynomial had a finite number of roots... $\endgroup$ – user17663 Oct 14 '11 at 21:57
  • 3
    $\begingroup$ @Opt: only in one dimension. The zero set of a polynomial in more than one variable is a space rather than a finite set of points, e.g. $p(x, y) = x^2 + y^2 - 1$ has zero set the unit circle. $\endgroup$ – Qiaochu Yuan Oct 14 '11 at 22:09
  • $\begingroup$ For the edited question, there are many algorithms, but probably none that involve factoring. $\endgroup$ – André Nicolas Oct 14 '11 at 23:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy