Equazione del Centro

Posted on 6 Maggio 2023. Filed under: Senza categoria |

Continuiamo la carrellata di algoritmi fisici, astronomici, matematici, meteorologici applicati all’informatica.

In questo articolo vedremo l’Equazione del Centro, spiegherò cosa è, come si calcola e poi scriveremo del codice in VB.NET per calcolarlo.

L’equazione del centro è la differenza angolare tra la posizione effettiva di un corpo nella sua orbita ellittica e la posizione che occuperebbe se il suo moto fosse uniforme, in un’orbita circolare dello stesso periodo. Essa è definita come la differenza anomalia vera , ν , meno l’anomalia media, M , ed è generalmente espresso in funzione di anomalia media, M , e eccentricità orbitale , e .

A cosa serve calcolare l’equazione del centro?
Ottenere il valore dell’equazione del centro è un passaggio per arrivare a calcolare le coordinate di un corpo celeste, come ad esempio il Sole, la Luna, un pianeta o un asteroide.


L’equazione del centro può essere anche un’alternativa ad usare la formula di Keplero, che vedremo in un successivo articolo, a patto che l’eccentricità orbitale sia piccola.

La formula per il calcolo dell’equazione del centro è:

Vediamo ora come scrivere un semplice programma in VB.NET per calcolarlo.

Avremo in input due variabili, che sono l’eccentricità eccen e l’anomalia media M.

Apriamo Visual Studio, qualsiasi versione ed edizione, creiamo una nuova applicazione VB (indifferente che sia WPF, WF o Consolle) e nella procedura andremo a inserire il seguente codice:

        Dim eccen = InputBox("Inserire valore dell'eccentricità ecc:")
        Dim M = InputBox("Inserire valore dell'Anomalia Media:")
        Dim M1 = M * PI / 180
        Dim EqCentro = EquazioneDelCentro(CDbl(eccen), CDbl(M1)) * 180 / PI
        MessageBox.Show("L'equazione del centro è: " & EqCentro)

L’algoritmo che esegue il calcolo è:

    Private Function EquazioneDelCentro(eccen As Double, m As Double) As Double
        EquazioneDelCentro = m + (2 * eccen - 1 / 4 * eccen ^ 3 + 5 / 96 * eccen ^ 5 + 107 / 4608 * eccen ^ 7) * Sin(m) _
                               + (5 / 4 * eccen ^ 2 - 11 / 24 * eccen ^ 4 + 17 / 192 * eccen ^ 6) * Sin(2 * m) _
                               + (13 / 12 * eccen ^ 3 - 43 / 64 * eccen ^ 5 + 95 / 512 * eccen ^ 7) * Sin(3 * m) _
                               + (103 / 96 * eccen ^ 4 - 451 / 480 * eccen ^ 6) * Sin(4 * m) _
                               + (1097 / 960 * eccen ^ 5 - 5957 / 4608 * eccen ^ 7) * Sin(5 * m) _
                               + 1223 / 960 * eccen ^ 6 * Sin(6 * m) + 47273 / 32256 * eccen ^ 7 * Sin(7 * m)
    End Function

Lanciamo il programma e inseriamo questi valori:

Il valore visualizzato è in gradi.

Calcolandola con la legge di Keplero (un prossimo articolo sarà dedicato a questo) otteniamo 238,2507, ossia circa mezzo minuto di differenza, differenza veramente minima.

Al prossimo articolo.

Pubblicità

Make a Comment

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Liked it here?
Why not try sites on the blogroll...

%d blogger hanno fatto clic su Mi Piace per questo: