top of page

Usando R para analizar la distribución de los número primos

  • fjroar
  • 11 jul 2021
  • 3 Min. de lectura

La Teoría de Números es sin duda, la reina de las matemáticas, aún a día de hoy existen numerosos enunciados muy fáciles de entender, pero a los que aún no hemos sido capaces de ofrecer una demostración definitiva.


En esta entrada quería hacer la presentación de una librería que existe en R y que se llama primes, que permite dar una visión un poco más geométrica a algunos problemas de esta maravillosa teoría, que debería ofrecerse tanto a nivel de facultad o inferior.


En este caso voy a hacer referencia al libro A Classical Introduction to Modern Number Theory, donde en sus primeras páginas se al conocido como Teorema de los Números Primos, demostrado al final del XIX por Hadamard y Vallé Poussin de modo independiente (nótese que estas cosas sucedían en esta época porque no existía internet …)

El teorema viene a establecer lo siguiente:


π(x) y x / ln(x) son infinitésimos equivalentes para x suficientemente grande


Donde π(x) es el número de primos entre 1 y x

Estoy seguro que nadie se sienta una tarde de verano y se pone a pensar sobre ¿Qué teorema demuestro hoy? Para llegar a un resultado como el anterior, seguro que pintaron en un plano cartesiano, por un lado los datos de la función π(x) y por otro los datos de la función x / ln(x) y se dieron cuenta que cuando x era muy grande, ambas funciones parecían que convergían a valores parecidos, pero claro, ponte tú a contar ahora, por ejemplo el número de primos entre por ejemplo 1 y 15.000

Para la desgracia de Hadamard y Vallé Poussin, el no tener en la época ordenadores y lenguajes como R que implementen funciones como las anteriores, daba además una dificultad extra al problema. Supongamos que se desea dibujar las gráficas de las funciones π(x) (en azul) y de f(x) = x / ln(x) (en naranja) en el intervalo 1 a 10.000.000 muestreando de 10.000 en 10.000, se podría hacer a partir de una función que existe en la librería que se denomina is_prime() generaría, con unas pocas líneas de código R una gráfica como la de la cabecera. Esta función indica, dada una lista de número cuál es primo y cuál no lo es y es mucho más recomendable su uso que otra función que dispone esta librería y que se denomina prime_count(), que en teoría estima el número de primos hasta una cierta cantidad, pero hace uso de los resultados existentes hasta día de hoy como el que se comenta en el siguiente párrafo, por lo que para la prueba que aquí se plantea no estaría demostrando nada.

Se observa que parece que las gráficas se separan, pero eso no ocurre indefinidamente, de hecho, se consigue acotar la función π(x), con una prueba de Pierre Durart en 2010 que consigue afinar un poco más estos resultados del siguiente modo:

x/(ln x – 1) < π(x) Si x > 5392

π(x) < x / (ln x – 1.1) Si x > 60183


A continuación se representa “nuestra” función π(x) , con las cotas anteriormente mencionadas bajo el mismo intervalo y muestreo de observaciones hasta obtener el siguiente gráfico:


Nótese que las 2 cotas, superior e inferior, están super-ajustadas de hecho, se hace una ampliación en la franja de los 8M y 9M se observa lo siguiente:



Un control prácticamente absoluto de la función π(x) que está restringida a las 2 franjas, mucho más exactas que el primer resultado de Hadamard y Vallé Poussin y es que la matemática moderna actual sigue aún obteniendo grandes resultados, donde antes no se podía.


Finalmente cabe comentar que esta función, de “contar” números primos y las desigualdades que se han ido demostrando, para poder conocer cómo se distribuyen estos, es otro de los grandes problemas de las matemática que lleva en boga los últimos 200 años y que sin duda, seguirá dando resultados aparentemente sencillos, pero para los que se requiere grandes dosis de ingenio.


Dado que existen este tipo de recursos en R (y creo que en python también), prometo comentar en próximos post, más resultados de esta índole que espero que os gusten.

Comments


© 2021 by Francisco J. Rodríguez Aragón. Proudly created with Wix.com

bottom of page