Archive for Maggio 2023
Equazione del Centro
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.
Leggi l'articolo intero | Make a Comment ( None so far )