2011/05/19

Programa en Basic para el calculo del Ascendente astronomico

INTRODUCCIÓN:

Actualmente la proliferación de programas informáticos que pueden descargarse gatuítamente desde la red hace innecesario el estudio de cálculos astronómicos para el astrónomo aficionado. No obstante si se quiere profundizar en algunos conceptos matemáticos este articulo sera de utilidad.

Podemos basar todos nuestros cálculos en el empleo de tablas de efemérides que nos dan las posiciones planetarias para cada día. Este sistema tiene el inconveniente de que si queremos emplear programas informáticos debemos introducir como datos, las efemérides del día que nos interesa y las del día siguiente para que el ordenador calcule la interpolación. La lentitud de este procedimiento hace aconsejable que aprendamos a calcular diréctamente las efemérides sin necesidad de tablas, ya que esto no es excesívamente complicado requiriendo solamente unos conocimientos de matemáticas bastante elementales.
En todos los cálculos astronómicos se utiliza una forma de expresar una fecha que se denomina DÍA JULIANO. A partir de ese dato haremos todos los cálculos, por ejemplo el día de la semana que corresponde a esa fecha.
El Ascendente y el Medio Cielo también pueden obtenerse gráficamente sin necesidad de cálculos como puede verse en este ejemplo .


PROGRAMACIÓN DEL CALCULO DEL ASCENDENTE

--------------------------------------------------------------------------------
Cálculo del Ascendente en cualquier latitud y para cualquier hora del día.

--------------------------------------------------------------------------------


A continuación se expone una forma de realizar este calculo sin necesidad de recurrir a tablas, y también el correspondiente programa escrito en Basic, que puede traducirse fácilmente a cualquier otro lenguaje de programación.
Pasos a seguir para realizar este calculo:
1º).- Debe convertirse la Hora Sideral en Ascensión Recta.
Para esto se tendrá en cuenta que 4 minutos de tiempo es 1º de Ascensión Recta.
De esta forma tendremos la Ascensión Recta del Medio Cielo (armc)
2º).- Se añadían 90º a la armc y obtendremos la Ascensión Oblicua del Ascendente (a)
3º).- Se calcula la longitud del Medio Cielo (MC)
4º).- Se calcula la longitud del Ascendente (H1)
5º) Si estamos en el hemisferio Sur se invierten los ángulos. añadiendo 180º a los resultados.


A continuación daremos el programa escrito en BASIC que calcula automáticamente la longitud del Medio Cielo y del Ascendente:


'datos de un ejemplo que pueden ser sustituidos por otros

hs$="18:04:22":la$="51N00"
' En este ejemplo se ha tomado una hora sideral de 18h, 4m y 2s, y una latitud de 51 grados, norte.
'Buscamos los valores dados por las tablas de Dalton para el Medio Cielo (meci$) y para el Ascendente (asce$), y los anotamos para comprobar después que nuestros cálculos son correctos.

meci$=" 1(10)":asce$=" 2( 1)33"
' En estas tablas se indica el signo con su símbolo, pero para hacer los cálculos sustituimos el símbolo por un numero entre paréntesis, empezando en Aries que es el nº 1 y terminando en piscis que es el numero 12. Delante del paréntesis se pone el numero de grados dentro del signo y después del paréntesis , los minutos.

'..................
' Empezamos por borrar la pantalla del ordenador con la instrucción cls

cls
' A continuación damos el valor de la eclíptica. Esto puede hacerse mas exáctamente con la formula que la relaciona con el año en que estamos, pero para estos cálculos es suficiente con este valor aproximado.

e$="23:28:00"
'Ahora damos el valor de la constante "pi". Podríamos ponerla por su valor numérico aproximado 3.141592, pero esta otra forma de ponerlo es mas exacta: es el producto de 4 por el arco cuya tangente vale 1.
pi=4*atn(1)
' a continuación creamos la variable "gr", que nos sera de ayuda para transformar los grados en radianes y los radianes en grados. Como un circulo completo tiene 360 grados o bien 2*pi radianes, el cociente entre estos dos valores sera el factor de conversión. Esto es necesario en todos los programas informáticos pues los datos se dan en grados y los cálculos se hacen en radianes.
gr=2*pi/360

'......................
' Transformamos el dato inicial de la hora sideral que viene dado como un texto (hs$) por su valor numérico (hs), para ello vamos leyendo sus componentes, las dos primeras cifras son horas, las dos del centro son minutos y las dos ultimas son segundos. Las transformamos en horas, para ello las dos primeras se dejan como están pues son horas, las dos del centro se dividen por 60 y las dos ultimas se dividen por 3600 ( es decir 60x60).

hs= val(left$(hs$,2))+val(mid$(hs$,4,2))/60+val(right$(hs$,2))/3600
' si el valor de hs fuese precisamente 24, lo transformamos en cero, pues es un circulo horario completo.
if hs=24 then hs=0
' Hacemos lo mismo que hicimos con la hora sideral con la latitud y la declinación de la eclíptica y las ponemos en grados con decimales
la=val(left$(la$,2))+val(right$(la$,2))/60
e#=val(left$(e$,2))+val(mid$(e$,4,2))/60+val(right$(e$,2))/3600

' ................
' Ahora calculamos la ascensión recta del medio cielo (armc) que no es sino la hora sideral expresada en grados:

armc=hs*360/24
' A partir de aquí es fácil calcular ella longitud del Medio Cielo a partir de esta formula:
tan(MC)=tan(armc)/cos(e)
De aquí se deduce que la longitud del MC sera el arco cuya tangente (atn) es ese cociente:
MC=atn(tan((armc)*gr)/cos(e#*gr))/gr
' Se dividió por el factor de conversión gr para pasar los radianes a grados.
' Ahora ajustamos el resultado a los cuadrantes:

if MC<0 mc="">
MC=MC+180
if MC>=360 then MC=MC-360

if hs>=0 and hs=<6 mc="">

if hs>18 and hs=<24 mc="">
' Con esto hemos terminado el calculo del Medio Cielo y podemos pasar al calculo del Ascendente.
'................
' Los primero es calcular la ascensión oblicua del ascendente (a), para ello basta con añadir 90 grados a la ascensión recta del medio cielo.
a=armc+90
' y ajustamos los cuadrantes:
if a= 90 then a= 90.0010
if hs=12 and a=270 then a=270.0026
if a=270 then a=270.0001
if a>=360 then a=a-360
' calculamos la variable auxiliar AA
AA= (atn((tan(la*gr))/cos(a*gr)))/gr
' con ella calculamos la longitud del ascendente H1
H1=(atn(tan(a*gr)*cos(AA*gr)/cos((AA+e#)*gr)))/gr
' y ajustamos el resultado al cuadrante:
if H1<0>12 then H1=H1+180
if H1<0 h1="">

H1=H1+180
if H1>=360 then H1=H1-360
if hs>=18 then H1=H1-180

'..................
'Ahora bastara con transformar los resultados en el formato de grados, minutos y segundos:
call trans(H1,H1$)
call trans(MC,MC$)
' y ya podemos imprimir los resultados y compararlos con los que anotamos desde las tablas de Dalton u otra cualquiera y así comprobar que los resultados son correctos:

print "latitud: ";la$;" hora sideral: ";hs$
d$= "\ \ ###,.## \ \ \ \"
print using d$;"Medio Cielo ";MC;MC$;meci$
print using d$;"Ascendente ";H1;H1$;asce$

end

'..................

sub trans(x,x$)

s=int(x/30)+1
ga=x-(s-1)*30:g=int(ga)
m=cint((ga-g)*60)
if m=60 then m=0:g=g+1
if g=30 then g=0:s=s+1
if s=13 then s=1
x$=str$(g)+"("+str$(s)+")"+str$(m)

end sub

No hay comentarios: