35 votos

Una interesante observación sobre las raíces de ciertos polinomios

Considere el siguiente polinomio: $$\sum_{k=1}^{n}\text{prime}(k)x^{k-1}$$ donde $n\in\mathbb{N}$ y $\text{prime}(n)$ es el primo número $n$. Los primeros polinomios son:
\begin{align} n=1&:\quad 2\\ n=2&:\quad 2+3x\\ n=3&:\quad 2+3x+5x^2\\ n=4&:\quad 2+3x+5x^2+7x^3 \end{align} Considere el número de raíces reales de estos polinomios. Los primeros números de raíces reales de estos polinomios forman la secuencia $0,1,0,1,0,1,0,1,0,1,0,1,0,1,...$. Este patrón de ceros alternos y $1$'s se cumple para todos los primos menores a $1000$ (verificado por @Quimey). Tengo dos preguntas:

  • ¿Este patrón siempre se mantiene? Dicho de otra forma, ¿el número de raíces reales del polinomio $\sum_{k=1}^{n}\text{prime}(k)x^{k-1}$ siempre es igual a $(1 + (-1)^{n})/2$?
  • En caso afirmativo, ¿cómo podemos demostrarlo?

Nota: Disculpen si me perdí algo "trivial", no tengo mucha experiencia en matemáticas.

13voto

Nao Puntos 96

El patrón se rompe en $n = 2437$, donde el polinomio tiene dos raíces reales según el siguiente código en SageMath (que produce 2).

R. = PolynomialRing(ZZ)
primes = primes_first_n(2437)
p = sum(np.array(primes)*np.array([x**i for i in range(len(primes))]))
print(pari(p).polsturm())

Creo que este es el valor más pequeño de $n$ de este tipo. No estoy seguro por qué la secuencia se rompe ahí en particular; los espacios entre primos alrededor de $\text{prime}(2437)=21727$ no parecen ser especialmente especiales.

Podemos descartar un error en el software al verificar el valor exacto del polinomio en puntos racionales cercanos a las dos raíces (gracias a Ivan Neretin por la sugerencia). Usé la clase Rational de SymPy, pero esto también se podría hacer usando el tipo int de Python y multiplicando por la mayor potencia del denominador en el polinomio para evitar fracciones. La salida del código

import sympy
n = 2437
sympy.sieve.extend_to_no(n)
for numerator in [-9967, -9966, -9965]:
    x = sympy.Rational(numerator, 10000)
    print(sympy.functions.sign(sum([sympy.sieve[i+1]*x**i for i in range(n)])))

es 1, -1, 1, lo que prueba que el polinomio tiene al menos dos raíces reales (por continuidad).

0voto

W. Edwin Clark Puntos 117

Esta pregunta motivó el siguiente artículo de W. Edwin Clark y Mark A. Shattuck que puede ser de interés para los fanáticos de esta pregunta: The Integer Sequence Transform $a \mapsto b$ donde $b_n$ es el número de raíces reales del polinomio $a_0 + a_1x + a_2x^2 + \cdots + a_nx^n$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X