Orbital Elements from one Equinox to another one for the HP-41
Overview
1°) Rigorous method:
Equinox1 >>> Equinox2
2°) Approximate Formulae: J2000
<> Equinox
-The following routines reduce the ecliptic elements from one equinox
to another one.
-The semimajor axis a and the eccentricity are unchanged, unlike the
3 elements
i = inclination
omega = argument of
perihelion
OMEGA = longitude of ascending node
-The longitude of the perihelion is obtained by: omegabar
= omega + OMEGA
1°) Rigorous Method: Equinox1 >>>
Equinox2
Data Registers: • R00 = Date2 = YYYY.MNDDdd2 ( Register R00 is to be initialized before executing "IOOM" )
R01 = 90-i
R04 = -¶A(or -¶A-pA)
R02 = omega
R05-R06-R07: temp
R03 = 90+OMEGA-¶A(or 90+OMEGA-¶A-pA)
Flag: F00 is cleared at the end
Subroutines: "J0" ( cf "Julian
& Gregorian Calendars for the HP-41" ) , "EE" ( cf
"Transformation of Coordinates for the HP-41" )
01 LBL "IOOM"
02 DEG 03 STO 03 04 RDN 05 STO 02 06 X<>Y 07 CHS 08 90 09 ST+ 03 10 + 11 STO 01 12 R^ 13 X<> 00 14 SF 00 15 LBL 16 16 X<> 00 17 XEQ "J0" 18 .5 19 - 20 365250 21 / 22 1333 23 RCL Y 24 20 25 * 26 - |
27 *
28 1492 29 + 30 * 31 43887 32 - 33 * 34 24109933 35 + 36 * 37 1748741093 38 - 39 E7 40 STO 07 41 / 42 STO 04 43 RCL 03 44 + 45 STO 03 46 STO 06 47 CLX 48 11 49 * 50 663 51 - 52 * |
53 221
54 + 55 * 56 307065 57 + 58 * 59 139688783 60 + 61 * 62 RCL 07 63 / 64 FS? 00 65 ST- 03 66 FC? 00 67 ST- 04 68 CLX 69 3 70 * 71 349 72 - 73 * 74 9304 75 - 76 * 77 1305527 78 + |
79 *
80 RCL 07 81 / 82 STO 07 83 FC? 00 84 CHS 85 RCL 01 86 STO 05 87 RCL 03 88 XEQ "EE" 89 STO 03 90 FS? 00 91 STO 06 92 RDN 93 STO 01 94 FS? 00 95 STO 05 96 RCL 07 97 1 98 P-R 99 RCL 06 100 RCL Z 101 P-R 102 X<>Y 103 RCL 05 104 SIN |
105 *
106 CHS 107 RCL 05 108 COS 109 R^ 110 * 111 + 112 R-P 113 X<>Y 114 FS? 00 115 CHS 116 ST+ 02 117 RCL 04 118 ST- 03 119 FS?C 00 120 GTO 16 121 RCL 01 122 CHS 123 RCL 02 124 RCL 03 125 90 126 ST+ T 127 - 128 END |
( 229 bytes / SIZE 008 )
STACK | INPUTS | OUTPUTS |
T | YYYY.MNDDdd1 | i2 |
Z | i1 | i2 |
Y | omega1 | omega2 |
X | OMEGA1 | OMEGA2 |
( Execution time = 30 seconds )
Example1: We have i1 = 12°789 omega1 = 49°345 OMEGA1 = 166°234 on 1600/01/01
-Compute i2 , omega2 , OMEGA2 on 2900/12/12
2900.1212 STO 00
1600.0101 ENTER^
12.789
ENTER^
49.345
ENTER^
166.234 XEQ "IOOM"
>>>> OMEGA2 = 184.401887°
RDN omega2 =
49.370109°
RDN i2
= 12.619940°
Example2: Calculate the inclination
i and the longitude of the ascending node O of the ring of Saturn on 2100/06/06
knowing that their values were 28°089616 and 167°964364 respectively
on 1889/03/31
2100.0606 STO 00
1889.0331 ENTER^
28.089616 ENTER^
0
ENTER^
( any value is OK )
167.964364 R/S
>>>> O = 170°909370
RDN RDN i = 28°062166
Notes:
-This program calculates the elements for J2000 i-e 2000.01015
( i0 , omega0 , OMEGA0 ) before
computing i2 , omega2 , OMEGA2
-In the example1 above, i0 = 12°736763
omega0 = 49°361662 OMEGA0 = 171°800295
-The IAU2000A precession formulae are used.
2°) Approximate Formulae: J2000
<> Equinox
-The formulae may be simplified if T is not too large and if the inclination
is not too small.
-Moreover, we assume that the difference between omega and omega0
is smaller than 90°, which is usually the case.
Data Register: R00 = T ( in millenium since J2000.0 )
Flag: Clear flag F00 for the transformation
J2000 >>> Equinox T
Set flag F00 for the transformation Equinox T >>> J2000
Subroutines: /
01 LBL "IOO"
02 DEG 03 STO M 04 STO N 05 X<> T 06 STO 00 07 FC? 00 08 2.411 09 FS? 00 10 -11.558 11 * |
12 84.87411
13 - 14 ST+ N 15 CLX 16 RCL 00 17 32.57 18 / 19 13.9689 20 + 21 RCL 00 22 * |
23 FS? 00
24 CHS 25 ST+ M 26 X<> L 27 .13055 28 * 29 FC? 00 30 CHS 31 STO O 32 RCL N 33 X<>Y |
34 P-R
35 R^ 36 TAN 37 ST/ Y 38 RDN 39 ST+ M 40 X<> L 41 + 42 X<>Y 43 RCL N 44 COS |
45 RCL O
46 SIN 47 * 48 R^ 49 SIN 50 / 51 ASIN 52 - 53 RCL M 54 CLA 55 END |
( 113 bytes / SIZE 001 )
CF00 STACK | INPUTS | OUTPUTS |
T | T | i |
Z | i0 | i |
Y | omega0 | omega |
X | OMEGA0 | OMEGA |
SF00 STACK | INPUTS | OUTPUTS |
T | T | i0 |
Z | i | i0 |
Y | omega | omega0 |
X | OMEGA | OMEGA0 |
Where T is expressed in millenia since 2000.01015
i0 , omega0 , OMEGA0
( in degrees ) are referred to J2000
--- execution time = 5.7 seconds ---
i , omega , OMEGA
( in degrees ) are referred to the equinox T
Example: The orbital elements of the comet Encke - referred to the equinox J2000.0 - are
i0
= 11°94521
omega0 = 186°23327
Reduce these elements to the equinox J2100.0 ( T = 0.1
)
OMEGA0 = 334°75043
CF 00
0.1
ENTER^
11.94521 ENTER^
186.23327 ENTER^
334.75043 XEQ "IOO" it yields
OMEGA = 336.168614°
RDN omega = 186.211840°
RDN i
= 11.957487°
-The rigorous method gives:
OMEGA = 336.16856°
omega = 186.21186°
i
= 11.95748°
-If we set flag F00 and execute "IOO" again with the results found above and T = 0.1 , it yields:
OMEGA0 = 334°750474
omega0 = 186°233270
i0
= 11°945208
-The differences with the original values only appear in the 5th or
the 6th decimal !
The approximate formulas are:
i = i0 - (pi)A
cos ( ¶A- OMEGA0 )
Sin i Sin ( omega - omega0 ) = Sin (pi)A
Sin ( ¶A- OMEGA0 )
OMEGA = OMEGA0 + pA - (pi)A
sin ( ¶A- OMEGA0 ) / Tan i0
References:
[1] Jean Meeus - "Astronomical Algorithms" - Willmann-Bell
- ISBN 0-943396-61-1
[2] United States Naval Observatory, Circular n° 179 http://aa.usno.navy.mil/publications/docs/circular_179.html