Al menos en principio, una solución es el siguiente resultado, debido a J. Sylvester:
Teorema (Sylvester). Para cada número natural n \geq 2 existe un conjunto de más de n-1 polinomios con coeficientes enteros R_{n, \, 1}(X_1, \ldots, X_n), \ldots, R_{n, \, k(n)}(X_1, \ldots, X_n)
tal que el monic real de los polinomios de grado n P(x)=x^n+a_{1}x^{n-1}+ \cdots + a_n
tener sólo las raíces reales son precisamente aquellos para los que R_{n, \, 1}(a_1, \ldots, a_n) \geq 0, \ldots, R_{n, \, k(n)}(a_1, \ldots, a_n) \geq 0.
Esto puede ser visto como una generalización del hecho bien conocido de que un verdadero cuadrática monic polinomio x^2+a_1x+a_2 sólo tiene raíces reales si y solo si su discriminante D_2(1, \, a_1, \, a_2)=a_1^2-4 a_2
es no negativo. De hecho, para todos los enteros positivos n tenemos R_{n, \, 1}(a_1, \ldots, a_n) = D_n(1, \, a_1, \ldots, a_n),
donde D_n es el discriminante de P(x), mientras que los otros polinomios R_{n, \,i} puede ser explícitamente calculada en términos de determinantes extraído de la matriz de Sylvester P e P'.
Así, con el fin de responder a su pregunta, se debe verificar si R_{n, \, 1}(\epsilon_1 a_1, \ldots, \epsilon_n a_n) \geq 0, \ldots, R_{n, \, k(n)}(\epsilon_1 a_1, \ldots, \epsilon_n a_n) \geq 0
para algunos la elección de \epsilon_1, \ldots, \epsilon_n \in \{-1, \, 1 \}. Desde el punto de vista computacional, el problema es que el número de no-cero de los coeficientes en nuestro polinomios aumenta rápidamente con el grado: por ejemplo, R_{9, \,1}=D_9 ha 26095 términos.
Para más detalles, ver
C. Niculescu, L. E. Persson: Funciones Convexas y sus Aplicaciones: Un Enfoque Contemporáneo, el Apéndice B.