Given a polynomial equation $x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0=0$, where $n$ is even and all the coefficients $a_i$ are real, what is the best way to determine whether it has a real root or not?

I know Sturm's theorem, but I am wondering if it's possible to determine this by the sign of some form of resolvent (e.g., discriminant works for $n=2$, but not 4 or beyond)?

Please point me to some reference if this has already been studied.  Thanks for your time!



I apologize for not searching hard enough - I just realized there is a similar question discussed here before, and has already got lots of useful comments.  My hope is to find a function of these real coefficients and whether the polynomial has real root or not is determined by its sign.

There is indeed an easy way to check if a univariate poly with real coefficients has a real root, without computing the roots.
Note that the answer for odd degree polynomials is always yes. For an even degree polynomial $p(x)$ do the following:

Compute the Hermite form of the polynomial. This is a symmetric matrix defined e.g. here: (on page 4, near the bottom denoted by $H_1(p)$). The entries of this matrix can be filled using Newton identities.

The number of real roots of $p(x)$ is equal to the signature of the Hermite matrix $H_1(p)$, i.e., the number of positive eigenvalues minus the number of negative eigenvalues.

Since the Hermite form is symmetric, its characteristic poly has
only real roots. Therefore, we can apply Descartes' rule of signs to its char.
polynomial, which would give us exactly the number of positive and negative
eigenvalues of the Hermite form.


This process gives you the exact number of real roots of $p(x)$ without computing the roots, and in particular you can see if the polynomial has a real root.
Hope this helps.
-Amirali Ahmadi
