Tuesday, February 3, 2015

Nuove verifiche di accuratezza. Moto lunare

Ora disponiamo di due metodi distinti per calcolare la posizione della Luna, e abbiamo bisogno di sapere quale fiducia possiamo riporre nell'uno e nell'altro. Il metodo di Paul Schlyter è dichiaratamente approssimato, mentre il metodo di Jean Meeus viene indicato come affetto da un errore non superiore a 10 secondi d'arco in longitudine. Proviamo allora a scrivere una breve routine per stimare l'accuratezza dei due metodi. Per semplicità usero' le swiss ephemerides nella modalità Moshier-Ephemeris, cioè senza le effemeridi già tabulate in file di supporto (JPL o Swiss), ma utilizzando un approccio semi-analitico sviluppato da Steve Moshier.

Nel listato che segue è contenuta la routine che chiama sequenzialmente il programma planets.py, quindi il programma moon_meeus.py e infine le swiss ephemerides per calcolare la longitudine lunare per i 31 giorni del mese di marzo 1960, calcola la differenza tra i risultati con i tre metodi, li converte in secondi d'arco e li tabula:

import swisseph
from planets import *
from time_func import *
from moon_meeus import moon_meeus

year = 1960
month = 3
print "Date(Y/M/A)\tlong_planets\tlong_moon_meeus\tlong_swisseph\t   diff1:3\t   diff2:3"
for day in range(1,32):
    g1 = Planet('Moon', year, month, day).position()[1]
    g2 = moon_meeus(year, month, day)[1]
    g3 = swisseph.calc(swisseph._julday(year, month, day, 0, 0, 0),1)[0]
    d13 = (g3-g1)*3600
    d23 = (g3-g2)*3600
    print "%4d %2d %2d %15.4f %15.4f %15.4f %15.4f %15.4f" % (year, month, day, g1, g2, g3, d13, d23)
    

        

Questa è la stampa che si ottiene lanciando la routine:

Date(Y/M/A) long_planets long_moon_meeus long_swisseph    diff1:3    diff2:3
1960  3  1         20.2982         20.3317         20.3322        122.4425          1.7232
1960  3  2         32.9255         32.9644         32.9643        139.8962         -0.3071
1960  3  3         45.2724         45.3107         45.3099        134.9965         -2.9113
1960  3  4         57.3999         57.4302         57.4288        104.1592         -4.7730
1960  3  5         69.3775         69.3939         69.3925         53.6586         -5.1180
1960  3  6         81.2786         81.2793         81.2781         -1.7273         -4.3011
1960  3  7         93.1769         93.1654         93.1645        -44.7431         -3.3203
1960  3  8        105.1452        105.1283        105.1275        -63.6183         -2.8243
1960  3  9        117.2526        117.2372        117.2365        -57.8233         -2.6135
1960  3 10        129.5611        129.5510        129.5505        -38.3935         -2.0565
1960  3 11        142.1210        142.1150        142.1148        -22.3835         -0.9185
1960  3 12        154.9648        154.9580        154.9581        -24.1414          0.2718
1960  3 13        168.1039        168.0904        168.0906        -47.8573          0.7046
1960  3 14        181.5274        181.5036        181.5037        -85.2734          0.1422
1960  3 15        195.2044        195.1714        195.1712       -119.7482         -0.7517
1960  3 16        209.0904        209.0533        209.0531       -134.3417         -1.0077
1960  3 17        223.1333        223.1002        223.1001       -119.2792         -0.3058
1960  3 18        237.2800        237.2590        237.2592        -74.7989          0.7129
1960  3 19        251.4806        251.4778        251.4782         -8.8668          1.1368
1960  3 20        265.6901        265.7086        265.7088         67.1196          0.7483
1960  3 21        279.8692        279.9083        279.9084        141.0218          0.2109
1960  3 22        293.9830        294.0386        294.0387        200.5008          0.2882
1960  3 23        307.9996        308.0644        308.0646        234.0084          0.9793
1960  3 24        321.8873        321.9520        321.9524        234.3308          1.5220
1960  3 25        335.6130        335.6691        335.6694        203.1741          1.2192
1960  3 26        349.1427        349.1850        349.1851        152.7543          0.1567
1960  3 27          2.4447          2.4732          2.4730        101.7851         -0.9317
1960  3 28         15.4954         15.5145         15.5141         67.2924         -1.4241
1960  3 29         28.2846         28.3008         28.3004         56.7443         -1.3436
1960  3 30         40.8192         40.8375         40.8372         64.8680         -1.1482
1960  3 31         53.1239         53.1455         53.1452         76.7926         -1.1081

Anche se le Swiss Ephemerides non sono il metodo di riferimento per la posizione dei corpi celesti, sono tuttavia accreditate come metodo molto accurato, in particolare se usano i file di effemeridi.

Le differenze in longitudine sono espresse in secondi d'arco. L'ultima colonna rappresenta la differenza in longitudine tra i risultati del metodo Meeus rispetto alle Swiss Ephemerides. Mi sembra di poter dire che l'accuratezza è notevole, per cui, nella costruzione del nuovo software, per la posizione della Luna userò certamente il metodo Meeus.

Ricordo che i file che sviluppo si trovano tutti in github. La routine che tabula i dati si chiama test_moon.py.

Con i prossimi post verificheremo la possibilità di migliorare l'accuratezza della posizione del Sole e dei pianeti utilizzando altri metodi. In particolare, nel prossimo post vedremo la routine suggerita da E. M. Standish del Solar System Dinamic Group - JPL Caltech.

No comments:

Post a Comment

How to create a virtual linux machine with qemu under Debian or Ubuntu with near native graphics performance

It's been a long time since my latest post. I know, I'm lazy. But every now and then I like to publish something that other people c...