Newsgroup: it.scienza.astronomia.amatoriale
Titolo: Algoritmo del giorno Giuliano .

Avevo postato qualche giorno fa', un problema che avevo notato andando indietro con le 
date del calcolo julian date, o giorno giuliano (JD) .
Prendendo come riferimento il Solex10.1L del suo autore, e prendendo l'algoritmo che 
uso e che e' oramai maggiormente usato in molti siti, nonostante in altri siti invece 
limitino il calcolo dello stesso a una data tra il -4713ac e quelle odierne , forse 
per non complicarsi la vita e perche' non conoscono il calcolo delle effemeridi.
Il problema e che se ho bisogno di calcolare le effemeridi di un corpo e per farlo 
voglia conoscere esempio indietro a una data antecedende quella del -4713 in 
questione, tale data fornisce un errore in Solex, equivalente a 1 g !
[Solex10.1L]
L'algoritmo in questione che uso e diffuso e' il seguente.
Foglio excel . [che e' quello che uso anche io] e che ho trovato a questo link sotto, 
cosi' lo scaricate e controllate !
===========================================================
http://www.matematicamente.it/staticfiles/approfondimenti/astronomia/ModuloJulianDay.xls
che usa formule di JMeeus., che sono le stesse usate e trovate in giro da me' e 
rispondenti al capitolo dell'Astronomical Algorithms del JMeeus .- oltre al 
Astronomical Formulae for calculators 4ed, Practical Astronomy With Your Calculator 
3ed, Mathematical Astronomy Morsels 1ed
Ora aprendo il Solex alla data del 1/01/-10.000 inserendola in questo modo 
: -10000.0101 e invio 2 volte
mi trovo ad avere JD 
: -1931442,5 ------------------------------------------------------
Sul foglio excel al suo algoritmo del JMeeus invece ho -1931441,5  ---Scostamento e' 1 
gg. !!
1 giorno di errore !!!!!!
Controllando sul link che mi ha passato gentilmente Zeta Cancri (dove io non mi sono 
accorto che c'era la possibilita' di scaricare il BAS antico (1a- vers).,  ho 
scaricato il sorgente della prima versione.
Tra la linea 225 e 237 ho trovato " FUNCTION Dj2000 (YR, MN, DY)" e il suo algoritmo, 
come anche alle righe 542 a 550, la correzione per ora/mm/ss sul calcolo giuliano da 
aggiungere.
Non me ne intendo di listato basic, anche se so' cercare o capire, ma a prima vista 
l'errore se e' presente materialmente in Solex10.1L come constatato, mi par ovvio che 
l'errore e' anche nella versione dos.
Ora per controllare la data 1/01/-4712-
sul foglio excel ottengo  " 0 "
Ho controllato anche qui , anche se purtroppo non mi ha consentito di andare indietro, 
perche' il javascript del loro sito non lo permette. Evidentemente e' l'algoritmo  del 
calcolo che va solo dal -4713 a oltre oggi..
Inserendo data 01 - 01 -  -4712 Ottengo  " 0 "
http://www.homolaicus.com/scienza/calendario/calendario.html
---------------------
Inserendo 01/01/ -4710  ore 00:00 Ottengo " 730,5"
http://www.marcomenichelli.it/calcgiuliano.asp
-------------------------------
A quanto sembra cercando in rete e guardando sui libri che ho, sembra evidente 
l'errore in Solex.
Speriamo che qualcuno possa rispondere e risolvere il problema.
Saluti.
Marco

 Astronomical Formulae for calculators 4ed, Practical Astronomy With Your
Calculator 
Non entro nel merito della correttezza o meno delle date calcolate dal
programma Solex (non ho esaminato il sorgente della prima versione del
programma).
Comunque, nel capitolo 7 della prima edizione del libro "Astronomical
Algorithms", Jean Meeus afferma esplicitamente che i metodi illustrati per
il calcolo del JD (Julian Day) a partire dalla data e quello per il
calcolo della data corrispondente ad uno specifico JD sono validi per anni
negativi (dal -1 al -4712 compresi) MA NON PER JD NEGATIVI!
Quindi gli algoritmi descritti da Meeus sono strettamente validi solo per
date successive all'1/1/-4712.
Quando si applicano degli algoritmi al di l� del campo di validit�
indicato, i risultati sono, quanto meno, "indefiniti"... e la correttezza
dei valori ottenuti non � per nulla garantita (ne' quella dei tuoi
calcoli, ne' quella di coloro che fanno uso degli algoritmi di Meeus).
Zeta Cancri
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Zeta Cancri
Mi hai preceduto sul tempo, proprio per poco.
Il busillis è ribadito qui: 
http://it.wikipedia.org/wiki/Giorno_giuliano#Storia
Eliseo

 1 giorno di errore !!!!!!
Non � che dipenda dal fatto che il giorno giuliano zero esiste (dal 
mezzogiorno del luned� 1 gennaio a mezzogiorno del marted� 2 gennaio 4713 
a.C.)? Al contrario dell'anno zero del calendario cristiano che non esiste.
G. De M. 

 G. De M.
Salve.
Verissimo !
L'algoritmo e' quello e non si scappa, speravo che rispondesse direttamente il 
Prof.Vitagliano, evidentemente non c'e' o e via , o non ha tempo per rispondere come 
talvolta fa' .
Sta' di fatto che ho trovato lo scostamento errato della data e volevo sapere qualcosa 
a riguardo.
Marco

 date successive all'1/1/-4712.
Una "ricerca" su internet (Google serve a questo...) ha permesso di
trovare questo studio su come ricavare degli algoritmi di conversione
"Date del calendario" <--> "Giorno Giuliano" dove � possibile reperire le
"ricette" valide per qualsiasi G.G. (anche quelli negativi!):
http://mysite.verizon.net/aesir_research/date/date0.htm
Vale la pena darci un'occhiata...
Zeta Cancri
P.S. Ci sono anche altre pagine sull'argomento, ma quelle indicate sono
quelle apparentemente pi� complete e dettagliate, con tanto di raffronto
tra gli algoritmi dell'autore e quelli descritti da Meeus.
http://mysite.verizon.net/aesir_research/date/date0.htm


 
http://mysite.verizon.net/aesir_research/date/date0.htm
Ebbene, cio' che risulta nelle varie conversioni tra data del calendario e
Giorno Giuliano �:
Data Giuliana:   -10000/01/01 -->
--> Giorno Giuliano:   -1931442.5
viceversa:
Giorno Giuliano:   -1931442.5 -->
--> Data Giuliana:   -10000/01/01
Comunque, nonostante non sia "certificato" per l'utilizzo oltre la data
del -4712/1/1, anche l'algoritmo per il calcolo del G.G. (partendo dalla
data) descritto da J. Meeus mi da il valore corretto G.G. = -1931442.5 per
l' 1 gennaio -10000.
L'errore, quindi, non � nel programma Solex, bens� nel foglio di calcolo
Excel che utilizzi, che invece fornisce come risultato -1931441,5!
Quello che invece sembra non funzionare correttamente, per G.G. negativi
(che d'altra parte non rientrano nel campo di validit� indicato da Meeus)
� l'algoritmo di Meeus per il calcolo della data Giuliana partendo dal
Giorno Giuliano: probabilmente � necessario ritoccare alcune delle parti
che utilizzano le funzioni INT e/o FIX dei vari dialetti Basic (si veda
quanto riportato nelle pagine web all'indirizzo gi� citato).
Zeta Cancri



Grazie del link
(Gentilmente se quoti correttamente non devo andarmi a rimodificare tutto il messaggio 
visto che hai fatto parte del mio discorso nuovamente tuo e ho dovuto rimettere il 
discorso come era, per capirci qualcosa di sensato !!!)
Ora ho controllato il tuo link cui ringrazio, ma non mi da' un'algoritmo  "Use now" ma 
parla di errori e via dicendo e non mi sembra che parli di J.Meeus e per'altro parla 
dello sviluppo, che a me' non interessa, ci sono molti siti e ogniuno ha le sue tesi, 
ma non un algoritmo che funzioni nel tempo.
A questo punto chiedo : Come fate le effemeridi (parlo di quelli che per hobby si 
dilettano e di quei Professori che sanno cosa intendo....) senza avere un algoritmo 
del calcolo Tempo effemeridi , arrivato dal JD se .,............................. e' 
in
errore ???
Giorno / Mese / Anno / ora / minuto/ SS,sss ===> JD0 + deltaT = Jdcor
TE=((Jdcor-2415020)/36525)
da qui' ho quello che mi serve e calcolo le basi iniziali.
Sole longitudine media geometrica
 lambd,m = (RESTO(279,6966778+(36000,76892*Te)+(0,0003025*Te^2);360))
M = anomalia media solare = 
(RESTO(358,475833+(35999,04975*Te)-(0,00015*Te^2)-(0,0000033*Te^3);360))
Tanto per fare capire che parlo una lingua unica. !
------------------------------------------------------------------------------
Avrete ovviamente la posizione dei corpi ERRATA e non corrispondente alla realta', 
facendo combaciare la discrepanza con la data in questione, cioe' cercando di far 
combaciare le date spostandone una piu' distante.
Inoltre aprendo alcuni programmi stellari di "GRIDO", noto con dispiacere che :
Skymap Pro11 non va' prima del 4713 bc, come se prima non esistesse il cielo ! meno 
male che se lo fanno pagare, praticamente le effemeridi non riesce neppure a farle .
Cubersky4 per la data 1/01/10000bc 00TU da' -1931076,50 , rispetto al mio algoritmo 
usato, da me' in mezzo a un pdf del (jpl, postato inizialmente), Cybersky' scarta di 
ben 365gg ! anche rispetto al solex !!!!!!
AlphaCentaure per la data 1/01/10000 bc 00TU da' -1931076,5000 !    Altro errore !
                            Solex 1/01/10000 bc 00Tu : -1931442,5
Mio algoritmo postato 01/01/10000bc 00Tu : -1931441,5
Cartes du Ciel Vers3 01/01/10000bc 00Tu : -1931075,625000  !!
A questo punto ci sono ulteriori calcoli e confusioni nell'algoritmo .
Cui convengo che quello corretto sia quello del JMeeus, "sicuramente, visto che fino 
adesso e' l'unico che nei suoi libri ed edizioni, il calcolo delle effemeridi e' 
sempre stato in linea con quello dell'Almanac Ephemerides" del Naval Observatory 
Americano !!!!!!!!! difatti corrisponde e prendono in considerazione i suoi calcoli !. 
Ed usato anche sul loro software MICA del loro sito.
Tutto il resto e' errore e porta solo confusione .
Resta il fatto e che non riesco ancora a sapere, visto che non si riesce ad avere 
risposta dall'interessato del programma Solex. (Prof.Vitagliano) e che potrebbe 
gettare una luce sulla discrepanza.
Postando magari correttamente l'algoritmo COMPLETO, compreso le variabili separate per 
ottenere il valore finale del JD .
Tagliando una volta per tutte la testa al toro come si dice.
Ringrazio per ora Eliseo e Zeta Cancri .
Sperando che qualcuno POSTI esempi e algoritmi, piuttosto che link ... cosi' testiamo 
e facciamo 2 prove.
Link in rete ce ne sono a iosa, e non tutti sono corretti, alcuni calcolano il giorno 
giuliano dal 1800 a avanti, altri fatti dalla data -4713 al +4713 , altri dal giorno 
1800 al 1900 e fatti per l'uopo, che pero' non rispecchiano esattamente, i calcoli che 
servono per il calcolo delle effemeridi.
Cordiali Saluti. alla prossima
se so' qualcosa o trovo qualcosa , posto e metto a conoscenza..

 del calcolo Tempo effemeridi , arrivato dal JD se














Scusa per come vengono quotati i tuoi messaggi, ma parte del casino deriva
dal form utilizzato dal news server per inserire le risposte ai messaggi
precedenti. Poi, siccome personalmente non mi piacciono i messaggi che a
causa dei quote divengono chilometrici, normalmente faccio qualche taglio
che, evidentemente, il succitato form di risposta trasforma ulteriomente
senza dir nulla. In effetti l'ultimo messaggio sembra un po' rimescolato
rispetto a come lo avevo inserito :-(
Comunque, nel link che ho postato (il link porta alla pagina intitolata
"Date Algorithms" contenente il sommario; la parte che ci interessa �
illustrata nei primi tre capitoli... ;-) ) nei "capitoli" 2.3 e 3.3
intitolati entrambi "Implementation Examples" ci sono alcune
implementazioni in QBasic degli algoritmi descritti (ed � in queste
sezioni che trovi le discussioni riguardanti gli algoritmi di Meeus). La
traduzione in altri linguaggi o in formule Excel dovrebbe essere alla
portata di qualsiasi "utente evoluto".
E' comunque possibile implementare gli algoritmi descritti da Meeus in
modo tale che funzionino correttamente anche con Giorni Giuliani negativi,
ma le piccole modifiche da effettuare dipendono dall'esatto algoritmo
usato e dal "linguaggio" nel quale sono stati implementati.
Riguardo i "software di grido", alcuni magari dal costo non proprio
irrisorio, non � mica detto che siano esenti da "bug"... sai quanti capita
di trovarne (talvolta estremamente subdoli!) nei programmi della Microsoft
(compresi i sistemi operativi) pagati profumatamente?
Il fatto che molti software astronomici non vadano oltre il Giorno
Giuliano 0 non � poi cos� strano: le formule e gli algoritmi per il
calcolo astronomico hanno una validit� ben determinata, solitamente
limitata ad alcune migliaia di anni; oltre l'intervallo di validit�
possono dare anche risultati completamente errati o addirittura assurdi
(vedi alcuni di quei programmi che consentono di calcolare ogni cosa anche
per il 10000 a.C.)!
Se ti diletti di calcolo devi tenere sempre ben presente il campo di
validit� degli algoritmi che adoperi, ma anche comprendere (almeno un po')
i meccanismi dell'algoritmo stesso: chi mai si metterebbe a smontare un
televisore per aggiustarlo senza una conoscenza approfondita
dell'elettronica pratica e dei componenti elettronici?
Mettersi a scrivere programmi (o fogli di calcolo) utilizzando gli
algoritmi e le formule come se fossero delle "scatole nere" non � uno dei
modi migliori per ottenere risultati corretti, riproducibili e
comprensibili; per non parlare, poi, della difficolt� nel trovare
eventuali errori...
Tornando ai risultati discordanti nel calcolo del Giorno Giuliano relativo
all'1/1/-10000, se convieni che l'algoritmo di Meeus � sicuramente
corretto (ma in base a cosa lo puoi affermare con assoluta certezza?) devi
allora anche convenire che lo stesso Meeus afferma che i suoi algoritmi
sono validi soltanto per G.G. non negativi quindi non li puoi applicare,
cos� come sono, per calcolare correttamente il G.G. dell'1/1/-10000; non �
perci� detto che il tuo risultato, ottenuto invece applicando l'algoritmo
di Meeus oltre il suo campo di validit�, sia giusto (� soltanto "meno
sbagliato" rispetto al valore quasi "sparato a caso" da alcuni dei
software che citi...).
Riguardo la discrepanza tra i tuoi risultati e quelli di Solex, prova a
seguire questo banalissimo ragionamento:
la data dell'1/1/-10000 (1 gennaio -10000) dista esattamente 10000 anni
giuliani dalla data dell'1/1/0 (1 gennaio anno 0 in senso astronomico).
Per la data dell'1/1/0 i vari algoritmi dovrebbero tutti dare come Giorno
Giuliano il valore 1721057.5 quindi per ottenere il Giorno Giuliano
corrispondente all'1/1/-10000 basta sottrarre 10000 per 365.25 = 3652500
da 1721057.5
Il risultato della sottrazione � 1931442.5 (non ricorda qualcosa questo
numero?). Evidentemente ogni altro risultato � errato...
Ciao
Zeta Cancri
-- 



Perfetto! Infatti � questo il giusto ragionamento da fare.
Volendo si pu� controllare "a occhio", visto che il buono del calendario
Giuliano � che contiene esattamente 36525 giorni in un secolo, o 3652500
in diecimila anni. Se la data -4712/1/1.5 corrisponde al JD=0, allora la
data -14712/1/1.5 corrisponder� al JD -3652500.
Piccola puntualizzazione "filosofica": Solex non sbaglia il calcolo del
JD, ma, casomai sbagliasse, sbaglierebbe il calcolo inverso, ovvero quello
della data dal JD. Nel senso che le effemeridi calcolate sarebbero quelle
giuste per il JD dato, e sbagliate per la data.
Ma niente paura! Il calcolo � giusto ... :-)
Comunque ecco qui il codice sorgente del calcolo del giorno giuliano:
[CODE]
DECLARE FUNCTION Djul# (YR#, MN#, DY#)
DEFINT F, H-L, N
DEFDBL A-E, G, M, O-Z
DO
  INPUT "Date (YY,MM,DD) "; YY, MM, DD
  PRINT "Julian Day is: "; Djul(YY, MM, DD)
  V$ = ""
  WHILE V$ = "": V$ = INKEY$: WEND
  IF V$ = CHR$(27) THEN EXIT DO
LOOP
END
'.... Computes Julian Day from Date (YR, MN, DY)
'.... Dj2000 is no. of Julian Days from 2000, January 1, 12h TDT (2000.0)
'
FUNCTION Djul (YR, MN, DY)
    IF MN = 0 THEN MN = 1
    IF DY = 0 THEN DY = 1
    MN1 = MN: YR1 = YR: B = 0
    IF MN < 3 THEN MN1 = MN + 12: YR1 = YR1 - 1
    FLJUL = (YR < 1582) OR (YR = 1582 AND MN < 10) OR (YR = 1582 AND MN =
10 AND DY < 15)
    IF FLJUL = 0 THEN A = INT(YR1 / 100): B = 2 - A + INT(A / 4)
    Dj1 = (INT(365.25 * (YR1 + 4716)) + INT(30.6001# * (MN1 + 1)) + B -
1524.5)
    Djul = Dj1 + DY
END FUNCTION
[/CODE]
Buon Anno a tutti
Aldo Vitagliano
