La cuestión que inicio en esta entrada puede extenderse a varios casos interesantes. Solo me quedaré con algunos, porque van a ser muy similares unos a otros. Se trata de conocer si dos números consecutivos pueden ser ambos poligonales no triviales, es decir, que sus lados no tengan medida 1, pues en ese caso todos los enteros positivos son poligonales.
Comenzaremos con el caso general, en el que exigimos que dos
números consecutivos sean ambos poligonales, pero no concretamos el orden de
cada uno. No pueden tener el mismo orden, pues su diferencia sería siempre
mayor que la unidad. Después pasaremos a tres casos en los que los órdenes de
los dos números son también consecutivos. Por simple casualidad, están
desarrollados en orden inverso de número de lados.
Poligonales en
general
Los criterios para saber si un número es poligonal o no
están ligados a un orden determinado. En este blog y en mis publicaciones sobre
este tipo de números se ha usado la siguiente función para saber si un número
es o no poligonal de un cierto orden:
Function espoligonal(n, k) As Boolean
Dim d
Dim e As Boolean
e = False
d = (k - 4) ^ 2 + 8 * n * (k - 2)
If escuad(d) Then
If esentero((k - 4 + Sqr(d)) / 2 / (k - 2))
Then e = True
End If
espoligonal = e
End Function
Esta función ya está explicada en varias entradas de este blog. En primer lugar, determina si un discriminante es cuadrado y, después, si el orden correspondiente es entero o no.
El problema de esta función es que necesita tener como dato
el valor del orden del poligonal. Por eso, en este caso, hay que complementarla
con esta otra:
Function
esunpoligonal(n)
Dim i, es
If n < 3 Then esunpoligonal = 0: Exit Function
es = 0
i = 3
While i
< n And es = 0
If
espoligonal(n, i) Then es = i
i = i + 1
Wend
esunpoligonal
= es
End
Function
Es fácil interpretar que se recorren todos los
órdenes posibles y si en alguno da solución afirmativa, es que es un poligonal,
y devuelve su orden. En caso contrario devuelve un cero.
Con esta función, el criterio para saber si dos números consecutivos son ambos poligonales será:
esunpoligonal(n)>0 and esunpoligonal(n+1)>0
Con esta condición es fácil encontrar el conjunto de los primeros casos:
Al existir muchos ejemplos, su búsqueda es muy rápida. No obstante, aquí inserto la versión en PARI:
isapolygonal(n)={my(i=3,p=n/3+2);while(i<p&&!ispolygonal(n,i),i+=1);i<p}
ok(n)=isapolygonal(n)&&isapolygonal(n+1)
for(i=2,350,if(ok(i),print1(i,",
")))
Con ella podremos disponer las soluciones en forma de lista:
9, 15, 21, 24, 27, 33, 34, 35, 39, 45, 48, 51, 54, 57, 63, 64, 65, 69, 75, 81, 84, 87, 90, 91, 92, 93, 94, 95, 99, 105, 111, 114, 117, 120, 123, 124, 125, 129, 132, 135, 141, 144, 147, 153, 154, 155, 159, 165, 168, 171, 174, 175, 176, 177, 183, 184, 185, 189, 195, 201, 204, 207, 213, 214, 215, 216, …
Conjuntos de consecutivos con al menos dos elementos
esunpoligonal(i) > 0 And esunpoligonal(i + 1) > 0 And esunpoligonal(i - 1) = 0
Con esta condición indicamos que el número anterior no sea poligonal, y los dos siguientes, sí. Con ella es fácil encontrar los primeros ejemplos:
9, 15, 21, 24, 27, 33, 39, 45, 48, 51, 54, 57, 63, 69, 75, 81, 84, 87, 90, 99, 105, 111, 114, 117, 120, 123, 129, 132, 135, 141, 144, 147, 153, 159, 165, 168, 171, 174, 183, 189, 195, 201, 204, 207, 213, 219, 225, 231, 234, 237, 243, 249, 252, 255, 258, 264, 267, 273, 279, 285, 291, 294, 297, 300,
Con PARI puedes probar este código:
ok(n)=!isapolygonal(n-1)&&isapolygonal(n)&&isapolygonal(n+1)
for(i=3,300,if(ok(i),print1(i,",
")))
Por ejemplo, 174 pertenece a la sucesión porque 174, 175, 176, 177 y 178 son todos poligonales no triviales y 173 no lo es.
Nos preguntaremos ahora si existen números pentagonales
consecutivos con hexagonales, en este orden. El primer ejemplo es claro, pues no
hemos exigido que no sean triviales, y serían 5 y 6. Los demás casos, como
veremos, son mucho más complicados de abordar, por lo que lo haremos por fases
y con paciencia.
Búsqueda directa
Si en Excel exigimos la condición espoligonal(n,5) and espoligonal(n+1,6) o
en PARI ispolygonal(n,5)&&ispolygonal(n+1,6),
obtendremos las siguientes primeras soluciones.
Observamos que el crecimiento es muy rápido y que
sobrepasaremos la capacidad de Excel en pocos pasos. Por ello, y para más
seguridad, es conveniente generar las siguientes soluciones mediante
recurrencias.
Recurrencias
La fórmula de los pentagonales (ver https://hojaynumeros.blogspot.com/2020/11/numeros-pentagonales-1.html
y siguiente) es P(n)=(3n2-n)/2, y la de los hexagonales (https://hojaynumeros.blogspot.com/2021/02/numeros-hexagonales-1.html
y siguiente) es H(n)=n(2n-1). Por tanto, en este caso, como se diferencian en
1, el planteo sería:
(3n2-n)/2+1=k(2k-1)
Hemos llamado n
al orden del pentagonal y k al del
hexagonal consecutivo con él. Con un poco de Álgebra y un cambio de variable
llegaremos a una ecuación tipo Pell. Los pasos son:
3n2-n=4k2-2k-2
Cada miembro lo simplificamos con cambio de variable:
X=6n-1, Y=4k-1
3n2-n=(9n2-3n)/3=((3n-1/2)2-1/4)/3=(X2-1)/12
4k2-2k-2=(2k-1/2)2-9/4=(Y2-9)/4
Igualamos con las nuevas variables.
(X2-1)/12=(Y2-9)/4
(x2-1)=3(y2-9)
x2-3y2=-26
Esta es una ecuación del tipo Pell (Pell-like), que no tiene
resolución automática, por lo que hay que encontrar una primera solución y
después intentar recurrencias entre las demás soluciones. No es un proceso
fácil en general.
En este caso conocemos las soluciones 5 y 6 para los
poligonales, en los que n=2 y k=2, por lo que deben ser soluciones X=6*2-1=11,
Y=4*2-1=7, y, en efecto, cumplen la ecuación:
112-3*72=121-3*49=121-147=-26
Si intentamos resolver la ecuación de Pell con estos datos,
nunca obtenemos un segundo miembro igual a -26, solo 1 y -2:
En estos casos se aconseja buscar algún tipo de recurrencia similar a la que nos resolvería la ecuación de Pell pura, x2-3y2=1. Hay que tener un poco de suerte e intuición. En nuestro caso, como por búsqueda directa ya conocíamos las primeras soluciones, no fue excesivamente complicado. Las fórmulas de recurrencia entre X e Y que resultaron funcionar fueron:
X(n+2)=97*X(n)+168*Y(n)
Y(n+2)=56*X(n)+97*Y(n)
La segunda solución después de la X(1)=11 Y(1)=7 la
dedujimos de la búsqueda directa, y resultaron ser X(2)=407, Y(2)=235. Con
todos estos datos se pudo completar el cuadro de las primeras soluciones de X e
Y:
Las últimas resultaban menos fiables, y hubo que corregirlas con PARI y la calculadora WIRIS.
De los valores de X e Y es fácil extraer los de los órdenes
n y k:
Para revisar estos valores hemos usado la recurrencia, derivada de la anterior:
N(n+2)=97*N(n)+112*K(k)-44
K(n+2)=84*N(n)+97*K(n)-38
Y, por último, los valores consecutivos del pentagonal y el
hexagonal a partir de sus órdenes:
Sólo se han incluido los valores que son fiables en Excel. Los siguientes superan su capacidad de cálculo, Si acudimos a otras herramientas que manejen todas las cifras, llegamos a la lista definitiva de los pentagonales:
5, 6902, 209627, 259771820, 7889124465, 9776252688930,
296899309928135, 367919493435441752, 11173508621946330077,
13846282206173162227790, 420503823181428876211635, 521090984179201293845229060,
15825240870436385705402363465, 19610738084753779286398188238202, 595567114497499116455683670452127
Evidentemente, los hexagonales son sus consecutivos. Vemos
el ejemplo de 259771820:
El orden de 259771820 es, según las tablas de arriba, 13160,
y se cumple:
P(13160)=(3*13160^2-13160)/2=259771820
El orden del hexagonal sería 11397 y se verifica:
H(11397)=11397*(2*11397-1)=259771821, que resulta
consecutivo con el anterior.
Con esto damos el problema como resuelto. Ha sido bastante
entretenido todo el proceso de llegar a una lista fiable.
N cuadrado y N+1
pentagonal
Sin pretenderlo, vamos a estudiar los casos en orden
decreciente. Ha sido una casualidad. Nos toca ahora encontrar los cuadrados
cuyo consecutivo es pentagonal.
Usando la misma función espoligonal(n,k)
para los casos k=4 y k=5 hemos obtenido las primeras soluciones para el caso
k=4 (cuadrados) con Excel:
4, 144, 2500, 43264,
1387684, 24010000, 415425924, 13324546624, 230544022500, 3988919683984,
127942295300964
Con PARI, generando los cuadrados de forma rápida, ampliamos
y comprobamos la lista:
n=2;m=4;while(n<=10^8,if(ispolygonal(m+1,5),print(m));m+=2*n+1;n+=1)
4, 144, 2500, 43264, 1387684, 24010000, 415425924,
13324546624, 230544022500, 3988919683984, 127942295300964, 2213683680040000,
38301606390193444,…
Al igual que en el caso anterior, con un poco de Álgebra
llegamos a una ecuación tipo Pell:
Será: n2+1=(3k2-k)/2
Y n2=(3k2-k)/2-1=(9k2-3k)/6-1=(36k2-12k+1)/24-1-1/24
Mediante cambio de variables X=6k-1, Y=n llegamos a la ecuación de tipo Pell X2-24Y2=25
Esta nos ha dado más trabajo que la anterior, porque la recurrencia
válida se aplica a n+3 en lugar de n+2 o n+1. Ha resultado ser:
X(n+3)=49X(n)+240Y(n)
Y(n+3)=10X(n)+49Y(n)
Así, a partir de los primeros valores de X e Y deduciremos
los de n y k, y, por último, a los del cuadrado y el pentagonal consecutivos.
Al final, las soluciones para el cuadrado, primer número de los dos
consecutivos, son:
4, 144, 2500, 43264, 1387684, 24010000, 415425924,
13324546624, 230544022500, 3988919683984, 127942295300964, 2213683680040000, 38301606390193444,
1228501906155314704, 21255790465200062500, 367772020569717770304,
11796075174961036491844,…
Se puede plasmar en esta construcción de una lista en PARI:
lista(m) = {my(x=vector(m),y=vector(m),z=vector(m),n);x[1]=2;x[2]=10;x[3]=41;y[1]=2;y[2]=12;y[3]=50;z[1]=4;z[2]=144;z[3]=2500;for(n=4,m,x[n]=49*x[n-3]+40*y[n-3]-8;y[n]=60*x[n-3]+49*y[n-3]-10;z[n]=y[n]^2);z}
print(lista(18));
[4, 144, 2500, 43264, 1387684, 24010000, 415425924, 13324546624, 230544022500, 3988919683984, 127942295300964, 2213683680040000, 38301606390193444, 1228501906155314704, 21255790465200062500, 367772020569717770304, 11796075174961036491844, 204098097833167320090000]
N triangular y N+1
cuadrado
Este caso está ya publicado en http://oeis.org/A006454. Por eso, nos limitaremos a comprobar resultados usando
nuestros métodos.
0, 3, 15, 120, 528, 4095, 17955,
139128, 609960, 4726275, 20720703, 160554240, 703893960, 5454117903,
23911673955, 185279454480, 812293020528, 6294047334435, 27594051024015,
213812329916328, 937385441796000, 7263325169820735, 31843510970040003,
246739243443988680
Con las funciones de Excel, obtenemos
la misma lista, exigiendo espoligonal(n,3) and espoligonal(n+1,4).
En este caso disponemos en este blog de las funciones alternativas estriangular(n) y escuad(n+1). Con ambas es fácil reproducir los primeros elementos:
[3, 15, 120, 528, 4095, 17955,
139128, 609960, 4726275, 20720703, 160554240, 703893960, 5454117903,
23911673955, 185279454480, 812293020528, 6294047334435, 27594051024015,
213812329916328, 937385441796000, 7263325169820735, 31843510970040003,
246739243443988680, 1081741987539564120]
Para quien quiera avanzar más, dejamos el código en PARI.
Bastará sustituir el 24 de la última línea por un número mayor:
lista(m) =
{my(x=vector(m), y=vector(m), z=vector(m),n); x[1]=5; x[2]=11; y[1]=2; y[2]=4 ;
z[1]=3; z[2]=15; for(n=3, m, x[n]=3*x[n-2]+8*y[n-2]; y[n]=x[n-2]+3*y[n-2];
z[n]=y[n]^2-1); z}
print(lista(24));
Este desarrollo resulta muy instructivo, pues se han
combinado varias técnicas matemáticas, con la consiguiente concurrencia de
resultados. Queda abierta la posibilidad de seguir aumentando el número de
lados, pero lo importante está ya explicado.