OK, Chaly, intentaré explicarlo sin entrar en los detalles.
Me ha quedado un poco largo, si no tienes tiempo, pasa de leértelo. El lunes pondré directamente el pseudo-código.
El tiempo que transcurre entre dos fases idénticas sucesivas de la Luna se denomina lunación y, de media, es aproximadamente 29.53 días (oscila entre 29.26 y 29.80 debido a la velocidad areolar constante en torno a la Tierra y, en menor medida, a la influencia del Sol y otros astros). Consecuentemente, conocida la fecha de una fase, podríamos calcular cuándo se volvería a adoptar "aproximadamente" esa misma fase sumando 29.53 días. Por cuestiones de cálculo (para que sólo intervengan enteros), en lugar de sumar 29.53 días, se suman sólo 29, y el 0.53 se tiene en cuenta mediante un acumulador entero que indica aproximadamente la hora del día a la que se produce la fase. Como 0.53 es aproximadamente 26/49, al acumulador se le suman 26 unidades y, cada vez que excede de 49, se devuelve a su módulo 49 y se suma un día más. Consecuentemente, la hora se obtiene con una precisión de 1/49 de día.
Lo interesante es que esta variación (entre 29.26 y 29.80) se repite cíclicamente exactamente "casi" cada 14 lunaciones, de tal modo que podemos paliar el "aproximadamente" del párrafo anterior aplicando un término corrector según la posición del ciclo de 14 lunaciones en la que nos encontremos. Los términos correctores se aplican sobre el acumulador y son los siguientes:
0, -8, -15, -19, -20, -16, -9, 0, 9, 16, 20, 19, 15, 8
Para intentar corregir el "casi" del párrafo anterior, cada 18 ciclos de 14 lunaciones debemos saltarnos el término correctivo del primer ciclo y aplicar directamente el del segundo. De este modo tenemos un superciclo de 18x14-1=251 lunaciones.
Con lo anterior conseguiríamos simular la órbita elíptica de la Luna, pero para tener una mejor aproximación también podemos modelar la influencia del Sol con otro término correctivo. Cada año gregoriano la Luna puede adoptar la misma fase 12 o 13 veces. Estos términos correctivos también se aplican sobre el acumulador y son los siguientes:
0, 4, 7, 8, 7, 4, 0, -4, -7, -8, -7, -4, 0
El procedimiento para realizar el cálculo es el siguiente (lo ejemplifico con las lunas nuevas tomando como origen la del 29-VII-1992, que se produjo a las 19:35 UT, que precisamente era la última luna de un superciclo de 251 lunaciones, que tenía un acumulador inicial de 43 unidades, y que era la 8ª que se producía en el año gregoriano 1992):
1. Sumar 29 días a la fecha de la luna nueva anterior:
29-VII-1992 + 29 días = 27-VIII-1992.
2. Sumar 26 unidades al acumulador y si excede de 49, incrementar la fecha en un día y asignar al acumulador su módulo 49. ATENCIÓN: esta fecha y este acumulador serán los que se utilicen para calcular la siguiente luna nueva (no los resultantes de aplicar las correcciones que se explican a continuación):
43+26=69. Como excede de 49, sumo un día a la fecha de la fase, que pasa a ser el 28-VIII-1992, y asigno al acumulador el valor 20 (=69%49).
3. Corregir el acumulador según el estado del ciclo de 14 lunaciones en el que nos encontremos, teniendo en cuenta que si estamos al principio de un superciclo de 251 lunaciones debemos saltarnos el primer término correctivo:
Como estamos iniciando un superciclo de 251 lunaciones nos saltamos el primer término correctivo (0) y aplicamos directamente el segundo (-8): 20-8=12.
4. Corregir el acumulador según la lunación del año gregoriano que estemos calculando, y tomarlo como la hora de la fase teniendo en cuenta que indica la fracción del día entre 49 posibles y que está aplicada al meridiano de Jerusalén.
Como estamos calculando la 9ª, aplicamos el término correctivo -7, resultando el acumulador final 5 (12-7).
En definitiva, la siguiente luna nueva fue el 28-VIII-1992 transcurridos 5/49 del día en hora de Jerusalén, es decir, a las 5/49*24=2.44. Como la hora de Jerusalem es UT +2.35 horas, la hora que obtenemos finalmente es 0.09 UT. La fase se produjo realmente a las 2.25 UT, de modo que el error es 2.16 horas.
5. Repetir el procedimiento anterior partiendo del acumulador y la fecha obtenidos en el paso 2.
5.1. 28-VIII-1992 + 29 días= 26-IX-1992
5.2. Acumulador= 20+ 26= 46 (OJO siempre se utiliza el valor del acumulador antes de las correcciones)
5.3. Acumulador con corrección de ciclo= 46-15= 31
5.4. Acumulador con corrección solar = 31-8=23. La fecha calculada para la luna nueva es 26-IX-1992 a las 8.91 UT (11.2653 – 2.35). En realidad fue a las 10.24 UT.
6. Siguiente iteración:
6.1. 26-IX-1992 + 29 días = 25-X-1992
6.2. Acumulador= 46 + 26= 72 = 23 + 1 día
6.3. Acumulador con corrección de ciclo= 23 -19 = 4
6.4. Acumulador con corrección solar= 4 – 7 = - 3, es decir el día anterior. La fecha calculada sería entonces 25-X-1992 a las 20.18 UT. En realidad fue a las 20.20 UT.
7. Siguiente iteración:
7.1. 26-X-1992 + 29 días = 24-XI-1992 (OJO, siempre se toma como origen la fecha resultante del paso 2, aunque las correcciones trasladen la hora al día anterior o siguiente)
7.2. Acumulador= 23 + 26= 49 = 0 + 1 día
7.3. Acumulador con corrección de ciclo= 0 – 20= -20
7.4. Acumulador con corrección solar= -20 – 4 = - 24, es decir el día anterior. La fecha calculada sería entonces 24-XI-1992 a las 9.89 UT. En realidad fue a las 9.06 UT.
8. Siguiente iteración
8.1. 25-XI-1992 + 29 días = 24-XII-1992 (OJO, siempre se toma la fecha resultante del paso 2, aunque las correcciones trasladen la hora al día anterior o siguiente)
7.2. Acumulador= 0 + 26 =26
7.3. Acumulador con corrección de ciclo= 26 – 16= 10
7.4. Acumulador con corrección solar= 10 +0 = 10. La fecha calculada sería entonces 24-XII-1992 a las 2.54 UT. En realidad fue a las 0.25 UT.
9. Siguiente iteración
9.1. 24-XII-1992 + 29 días = 22-I-1993
9.2. Acumulador= 26 + 26 = 52 = 3 + 1 día
9.3. Acumulador con corrección de ciclo= 3 – 9 = -6
9.4. Acumulador con corrección solar= -6 +0 = -6. (OJO, como empezamos año tomamos el primer factor correctivo solar). La fecha calculada sería entonces 22-I-1993 a las 18.71 UT. En realidad fue a las 18.16 UT.
10. Siguiente iteración
9.1. 23-I-1993 + 29 días = 21-II-1993
9.2. Acumulador= 3 + 26 = 29
9.3. Acumulador con corrección de ciclo= 29 +0 = 29
9.4. Acumulador con corrección solar= 29 + 4 = 33. La fecha calculada sería entonces 21-II-1993 a las 13.81 UT. En realidad fue a las 13.03 UT.
… y así sucesivamente…