martes, 16 de diciembre de 2014

Factores primos de la parte libre de cuadrados (3)

Ajustes de la función g(n) 

La entrada anterior la dedicamos a la parte libre de cuadrados de los factoriales. La llamamos g(n)=core(n!) e indicábamos que sus valores estaban contenidos en http://oeis.org/A055204. En dicha página señala Charles R Greathouse IV que log g(n) ~ n log 2. Comencemos por ahí:

Como en la entrada anterior se ofrecía una forma de evaluar g(n), podemos crear dos columnas paralelas, una con log(g(n)) y otra con n*log(2). El gráfico correspondiente a los primeros números nos indica que esta aproximación es siempre por exceso, y con un ajuste bastante alto: R2=0,99


La función log(g(n)) tiende a infinito con n de forma sensiblemente lineal

No he encontrado desarrollo teórico sobre esta aproximación, pero es algo que llama la atención. También se puede expresar como g(n) » 2nTambién es sorprendente que g(n) se ajuste bastante bien al número de subconjuntos de un conjunto de n elementos.

James Tanton propone como aproximación inferior en media g(n) » 1,85n.  ¿Qué podríamos afirmar nosotros con una hoja de cálculo? No mucho, pero lo intentaremos:

Ajuste por mínimos cuadrados y Solver

Preparamos cuatro columnas de datos, en la imagen desde la I hasta la L



En la columna I escribimos los primeros números naturales, en la siguiente el logaritmo de G(N), y su aproximación mediante N*LOG(2) en la columna K. Observa que el 2 está escrito en la celda K1. A continuación calculamos en la última columna la diferencia de ambas expresiones elevada al cuadrado. Esta columna la sumamos al final, en la imagen en la celda L1057.



Ahora interviene Solver: le pedimos que elija el valor mínimo en la celda K1 (para sustituir el 2) que consiga minimizar la suma de diferencias al cuadrado contenida en L1057 con lo que habremos realizado un ajuste por mínimos cuadrados:



Nos da como mejor valor 1,94 aproximadamente, muy cercano al 2 de partida.



Este pequeño cambio hace que el ajuste en el gráfico se aprecie mejor:



El ajuste no está sesgado como en el caso del 2.

Esta técnica que acabamos de usar es sencilla, pero no muy usada. La ventaja que tiene es que tú puedes elegir la función de ajuste, que en las líneas de tendencia está obligada a ser lineal, exponencial o potencial. Recuerda los pasos:

* Situamos en dos columnas paralelas la función a estudiar y la que deseamos sirva de ajuste
* Si la función de ajuste depende de unos parámetros, tomamos nota de en qué celdas están situados.
* Creamos una tercera columna con las diferencias al cuadrado entre las dos primeras. La sumamos en una celda cuya referencia recordaremos.
* Acudimos a Solver y solicitamos minimizar la celda de la suma de diferencias al cuadrado a partir de las celdas que contienen los parámetros. Se usará un Solver no lineal.
* Si el ajuste es posible, aparecerán los nuevos valores de los parámetros.

Podemos, por pura curiosidad, intentar un ajuste lineal al LOG(G(N)) (neperiano). Resulta una coincidencia bastante fuerte, porque, además del sumando -7,2383, descubrimos que el coeficiente que da para la X es 0,6738, que es el logaritmo de 1,96, luego la expresión  log g(n) ~ n log 2 da un ajuste ligeramente superior.


G(n) y el primorial

Podemos conseguir otra aproximación comparando G(n) con los primoriales:

Recordamos que G(n) es la parte libre de cuadrados del factorial de n. Es un divisor del primorial n#, que es el producto de todos los números primos menores o iguales que n

 (ver http://hojaynumeros.blogspot.com.es/2012/02/el-primorial.html)

G(n) elige del primorial sólo los factores primos que presentan exponente impar en n. Basta recordar los esquemas que usamos cuando presentamos la función:



En el esquema, si multiplicamos los elementos de la primera columna nos resultará un primorial, y como en la segunda se marcan los que entran en G(n), si sólo multiplicamos los que figuran con 1, resultará, como hemos afirmado, que G(n) es un divisor de n#, y es claro que este, a su vez, es un divisor de n!. Esto nos lleva a unas acotaciones claras:

G(n) divide a n# y este a n!

Los cocientes tienen valores altos en el caso de los factoriales, como vemos en esta tabla.



Sin embargo, los correspondientes a N#/G(N) parecen más asequibles a nuestro estudio. Sabemos que los logaritmos de los primoriales se ajustan bien al valor de N. Veamos el ajuste del logaritmo del cociente N#/G(N)



Así que log(N#/G(N)) se acerca a 0,2928N y log(N#) a N. Se tendrá entonces:

Log(G(N)) » log(N#)-0,2928N » N-0,29N » 0,7072N >» Nlog(2)

Hemos llegado a un ajuste muy cercano al que obtuvimos anteriormente, pero por exceso. Lo más llamativo es que los distintos logaritmos presentan una tendencia lineal.