Edunomia

Edunomia – Un diari sobre aspectes de la Universitat – per Miquel Duran

Com serà la Lluna una data determinada?

moonphasenorth

L’altre dia escrivia com determinar mentalment la data de Pasqua de qualsevol any, que demana saber quan és la Lluna Plena immediatament posterior al 21 de març. Al mateix web que s’esmentava un senzill mètode per trobar la Pasqua, s’hi presenta també la determinació de la fase de la Lluna per a una data qualsevol.

Abans de res, cal donar un codi al dia, al mes i a l’any. Per al dia, és senzillament el seu valor numèric. Per al més, també és la posició dins de l’any (1-12) excepte per a gener (3) i febrer (4).

El millor és sumar els codis de dia i mes, i sumar-hi 30, per estalviar-se quantitats negatives més endavant.

Per al codi del Segle, si és el XXI, se n’hi resta 8. Si és el segle XX, se n’hi resta 4.

El codi de l’any no és pas tant fàcil. Primer es troba la resta per 19, és a dir, mod(any,19) (on any només té 2 xifres). Llavors, si és més gran de 9, se li’n resten 19.  El signe es guarda, i s’agafa el valor absolut. Llavors es multiplica per 11, i es pren el mòdul 30. Si el signe era negatiu, es canvia de signe el resultat.

Es sumen els 4 codis de dia, de mes, de segle i d’any… s’agfa mòdul 30… i en resulta una data que és la fase de la lluna, des de lluna nova fins a plena i tornant a nova.

Algoritme amb pseudocodi:

  • codi.dia = número del dia.
  • codi.mes = ordre del mes dins de l’any, excepte per a gener (3) i febrer (4)
  • codi.segle = -4 (S XX) o -8 (S XXI).
  • Sumar-hi 30: codi.temp=codi.dia + codi.mes + codi.segle + 30
  • codi.any = mod(xy,19)
  • Si(codi.any :> 9) codi.any<-codi.any-19
  • s = signe (codi.any) (1 o -1)
  • codi.any.abs = abs(codi.any)
  • codi.any.def = s * mod(codi.any.abs *11, 30)
  • suma = (codi.temp + codi.any.def,30)
  • si (suma=0 o suma=19) és lluna nova
  • si (suma=8,9,10) és lluna plena
  • si (suma=3-6) és quart creixent
  • si (suma=13-16) és quart menguant

Exemple: avui 27 de desembre de 2016

  • Codi del dia: 27
  • Codi del mes: 12
  • Codi del segle: -8
  • codi.temp= 31 (podem fer servir també 31+30)=61
  • codi.any=mod(16,19)=16 i després -3 per haver-hi restat 19 en ser més gran de 9
  • codi.any.abs = 3
  • s=-1
  • codi.any.def = -1 * mod (3 *11, 30) = -3
  • suma = 61 -3 = 58 o sigui 28 en ser mod(58,30)

Llavors, gairebé és lluna nova: falten 2 dies. El càlcul és això el que dóna, i quadra amb el fet que la lluna nova és a primera hora del matí del 29/12/2016. Aquest mètode no és totalexacte, però proporciona una estimació molt bona.

Es pot comprovar a http://www.wolframalpha.com/input/?i=27+december+2016

Information

This entry was posted on 27/12/2016 by in Ciència, Matemàgia and tagged .

Dies que he escrit…

May 2017
M T W T F S S
« Apr    
1234567
891011121314
15161718192021
22232425262728
293031  

Categories

Arxiu