Comets for the HP-41
Overview
1°) Olbers' Method ( Determination
of a Parabolic Orbit )
2°) Parabolic Motion
3°) Elliptic Motion
4°) Hyperbolic Motion
5°) Geocentric Coordinates ( Subroutine
)
6°) Gauss' Method ( Determination
of Elliptic, Parabolic and Hyperbolic Orbits )
a) Program#1
b) Program#2
-In the following programs, we have used these notations:
T = time of passage in perihelion
i = inclination
q = perihelion distance
omega = argument of the perihelion
e = eccentricity
OMEGA = longitude of the ascending node
1°) Olbers' Method ( Determination of a Parabolic
Orbit )
-Olbers' method computes approximate values of T , q , i , omega
, OMEGA from 3 observations of a comet.
-We assume that the orbit is - at least nearly - parabolic: e
= 1
-The method fails if the inclination i = 0 or is very small.
-At an instant t1 the right ascension of the
comet = RA1 its declination = d1 and
the rectangular ecliptic coordinates of the Sun are X1
& Y1
-At an instant t2 the right ascension of the
comet = RA2 its declination = d2 and
the rectangular ecliptic coordinates of the Sun are X2
& Y2
-At an instant t3 the right ascension of the
comet = RA3 its declination = d3 and
the rectangular ecliptic coordinates of the Sun are X3
& Y3
-We must have t1 < t2 < t3
>>> The results will be more accurate if t3 - t2 is equal ( or nearly equal ) to t2 - t1 ( this value should be of the order of a few days )
-Let
li
= cos RAi cos di
mi
= sin obl sin di + cos obl cos di sin RAi
where obl is the obliquity of the ecliptic, i =
1 , 2 , 3
ni
= cos obl sin di - sin obl cos di sin RAi
-The ecliptic longitudes and latitudes of the comet are Li
= Atan mi/li ( use R-P to get the correct quadrant
) and bi = Asin ni
-Let Di = distance Earth-Comet at the instant ti
, the Di 's are unknown but Q = D3/D1
may be calculated by the approximate formula:
Q = ((t3 - t2)/(t2 - t1)) ( sin b1 / sin b3 ) { [ sin ( L2 - L'2 ) / tan b2 - sin ( L1 - L'2 ) / tan b1 ] / [ sin ( L3 - L'2 ) / tan b3 - sin ( L2 - L'2 ) / tan b2 ] }
where L'2 is the ecliptic longitude of the Sun at the instant t2
-"OLBERS" uses the equivalent formula: Q = - ((t3 - t2)/(t2 - t1)) [ u1. ( u2 x R2 ) ] / [ u3. ( u2 x R2 ) ] where ui ( li , mi , ni ) and R2 ( X2 , Y2 , 0 )
-The rectangular heliocentric coordinates of the comet at the instant t1 & t3 are then:
x1 = l1 D1
- X1
x3 = Q l3 D1 - X3
y1 = m1 D1
- Y1
y3 = Q m3 D1 - Y3
z1 = n1 D1
z3 = Q n3 D1
-So the square of the distance c2 = (x3 - x1)2 + (y3 - y1)2 + (z3 - z1)2 may be written under the form: c2 = A D12 + B D1 + C
-On the other hand:
r12 = D12
- 2 D1 ( l1 X1 + m1 Y1
) + X12 + Y12
where ri = radius vector of the comet at the instant
ti
r32 = Q2 D12
- 2.Q D1 ( l3 X3 + m3 Y3
) + X32 + Y32
-We have also c = ( r1 + r3 ) sin 2µ
with µ = Asin { sqrt(2) Sin [ (1/3) Asin [ 3k ( t3 - t1 ) ( r1 + r3 ) -3/2 /sqrt(2) ] ] } where k = 0.01720209895 = Gaussian gravitational constant
>>> So D1 is the solution of a relatively complicated equation that the following program solves by the secant method.
-When D1 is found, we compute the quantities
s1 = x1 y3 - x3
y1
s2 = y1 z3 - y3
z1 and
S = ( s12 + s22 + s32
)1/2
s3 = x1 z3 - x3
z1
-The longitude of the ascending node is then OMEGA = Atan2
s2/s3 ( use R-P to get the proper quadrant
)
and the inclination
i = Acos s1/S
- ( vi + omega ) may be obtained by
ri Sin ( vi + omega ) = zi
/ Sin i
ri Cos ( vi + omega ) = xi
Cos OMEGA + yi Sin OMEGA
-The relation v3 - v1 = Asin S/(r1 r3) is also used - we assume that v3 - v1 does not exceed 90°
-The perihelion distance q = [ r1 r3 Sin2 (v3 - v1)/2 ] / [ r1 + r3 - 2(r1 r3)1/2 Cos (v3 - v1)/2 ]
- (v3 + v1) is calculated with the R-P function from the relations
2.S Sin (v3 + v1)/2 = q ( r3
- r1 ) Cos (v3 - v1)/2
2.S Cos (v3 + v1)/2 = [ q ( r3
+ r1 ) - r1 r3 ] Sin (v3 -
v1)/2
whence v1 whence omega since we already know ( vi + omega )
-Finally T = t1 - sqrt(2)/(3k) q3/2
( 3.s + s3 ) with s = Tan v1/2
Data Registers: R00 & R16 to R29: temp ( Registers R01 thru R15 are to be initialized before executing "OLBERS" )
• R01 = t1
• R06 = t2
• R11 = t3
expressed in days since 2000/01/01 0h TT
• R02 = RA1
• R07 = RA2
• R12 = RA3
in hh.mnss
• R03 = d1
• R08 = d2
• R13 = d3
in °. ' ''
• R04 = X1
• R09 = X2
• R14 = X3
in Astronomical Units
• R05 = Y1
• R10 = Y2
• R15 = Y3
---------------------
>>>> When the program stops,
R16 = T ( in days from 2000/01/01 0h )
R17 = q ( in Astronomical Units )
R18 = i ( in degrees )
R19 = omega ( in degrees )
R20 = OMEGA ( in degrees )
Flag: F00
Subroutines: /
-The starting value is 1 AU ( line 66 )
-If the process seems to diverge, stop the program, set flag F00
and store another guess - for instance 3 - into register R00
-Then, press XEQ 16
-Line 152 this constant = sqrt(2)/(3k) where
k = 0.01720209895 = Gaussian gravitational constant
01 LBL "OLBERS"
02 DEG 03 RCL 03 04 RCL 02 05 RCL 01 06 XEQ 01 07 STO 18 08 RDN 09 STO 17 10 X<>Y 11 STO 16 12 RCL 13 13 RCL 12 14 RCL 11 15 XEQ 01 16 STO 21 17 RDN 18 STO 20 19 X<>Y 20 STO 19 21 RCL 08 22 RCL 07 23 RCL 06 24 XEQ 01 25 STO 00 26 RCL 09 27 ST* Z 28 * 29 STO 22 30 X<> Z 31 RCL 10 32 ST* 00 33 * 34 - 35 STO 23 36 RCL 18 37 * 38 RCL 17 39 RCL 22 40 * 41 - 42 RCL 00 43 RCL 16 44 * 45 + 46 RCL 20 47 RCL 22 48 * 49 RCL 21 50 RCL 23 51 * 52 - 53 RCL 00 54 RCL 19 55 * 56 - 57 / 58 RCL 11 59 RCL 06 60 ST- Y 61 RCL 01 62 - 63 / 64 * |
65 STO 24
66 1 67 STO 00 68 SF 00 69 GTO 16 70 LBL 01 71 2807410 72 / 73 23.439279 74 - 75 STO 00 76 RDN 77 HR 78 15 79 * 80 X<>Y 81 HR 82 STO 22 83 COS 84 P-R 85 X<>Y 86 RCL 00 87 X<>Y 88 P-R 89 X<>Y 90 X<> 00 91 RCL 22 92 SIN 93 P-R 94 ST+ 00 95 RDN 96 - 97 RCL 00 98 RTN 99 LBL 15 100 STO 28 101 .1 102 STO 27 103 ST+ 00 104 LBL 16 105 VIEW 00 106 RCL 00 107 RCL 04 108 RCL 16 109 * 110 RCL 05 111 RCL 17 112 * 113 + 114 ST+ X 115 - 116 * 117 RCL 04 118 X^2 119 + 120 RCL 05 121 X^2 122 + 123 SQRT 124 STO 22 125 CLX 126 RCL 24 127 * 128 RCL 14 |
129 RCL 19
130 * 131 RCL 15 132 RCL 20 133 * 134 + 135 ST+ X 136 - 137 * 138 RCL 14 139 X^2 140 + 141 RCL 15 142 X^2 143 + 144 SQRT 145 STO 23 146 RCL 22 147 + 148 STO 25 149 ENTER^ 150 SQRT 151 * 152 27.40389543 153 STO 29 154 * 155 RCL 11 156 RCL 01 157 - 158 X<>Y 159 / 160 ASIN 161 3 162 / 163 SIN 164 2 165 SQRT 166 * 167 ASIN 168 ST+ X 169 SIN 170 RCL 25 171 * 172 X^2 173 RCL 04 174 RCL 14 175 - 176 X^2 177 - 178 RCL 05 179 RCL 15 180 - 181 X^2 182 - 183 RCL 00 184 / 185 RCL 16 186 RCL 19 187 RCL 24 188 * 189 - 190 STO 25 191 RCL 04 192 RCL 14 |
193 -
194 * 195 ST+ X 196 + 197 RCL 17 198 RCL 20 199 RCL 24 200 * 201 - 202 STO 26 203 RCL 05 204 RCL 15 205 - 206 * 207 ST+ X 208 + 209 RCL 18 210 RCL 21 211 RCL 24 212 * 213 - 214 X^2 215 RCL 25 216 X^2 217 + 218 RCL 26 219 X^2 220 + 221 RCL 00 222 * 223 - 224 FS?C 00 225 GTO 15 226 ENTER^ 227 X<> 28 228 RCL Y 229 - 230 / 231 ST* 27 232 RCL 27 233 ST+ 00 234 ABS 235 E-6 236 X<Y? 237 GTO 16 238 RCL 00 239 ST* 16 240 ST* 17 241 ST* 18 242 RCL 24 243 * 244 ST* 19 245 ST* 20 246 ST* 21 247 RCL 04 248 ST- 16 249 RCL 05 250 ST- 17 251 RCL 14 252 ST- 19 253 RCL 15 254 ST- 20 255 RCL 16 256 RCL 21 |
257 *
258 RCL 18 259 RCL 19 260 * 261 - 262 STO 26 263 X^2 264 RCL 17 265 ST* 19 266 RCL 21 267 * 268 RCL 18 269 RCL 20 270 * 271 - 272 STO 25 273 X^2 274 + 275 RCL 16 276 RCL 20 277 * 278 RCL 19 279 - 280 STO 24 281 X^2 282 + 283 SQRT 284 STO 19 285 RCL 25 286 RCL 26 287 R-P 288 X<>Y 289 STO 20 290 RCL 24 291 R^ 292 / 293 ACOS 294 X<> 18 295 RCL 18 296 SIN 297 / 298 RCL 16 299 RCL 20 300 COS 301 * 302 RCL 17 303 RCL 20 304 SIN 305 * 306 + 307 R-P 308 X<>Y 309 X<> 19 310 RCL 22 311 RCL 23 312 * 313 STO 00 314 / 315 ASIN 316 2 317 / 318 STO 16 319 SIN 320 X^2 |
321 RCL 00
322 ST* Y 323 SQRT 324 RCL 16 325 COS 326 * 327 ST+ X 328 RCL 22 329 RCL 23 330 + 331 STO 24 332 X<>Y 333 - 334 / 335 STO 17 336 ST/ 00 337 RCL 16 338 X<>Y 339 P-R 340 RCL 23 341 RCL 22 342 - 343 * 344 X<>Y 345 RCL 24 346 RCL 00 347 - 348 * 349 R-P 350 CLX 351 RCL 16 352 - 353 ST- 19 354 2 355 / 356 TAN 357 ENTER^ 358 X^2 359 3 360 + 361 * 362 RCL 29 363 * 364 RCL 17 365 ST* Y 366 SQRT 367 * 368 RCL 01 369 X<>Y 370 - 371 STO 16 372 RCL 20 373 SIGN 374 RCL 19 375 RCL 18 376 RCL 17 377 RCL 16 378 CLD 379 END |
( 562 bytes / SIZE 030 )
STACK | INPUTS | OUTPUTS |
T | / | omega |
Z | / | i |
Y | / | q |
X | / | T |
L | / | OMEGA |
Example: You observe a comet
during November 2007 and you measure its position:
2007/11/21 0h TT
2007/11/24 0h TT
2007/11/27 0h TT
( t = 2881 days
)
( t = 2884 days )
( t = 2887 days )
since 2000/01/01 0h TT
RA = 17h07m25s03
RA = 17h07m11s94
RA = 17h06m59s04
Decl = -34°21'46"09
Decl = -35°53'19"78
Decl = -37°24'57"39
-If you use "SUN2" ( cf "Astronomical Ephemeris for the HP-41" §8 ) and P-R , you get the rectangular ecliptic coordinates of the Sun:
X = -0.519356
X = -0.473907
X = -0.427153
Y = -0.840463
Y = -0.866219
Y = -0.889590
-Store these 15 numbers into
R01
R06
R11
R02
R07
R12
R03
R08
R13
respectively
R04
R09
R14
R05
R10
R15
and XEQ "OLBERS" the successive D1-values are displayed ( the last displayed value is 1.867064 ) and eventually:
T = 2902.471673
= R16
--- execution time = 91 seconds ---
RDN
q = 0.969357
= R17
RDN
i = 117°6681
= R18
RDN omega =
-126°3586 = 233°6414 = R19
LASTX OMEGA = 111°5459
= R20
-If we reduce these elements to the standard epoch J2000 ( cf for instance "Orbital Elements from one Equinox to another one" ) it yields:
i2000 = 117°6686
omega2000 = 233°6403
OMEGA2000 = 111°4352
-This comet is actually C/2007 T1 mcNaught and the exact
elements are:
T
= 2902.49731 = 2007/12/12.49731
q = 0.969480
e = 1.000785
the orbit is a hyperbola
i = 117°6490
omega
= 233°6712
referred to J2000.0
OMEGA = 111°4186
-The error is about 37 minutes for the time of passage in perihelion,
q is good and the angle errors are smaller than 0.03°
-Our results are satisfactory all the more that we have neglected the
aberration, parallax and planetary perturbations!
2°) Parabolic Motion
-Let s = Tan v/2 where v = true anomaly,
s is the unique solution of the cubic equation:
s3 + 3s - W = 0
where W = (3k/sqrt(2)) (t-T) q -3/2
and k = 0.01720209895 = Gaussian gravitational constant
-Then, the radius vector is obtained by r = q(1+s2)
>>> Registers R01 thru R06 are to be initialized before
executing "PARM"
Data Registers: R00 = t ( in days at the beginning , in millenia at the end ) from 2000/01/01 0h TT
• R01 = T ( in days from 2000/01/01 0h TT )
• R04 = i
• R02 = q
• R05 = omega
( • R03 = e = 1 this register is actually
unused ) • R06 = OMEGA
R07 = RA ( hh.mnss )
R10 = lg = geocentric longitude ( in degrees )
R12 = r = radius vector ( AU )
R08 = decl ( °. ' '' )
R11 = bg = geocentric latitude ( in degrees )
R13 = L = heliocentric longitude ( in degrees )
R09 = rT = distance Earth-Comet ( AU )
R14 = b = heliocentric latitude ( in degrees )
R15 = X & R16 = Y ( rectangular coordinates of the Sun )
>>>> All the coordinates are referred to the mean ecliptic and equator of the date.
Flags: /
Subroutines: "GEO"
( cf paragraph 5 )
"SUN2" or "SUN3" ( cf "Astronomical Ephemeris for the HP-41" )
"S-R" "R-S" "EE" ( cf "Transformation of Coordinates for the HP-41" )
-Line 06 , this constant is sqrt(8)/(3k) where k =
0.01720209895 = Gaussian gravitational constant
01 LBL "PARM"
02 DEG 03 STO 00 04 RCL 01 05 - 06 54.80779086 07 / 08 RCL 02 |
09 ST/ Y
10 SQRT 11 / 12 SIGN 13 LASTX 14 ABS 15 ENTER^ 16 X^2 |
17 1
18 + 19 SQRT 20 + 21 3 22 1/X 23 Y^X 24 ENTER^ |
25 1/X
26 - 27 * 28 ATAN 29 ST+ X 30 LASTX 31 X^2 32 RCL 02 |
33 ST* Y
34 + 35 XEQ "GEO" 36 END |
( 62 bytes / SIZE 017 )
STACK | INPUTS | OUTPUTS |
T | / | Psi ( deg ) |
Z | / | rT ( AU ) |
Y | / | Decl ( °. ' '' ) |
X | t ( days ) | RA ( hh.mnss ) |
with t expressed in days from 2000/01/01 0h TT
Example: Calculate the geocentric position of comet Kohler for 1977 September 29.0 TT using the following elements
T = 1977 November 10.5659 TT
i2000 = 48°7131
q = 0.990662
omega2000 = 163°4788
e = 1
OMEGA2000 = 182°1660
-First, we reduce the elements to 1977/11/29 it gives:
i
= 48°7160
omega = 163°4793
( with the programs "IOOM" or "IOO" )
OMEGA = 181°8571
-We have T = -8086.4341 days and t = -8129 days from 2000/01/01 0h TT so we store
-8086.4341
48.7160
R01 R04
0.990662
163.4793
into
R02 R05
respectively
1
181.8571
R03 R06
-Then:
-8129 XEQ "PARM"
>>>> RA = 16h19m09s
-- execution time = 24 seconds ---
RDN decl = 20°16'25"
RDN rT = 1.3062 AU
RDN Psi = 62°51
-If you want to get the coordinates referred to J2000 , use for instance "PREQ" ( cf "Transformation of coordinates for the HP-41" ) , it yields:
RA2000 =
16h20m08s
Decl2000 = 20°13'15"
-If you have to calculate several positions, i , omega , OMEGA may be
regarded as constant for several days or weeks
( though "IOO" is relatively fast to use... )
3°) Elliptic Motion
-We have to solve Kepler's equation M = E - e sin E
( in radians ) where M = k(t-T) ((1-e)/q)3/2
= mean anomaly and E = excentric anomaly
-This equation is solved by Newton's method.
-Then, the true anomaly v is obtained by Tan v/2 = ((e+1)/(1-e))1/2
Tan E/2
and the radius vector is r = q(1+e)/(1+e cos v)
>>> Registers R01 thru R06 are to be initialized before
executing "ELLM"
Data Registers: R00 = t ( in days at the beginning , in millenia at the end ) from 2000/01/01 0h TT
• R01 = T ( in days from 2000/01/01 0h TT )
• R04 = i
• R02 = q
• R05 = omega
• R03 = e < 1
• R06 = OMEGA
R07 = RA ( hh.mnss )
R10 = lg = geocentric longitude ( in degrees )
R12 = r = radius vector ( AU )
R08 = decl ( °. ' '' )
R11 = bg = geocentric latitude ( in degrees )
R13 = L = heliocentric longitude ( in degrees )
R09 = rT = distance Earth-Comet ( AU )
R14 = b = heliocentric latitude ( in degrees )
R15 = X & R16 = Y ( rectangular coordinates of the Sun )
>>>> All the coordinates are referred to the mean ecliptic and equator of the date.
Flags: /
Subroutines: "GEO"
( cf paragraph 5 )
"SUN2" or "SUN3" ( cf "Astronomical Ephemeris for the HP-41" )
"S-R" "R-S" "EE" ( cf "Transformation of Coordinates for the HP-41" )
-Line 06 , this constant = 1/k where k = 0.01720209895
= Gaussian gravitational constant
-Lines 18 thru 73 use the method given by J Meeus in reference [2]
to find a good starting value for the iterations, even in very
difficult cases like M = 7° e = 0.999
-The iterations stops when the difference between 2 consecutive approximations
is smaller than 0.000001 degree
-Change line 91 if you want a better - or a lesser - accuracy.
01 LBL "ELLM"
02 DEG 03 STO 00 04 RCL 01 05 - 06 58.13244087 07 / 08 1 09 RCL 03 10 - 11 STO 09 12 RCL 02 13 / 14 ST* Y 15 SQRT 16 * 17 R-D 18 STO 07 19 LASTX 20 RCL 09 21 ST+ X 22 RCL 03 23 8 24 * 25 1 |
26 +
27 ST/ Z 28 / 29 STO 08 30 3 31 Y^X 32 RCL Y 33 X^2 34 + 35 SQRT 36 RCL Y 37 SIGN 38 * 39 + 40 SIGN 41 LASTX 42 ABS 43 3 44 1/X 45 Y^X 46 * 47 RCL 08 48 2 49 / 50 - |
51 STO Y
52 5 53 Y^X 54 .078 55 * 56 RCL 03 57 1 58 + 59 / 60 - 61 3 62 RCL Y 63 ST+ X 64 X^2 65 - 66 * 67 RCL 03 68 * 69 R-D 70 RCL 07 71 + 72 STO 08 73 LBL 01 74 RCL 08 75 SIN |
76 RCL 03
77 R-D 78 * 79 RCL 07 80 + 81 1 82 RCL 08 83 ST- Z 84 COS 85 RCL 03 86 * 87 - 88 / 89 ST+ 08 90 ABS 91 E-6 92 X<Y? 93 GTO 01 94 RCL 08 95 2 96 / 97 1 98 RCL 03 99 + 100 RCL 09 |
101 /
102 SQRT 103 P-R 104 LASTX 105 / 106 R-P 107 X<>Y 108 ST+ X 109 ENTER^ 110 COS 111 RCL 03 112 ST* Y 113 1 114 ST+ Z 115 + 116 RCL 02 117 * 118 X<>Y 119 / 120 XEQ "GEO" 121 END |
( 166 bytes / SIZE 017 )
STACK | INPUTS | OUTPUTS |
T | / | Psi ( deg ) |
Z | / | rT ( AU ) |
Y | / | Decl ( °. ' '' ) |
X | t ( days ) | RA ( hh.mnss ) |
with t expressed in days from 2000/01/01 0h TT
Example: Calculate the geocentric position
of comet C/2007 K6 for 2007 December 01 0h TT using the following
elements
T = 2007 July 01.47533 TT
i2000 = 105°063204
q = 3.432968
omega2000 = 337°140230
e = 0.984585
OMEGA2000 = 298°075386
-We reduce the elements to 2007/12/01 it gives
i
= 105°06377
omega = 337°13933
OMEGA = 298°18572
-We have T = 2738.47533 days and t = 2891 days from 2000/01/01 0h TT so we store
2738.47533
105.06377
R01 R04
3.432968
337.13933
into
R02 R05
respectively
0.984585
298.18572
R03 R06
-Then 2891 XEQ "ELLM" >>>>
RA = 19h07m27s --
execution time = 39 seconds ---
RDN decl = -15°25'02"
RDN rT = 4.4261 AU
RDN Psi = 38°52
-Referred to J2000 , it yields:
RA2000 =
16h20m08s
Decl2000 = 20°13'15"
4°) Hyperbolic Motion
-For hyperbolic orbits, Kepler's equation becomes:
k(t-T) ((e-1)/q)3/2 = e Sinh E - E
-Newton's method is again used.
-Then, the true anomaly v is obtained by Tan v/2 = ((e+1)/(e-1))1/2
Tanh E/2
and the radius vector by r = q(1+e)/(1+e cos v)
-The following program may be improved if you have hyperbolic functions
in M-Code...
>>> Registers R01 thru R06 are to be initialized before
executing "HYPM"
Data Registers: R00 = t ( in days at the beginning , in millenia at the end ) from 2000/01/01 0h TT
• R01 = T ( in days from 2000/01/01 0h TT )
• R04 = i
• R02 = q
• R05 = omega
• R03 = e > 1
• R06 = OMEGA
R07 = RA ( hh.mnss )
R10 = lg = geocentric longitude ( in degrees )
R12 = r = radius vector ( AU )
R08 = decl ( °. ' '' )
R11 = bg = geocentric latitude ( in degrees )
R13 = L = heliocentric longitude ( in degrees )
R09 = rT = distance Earth-Comet ( AU )
R14 = b = heliocentric latitude ( in degrees )
R15 = X & R16 = Y ( rectangular coordinates of the Sun )
>>>> All the coordinates are referred to the mean ecliptic and equator of the date.
Flags: /
Subroutines: "GEO"
( cf paragraph 5 )
"SUN2" or "SUN3" ( cf "Astronomical Ephemeris for the HP-41" )
"S-R" "R-S" "EE" ( cf "Transformation of Coordinates for the HP-41" )
-Line 06 , this constant = 1/k where k = 0.01720209895
= Gaussian gravitational constant
-The iterations stops when the difference between 2 consecutive approximations
is smaller than 0.000001 degree
-Change line 55 if you want a better - or a lesser - accuracy.
01 LBL "HYPM"
02 DEG 03 STO 00 04 RCL 01 05 - 06 58.13244087 07 / 08 RCL 03 09 1 10 - 11 STO 10 12 RCL 02 13 / 14 ST* Y 15 SQRT 16 * 17 STO 08 18 ABS |
19 X#0?
20 LN 21 ABS 22 RCL 08 23 ABS 24 X>Y? 25 X<>Y 26 LASTX 27 SIGN 28 * 29 STO 07 30 LBL 01 31 RCL 07 32 ENTER^ 33 ST+ Y 34 E^X-1 35 STO 09 36 LASTX |
37 CHS
38 E^X-1 39 ST+ 09 40 - 41 RCL 03 42 ST* 09 43 * 44 - 45 RCL 08 46 ST+ X 47 + 48 RCL 09 49 RCL 10 50 ST+ X 51 + 52 / 53 ST+ 07 54 ABS |
55 E-6
56 X<Y? 57 GTO 01 58 RCL 07 59 SIGN 60 LASTX 61 ABS 62 E^X-1 63 RCL X 64 2 65 + 66 / 67 * 68 1 69 RCL 03 70 + 71 RCL 10 72 / |
73 SQRT
74 * 75 ATAN 76 ST+ X 77 ENTER^ 78 COS 79 RCL 03 80 ST* Y 81 1 82 ST+ Z 83 + 84 RCL 02 85 * 86 X<>Y 87 / 88 XEQ "GEO" 89 END |
( 126 bytes / SIZE 017 )
STACK | INPUTS | OUTPUTS |
T | / | Psi ( deg ) |
Z | / | rT ( AU ) |
Y | / | Decl ( °. ' '' ) |
X | t ( days ) | RA ( hh.mnss ) |
with t expressed in days from 2000/01/01 0h TT
Example: Calculate the geocentric position of comet
C/2007 T1 for 2008 January 01 6h TT using the following elements
T = 2007 December 12.49731 TT
i2000 = 117°649041
q = 0.969480
omega2000 = 233°671201
e = 1.000785
OMEGA2000 = 111°418623
i = 117°64857
-Reduce the elements to 2008/01/01.25
omega = 233°67226
OMEGA = 111°53088
-We have T = 2902.49731 days and t = 2922.25 days from 2000/01/01 0h TT so we store
2902.49731
117.64857
R01 R04
0.969480
233.67226
into
R02 R05
respectively
1.000785
111.53088
R03 R06
-Then 2922.25 XEQ "HYPM" >>>>
RA = 17h02m54s --
execution time = 30 seconds ---
Referred to J2000 , it yields:
RDN decl = -57°40'49"
RDN rT = 1.5825 AU
RA2000 = 17h02m13s
RDN Psi = 39°16
Decl2000 = -57°40'09"
>>>> Let's use the approximate elements that we've found in paragraph 1 after reducing i , omega and OMEGA to the epoch J2008
XEQ "PARM" gives RA = 17h02m52s , Decl = -57°40'13" , rT = 1.5825 AU , Psi = 39°15
-The difference is about 36 arcseconds only, this accuracy is sufficient
for telescope pointing.
5°) Geocentric Coordinates
-"GEO" is a subroutine called by the programs listed in paragraphs 2-3-4
-It takes the radius vector and the true anomaly in registers X and
Y respectively
and returns the right ascension, declination and distance to
the Earth in registers X , Y , Z
-The heliocentric ecliptic coordinates are also computed and stored
in registers R12 R13 R14
Data Registers: R00 = t ( in days at the beginning , in millenia at the end ) from 2000/01/01 0h TT
R01 = T ( in days from 2000/01/01 0h TT )
R04 = i
R02 = q
R05 = omega
R03 = e
R06 = OMEGA
R07 = RA ( hh.mnss )
R10 = lg = geocentric longitude ( in degrees )
R12 = r = radius vector ( AU )
R08 = decl ( °. ' '' )
R11 = bg = geocentric latitude ( in degrees )
R13 = L = heliocentric longitude ( in degrees )
R09 = rT = distance Earth-Comet ( AU )
R14 = b = heliocentric latitude ( in degrees )
R15 = X & R16 = Y ( rectangular ecliptic coordinates of the Sun )
>>>> All the coordinates are referred to the mean ecliptic and equator of the date.
Flags: /
Subroutines: "SUN2" or "SUN3" ( cf
"Astronomical Ephemeris for the HP-41" )
"S-R" "R-S" "EE" ( cf "Transformation of
Coordinates for the HP-41" )
-If you don't want to save the coordinates of the Sun in R15 & R16,
replace lines 33-35-40-43 by
STO 08 STO 09 RCL 09 RCL
08 respectively:
-2 bytes will be saved and SIZE 015 will be enough.
01 LBL "GEO"
02 STO 12 03 CLX 04 RCL 05 05 + 06 ENTER^ 07 SIN 08 RCL 04 09 SIN 10 * 11 ASIN 12 STO 14 13 X<>Y 14 1 15 P-R 16 X<>Y |
17 RCL 04
18 COS 19 * 20 X<>Y 21 R-P 22 CLX 23 RCL 06 24 + 25 STO 13 26 365250 27 ST/ 00 28 XEQ "SUN2" 29 X<>Y 30 STO 07 31 X<>Y 32 P-R |
33 STO 15
34 X<>Y 35 STO 16 36 RCL 14 37 RCL 13 38 RCL 12 39 XEQ "S-R" 40 RCL 16 41 ST+ Z 42 CLX 43 RCL 15 44 + 45 XEQ "R-S" 46 STO 09 47 CLX 48 .1301 |
49 RCL 00
50 * 51 23.43928 52 - 53 X<> Z 54 STO 11 55 X<>Y 56 ST- 07 57 STO 10 58 XEQ "EE" 59 15 60 / 61 24 62 MOD 63 HMS 64 RCL 07 |
65 COS
66 RCL 11 67 COS 68 * 69 ACOS 70 RCL 09 71 R^ 72 HMS 73 STO 08 74 R^ 75 STO 07 76 END |
( 124 bytes / SIZE 017 )
STACK | INPUTS | OUTPUTS |
T | / | Psi ( deg ) |
Z | / | rT ( AU ) |
Y | v ( deg ) | Decl ( °. ' '' ) |
X | r ( AU ) | RA ( hh.mnss ) |
r = radius vector
RA = right-ascension rT = distance Earth-Comet
( Execution time = 21 seconds )
v = true anomaly
Decl = declination Psi =
elongation = angle Sun-Earth-Comet
-Examples are given in paragraphs 2-3-4.
6°) Gauss' Method ( Determination of Elliptic,
Parabolic and Hyperbolic Orbits )
a) Program#1
-Gauss' method computes approximate values of T , q , e , i ,
omega , OMEGA from 3 observations of a comet.
-The method fails if the inclination i = 0 or is very small.
-At an instant t1 the right ascension of the
comet = RA1 its declination = d1 and
the rectangular ecliptic coordinates of the Sun are X1
& Y1
-At an instant t2 the right ascension of the
comet = RA2 its declination = d2 and
the rectangular ecliptic coordinates of the Sun are X2
& Y2
-At an instant t3 the right ascension of the
comet = RA3 its declination = d3 and
the rectangular ecliptic coordinates of the Sun are X3
& Y3
-We must have t1 < t2 < t3
>>> The results will be more accurate if t3 - t2 is equal ( or nearly equal ) to t2 - t1 ( this value should be of the order of a few days )
-Let
li
= cos RAi cos di
mi
= sin obl sin di + cos obl cos di sin RAi
where obl is the obliquity of the ecliptic, i =
1 , 2 , 3
ni
= cos obl sin di - sin obl cos di sin RAi
-Let Di = distance Earth-Comet at the instant ti , ui ( li , mi , ni ) , -Ri = position vector of the Earth , ri = position vector of the Comet
ri = Di ui - Ri ( || ui || = 1 )
-If we neglect the planetary perturbations, the 3 position vectors ri lie in the same plane, so there are coefficients c1 , c3 such that
r2 = c1 r1 + c3 r3 and likewise for the velocity at the second instant: V2 = -d1 r1 + d2 r2 + d3 r3
-One can prove that, approximately: ci = Ai + Bi / r23 ( i = 1 , 3 ) and di = Gi + Hi / ri3 ( i = 1 , 2 , 3 )
where A1 = (t3
- t2)/(t3 - t1) , B1
= k2A1 [ (t3 - t1)2
- (t3 - t2)2 ]/6
with k = 0.01720209895 = Gaussian gravitational
constant
A3 = (t2 - t1)/(t3 - t1)
, B3 = k2A3 [ (t3
- t1)2 - (t2 - t1)2
]/6
and G1
= (t3 - t2)/[(t3 - t1)(t2
- t1)] G3 = (t2
- t1)/[(t3 - t1)(t3 - t2)]
G2 = G1 - G3
H1 = k2(t3 - t2)/12
H3 = k2(t2 - t1)/12
H2 = H1 - H3
-Let A( A1 X1 - X2
+ A3 X3 , A1 Y1 - Y2
+ A3 Y3 , A1 Z1 - Z2
+ A3 Z3 )
and B( B1 X1 + B3
X3 , B1 Y1 + B3 Y3
, B1 Z1 + B3 Z3 )
( all the Zi's ~ 0 if we use the rectangular ecliptic coordinates
of the Sun )
P1 = A.(
u2
x u3 )/D
Q1 = B.( u2 x u3
)/D
P2 = A.(
u1
x u3 )/D
Q2 = B.( u1 x u3
)/D where
D = u1.( u2 x u3
) ( .
= dot product , x = cross product )
P3 = A.(
u1
x u2 )/D
Q3 = B.( u1 x u2
)/D
-The distance Earth-Comet at the central instant is found by solving the equation
D2 = P2 + Q2 / r23 with r2 = D22 - 2 D2 ( l2 X2 + m2 Y2 ) + X22 + Y22
-Then, D1 = ( P1 + Q1 / r23 )/( A1 + B1 / r23 ) and D3 = ( P3 + Q3 / r23 )/( A3 + B3 / r23 )
and the rectangular ecliptic coordinates of the comet at the 3 instants are:
xi
= li Di - Xi
yi
= mi Di - Yi
i = 1 , 2 , 3 so we know
the 3 vectors ri's and the velocity V2
= -d1 r1 + d2r2
+ d3 r3 may be computed
zi
= ni Di
-We calculate the cross-product h = r2 x V2 and then:
-The parameter p = h2/k2
-The inclination i = Acos hz/h = Atan2 (hx2+hy2)1/2/hz
you can also use C = r1 x r3
instead of h to get i and OMEGA
-The longitude of the ascending node OMEGA = Atan2 hx/(-hy)
- ( vi + omega ) is obtained by
ri Sin ( vi + omega ) = zi
/ Sin i
ri Cos ( vi + omega ) = xi
Cos OMEGA + yi Sin OMEGA
whence (v3 - v1)/2
( v + omega ) may also be computed by the formula:
v + omega = sign(z) Acos [ ( x Cos OMEGA + y Sin OMEGA ) / r ] with perhaps less accurate results in some cases.
-The relations: 2e Sin (v3 + v1)/2
= ( p/r1 - p/r3 ) / Sin (v3 - v1)/2
give e and (v3 + v1)/2 whence v1
and omega
2e Cos (v3 + v1)/2 = ( p/r1 + p/r3
- 2 ) / Cos (v3 - v1)/2
-And the time of passage in perihelion is computed via Kepler's equation.
Data Registers: R00 & R16 to R41: temp ( Registers R01 thru R15 are to be initialized before executing "GAUSS" )
• R01 = t1
• R06 = t2
• R11 = t3
expressed in days since 2000/01/01 0h TT
• R02 = RA1
• R07 = RA2
• R12 = RA3
in hh.mnss
• R03 = d1
• R08 = d2
• R13 = d3
in °. ' ''
• R04 = X1
• R09 = X2
• R14 = X3
in Astronomical Units
• R05 = Y1
• R10 = Y2
• R15 = Y3
---------------------
>>>> When the program stops,
R16 = T ( in days from 2000/01/01 0h )
R17 = q ( in Astronomical Units )
R18 = e
R19 = i ( in degrees )
R20 = omega ( in degrees )
R21 = OMEGA ( in degrees )
R22 = n = mean motion ( in degrees/day ) - virtual for a hyperbolic
orbit.
Flag: F00
Subroutines: /
-Line 110 , this constant = 1/k^2 where k = 0.01720209895
= Gaussian gravitational constant
-Line 255 , this loop solves an equation by the secant method
( the unknown is the distance Earth-Comet at the second instant ), starting-value
= 1 ( line 217 )
-If the process seems to diverge or if it converges to a negative
value:
-Stop the program, set flag F00 , store another guess into R00 and
press XEQ 10.
-Lines 353 to 425 calculate and store the components of the velocity
at the second instant into R34-35-36.
-However, these values are only used to compute the angular momentum
r2
x V2
-So, the component d2 r2 is not
useful and you can delete lines 417 to 420 , 405 to 408 , 392 to
400 , and lines 386 , 380 , 369 and 359
-Thus, 34 bytes may be saved.
-Lines 623 and 539 thru 561 are only useful if the eccentricity is exactly
equal to 1 ( parabola )
-Practically, that seems highly improbable, so these lines may be deleted
without taking many risks.
01 LBL "GAUSS"
02 DEG 03 RCL 03 04 RCL 02 05 RCL 01 06 XEQ 01 07 STO 18 08 RDN 09 STO 17 10 X<>Y 11 STO 16 12 RCL 08 13 RCL 07 14 RCL 06 15 XEQ 01 16 STO 21 17 RDN 18 STO 20 19 X<>Y 20 STO 19 21 RCL 13 22 RCL 12 23 RCL 11 24 XEQ 01 25 STO 24 26 RDN 27 STO 23 28 RCL 19 29 * 30 X<>Y 31 STO 22 32 RCL 20 33 * 34 - 35 STO 00 36 RCL 21 37 RCL 22 38 * 39 RCL 19 40 RCL 24 41 * 42 - 43 STO 26 44 RCL 20 45 RCL 24 46 * 47 RCL 21 48 RCL 23 49 * 50 - 51 STO 25 52 RCL 17 53 RCL 24 54 * 55 RCL 18 56 RCL 23 57 * 58 - 59 STO 27 60 RCL 18 61 RCL 22 62 * 63 RCL 16 64 RCL 24 65 * 66 - 67 STO 28 68 RCL 17 69 RCL 21 70 * 71 RCL 18 72 RCL 20 73 * 74 - 75 STO 29 76 RCL 18 77 RCL 19 78 * 79 RCL 16 80 RCL 21 81 * 82 - 83 STO 30 84 RCL 11 85 RCL 06 86 - 87 STO 31 88 X^2 89 RCL 06 90 RCL 01 91 - 92 STO 32 93 X^2 94 RCL 11 95 RCL 01 96 - 97 ST/ 31 98 ST/ 32 99 X^2 100 ST- Z 101 X<>Y 102 - 103 RCL 32 104 * 105 STO 34 |
106 X<>Y
107 CHS 108 RCL 31 109 * 110 3379.380681 111 STO 41 112 6 113 * 114 ST/ 34 115 / 116 STO 33 117 RCL 04 118 * 119 RCL 14 120 RCL 34 121 * 122 + 123 STO 39 124 RCL 25 125 * 126 RCL 05 127 RCL 33 128 * 129 RCL 15 130 RCL 34 131 * 132 + 133 STO 40 134 RCL 26 135 * 136 + 137 RCL 16 138 RCL 25 139 * 140 RCL 17 141 RCL 26 142 * 143 + 144 RCL 18 145 RCL 00 146 * 147 + 148 STO 00 149 / 150 STO 38 151 RCL 27 152 RCL 39 153 * 154 RCL 28 155 RCL 40 156 * 157 + 158 RCL 00 159 / 160 X<> 39 161 RCL 29 162 * 163 RCL 30 164 RCL 40 165 * 166 + 167 RCL 00 168 / 169 STO 40 170 RCL 04 171 RCL 31 172 * 173 RCL 14 174 RCL 32 175 * 176 + 177 RCL 09 178 - 179 STO 36 180 RCL 25 181 * 182 RCL 05 183 RCL 31 184 * 185 RCL 15 186 RCL 32 187 * 188 + 189 RCL 10 190 - 191 STO 37 192 RCL 26 193 * 194 + 195 RCL 00 196 / 197 STO 35 198 RCL 27 199 RCL 36 200 * 201 RCL 28 202 RCL 37 203 * 204 + 205 RCL 00 206 / 207 X<> 36 208 RCL 29 209 * 210 RCL 30 |
211 RCL 37
212 * 213 + 214 RCL 00 215 / 216 STO 37 217 1 218 STO 00 219 SF 00 220 GTO 10 221 LBL 01 222 2807410 223 / 224 23.439279 225 - 226 STO 00 227 RDN 228 HR 229 15 230 * 231 X<>Y 232 HR 233 STO 25 234 COS 235 P-R 236 X<>Y 237 RCL 00 238 X<>Y 239 P-R 240 X<>Y 241 X<> 00 242 RCL 25 243 SIN 244 P-R 245 ST+ 00 246 RDN 247 - 248 RCL 00 249 RTN 250 LBL 09 251 STO 26 252 .1 253 STO 27 254 ST+ 00 255 LBL 10 256 VIEW 00 257 RCL 00 258 RCL 09 259 RCL 19 260 * 261 RCL 10 262 RCL 20 263 * 264 + 265 ST+ X 266 - 267 * 268 RCL 09 269 X^2 270 + 271 RCL 10 272 X^2 273 + 274 ENTER^ 275 SQRT 276 * 277 STO 28 278 X<>Y 279 RCL 36 280 - 281 * 282 RCL 39 283 - 284 FS?C 00 285 GTO 09 286 ENTER^ 287 X<> 26 288 RCL Y 289 - 290 / 291 ST* 27 292 RCL 27 293 ST+ 00 294 ABS 295 E-7 296 X<Y? 297 GTO 10 298 RCL 35 299 RCL 38 300 RCL 28 301 ST/ 33 302 ST/ 34 303 ST/ 40 304 / 305 + 306 RCL 31 307 RCL 33 308 + 309 / 310 STO 26 311 ST* 16 312 ST* 17 313 ST* 18 314 RCL 37 315 RCL 40 |
316 +
317 RCL 32 318 RCL 34 319 + 320 / 321 STO 27 322 ST* 22 323 ST* 23 324 ST* 24 325 RCL 04 326 ST- 16 327 RCL 05 328 ST- 17 329 RCL 14 330 ST- 22 331 RCL 15 332 ST- 23 333 RCL 16 334 RCL 17 335 R-P 336 RCL 18 337 R-P 338 STO 29 339 RCL 22 340 RCL 23 341 R-P 342 RCL 24 343 R-P 344 STO 30 345 RCL 00 346 ST* 19 347 ST* 20 348 ST* 21 349 RCL 09 350 ST- 19 351 RCL 10 352 ST- 20 353 RCL 31 354 RCL 06 355 RCL 01 356 - 357 STO 35 358 / 359 STO 25 360 RCL 11 361 RCL 06 362 - 363 ST/ 32 364 12 365 RCL 41 366 * 367 ST/ 35 368 / 369 STO 34 370 RCL 29 371 3 372 Y^X 373 / 374 + 375 CHS 376 STO 37 377 RCL 16 378 * 379 RCL 35 380 ST- 34 381 RCL 30 382 3 383 Y^X 384 / 385 RCL 32 386 ST- 25 387 + 388 STO 39 389 RCL 22 390 * 391 + 392 RCL 25 393 RCL 34 394 RCL 28 395 / 396 + 397 STO 38 398 RCL 19 399 * 400 + 401 STO 34 402 RCL 17 403 RCL 37 404 * 405 RCL 20 406 RCL 38 407 * 408 + 409 RCL 23 410 RCL 39 411 * 412 + 413 STO 35 414 RCL 18 415 RCL 37 416 * 417 RCL 21 418 RCL 38 419 * 420 + |
421 RCL 24
422 RCL 39 423 * 424 + 425 STO 36 426 RCL 20 427 * 428 RCL 21 429 RCL 35 430 * 431 - 432 STO 37 433 X^2 434 RCL 19 435 RCL 36 436 * 437 RCL 21 438 RCL 34 439 * 440 - 441 STO 38 442 X^2 443 + 444 RCL 19 445 RCL 35 446 * 447 RCL 20 448 RCL 34 449 * 450 - 451 STO 39 452 X^2 453 + 454 RCL 41 455 * 456 STO 40 457 RCL 37 458 RCL 38 459 R-P 460 X<>Y 461 STO 21 462 CLX 463 RCL 39 464 R-P 465 X<>Y 466 STO 19 467 RCL 18 468 X<>Y 469 SIN 470 / 471 RCL 16 472 RCL 21 473 COS 474 * 475 RCL 17 476 RCL 21 477 SIN 478 * 479 + 480 R-P 481 X<>Y 482 STO 20 483 RCL 24 484 RCL 19 485 SIN 486 / 487 RCL 22 488 RCL 21 489 COS 490 * 491 RCL 23 492 RCL 21 493 SIN 494 * 495 + 496 R-P 497 CLX 498 RCL 20 499 - 500 2 501 / 502 STO 22 503 RCL 40 504 RCL 29 505 / 506 STO Y 507 RCL 40 508 RCL 30 509 / 510 ST+ Z 511 - 512 RCL 22 513 SIN 514 / 515 X<>Y 516 2 517 - 518 RCL 22 519 COS 520 / 521 R-P 522 2 523 / 524 STO 18 525 CLX |
526 RCL 22
527 - 528 ST- 20 529 STO 22 530 RCL 40 531 1 532 RCL 18 533 + 534 / 535 STO 17 536 1 537 RCL 18 538 - 539 X#0? 540 GTO 00 541 X<> 22 542 2 543 / 544 TAN 545 ENTER^ 546 X^2 547 3 548 + 549 * 550 RCL 17 551 3 552 Y^X 553 ST+ X 554 9 555 / 556 RCL 41 557 * 558 SQRT 559 * 560 GTO 04 561 LBL 00 562 X<0? 563 SF 00 564 ABS 565 STO 33 566 / 567 3 568 Y^X 569 RCL 41 570 * 571 SQRT 572 1/X 573 FC? 00 574 R-D 575 X<> 22 576 2 577 / 578 RCL 33 579 1 580 RCL 18 581 + 582 / 583 SQRT 584 FS?C 00 585 GTO 02 586 P-R 587 LASTX 588 / 589 R-P 590 X<>Y 591 ST+ X 592 ENTER^ 593 SIN 594 RCL 18 595 R-D 596 * 597 GTO 03 598 LBL 02 599 X<>Y 600 TAN 601 * 602 1 603 RCL Y 604 - 605 / 606 ST+ X 607 LN1+X 608 ENTER^ 609 E^X-1 610 LASTX 611 CHS 612 E^X-1 613 - 614 2 615 / 616 RCL 18 617 * 618 X<>Y 619 LBL 03 620 - 621 RCL 22 622 / 623 LBL 04 624 RCL 01 625 X<>Y 626 - 627 STO 16 628 CLD 629 END |
( 938 bytes / SIZE 042 )
STACK | INPUT | OUTPUT |
X | / | T |
Example: Comet P2007/T2 Kowalski, on
2007/07/01 0h , 2007/07/05 0h , 2007/07/09 0h its position was:
2007/07/01 0h 2007/07/05 0h 2007/07/09 0h
t
2738
2742
2746
days
RA
14h27m25s57
14h16m33s94
14h06m37s72
Decl -39°30'56"18
-38°44'07"32
-37°52'59"14
X
-0.155835
-0.222301
-0.287788
Astronomical Units
Y
1.004614
0.992089
0.975105
------------------
-Store these 15 numbers into
R01
R06
R11
R02
R07
R12
R03
R08
R13
respectively
R04
R09
R14
R05
R10
R15
and XEQ "GAUSS" the successive D2-values are displayed ( the last displayed value is 0.593970 ) and eventually:
T = 2817.895386
= R16
--- execution time = 59 seconds ---
q = 0.697257
= R17
e = 0.775182
= R18
i = 9°8769
= R19
omega = -1°4196 = 358°5804 = R20
OMEGA = 3°8809
= R21
n = 0.180451
= R22
-If we reduce these elements to the standard epoch J2000 ( cf for instance "Orbital Elements from one Equinox to another one" ) it yields:
i2000 =
9°8759
omega2000 = 358°5796
OMEGA2000 = 3°7770
-In fact, the exact mean elements are
T = 2818.01589 = 2007/09/19.01589
q = 0.695805
e = 0.774729
i = 9°8974
omega = 358°5346
referred to J2000.0
OMEGA = 4°0019
n = 0.181564
deg/day
-The error is about 3 hours for the time of passage in perihelion but
some of these results are relatively disappointing, especially OMEGA!
-However, we have found the elements of the osculating orbit
which may be significantly different from the mean orbit.
-Like "OLBERS" , "GAUSS" neglects the aberration, parallax and
planetary perturbations.
Notes:
-The equation that is solved by lines 255 to 297 may have several solutions
( up to 3 ) and another evaluation a few days later may be useful...
-The formulas involve several cross products and dot products, therefore
many bytes can be saved
if you have CROSS and DOT micro-code routines ( cf for instance
"A few M-Code Routines for the HP-41" ).
-Gauss' method is very sensitive to observational errors, so take the
average of successive results to increase the accuracy.
-The program uses the ecliptic and equator of the date(s) and that
could be criticized because this is not an inertial frame.
However, the resulting errors are usually negligible - provided
the intervals of time remain of the order of a few days.
-Of course, a better program should use a standard equinox - for instance
J2000 - but in this case, the rectangular coordinates of the Sun
will not verify Z ~ 0 and more data registers and more bytes
would be required ( cf next paragraph ).
Improvements:
1°) Slightly more accurate results may be obtained if you
-replace lines 298 to 305 by
RCL 38 /
RCL 28 ST* 34
RCL 35
RCL 42 1
/
ST* 40 +
RCL 28 +
ST* 33 *
-replace line 282 by
RCL 42 RCL 39
RCL 28 ST* Y
/
+
-and add
RCL 31 RCL 11
X^2 12
/
after line 216
RCL 32 RCL 01
ST* Y RCL 41
STO 42
*
-
+
*
-These lines use Herrick-Gibbs formulae:
ci = Ai + ( Bi /
r23 )( 1 + B2 / r23
) with B2 = ( k2/12 ) ( t3
- t1 )2 ( 1 + A1 A3 )
( i = 1 , 3 )
2°) If you want to take the effects of aberration and light-time into account:
add FS?C 01
after line 321 ( STO 27 )
GTO 16
replace line 217 by RCL 42
and add
SF 01
LBL 16 /
XEQ "SUN2" RCL 40
XEQ "SUN2"
RCL 40 XEQ "SUN2"
after line 02
CLX
RCL 06 -
P-R
/
P-R
/
P-R
STO 00
RCL 00 STO 06
STO 09
-
STO 04
-
STO 14
STO 26
X#0?
365250 X<>Y
STO 01 X<>Y
STO 11 X<>Y
STO 27
STO 42 STO 41
STO 10
RCL 41 STO 05
RCL 41 STO 15
SIGN
173.142 /
RCL 01
/
RCL 11
/
STO 42
STO 40 STO 00
RCL 26
STO 00 RCL 27
STO 00
( "SUN3" should produce more accurate results - cf "Astronomical Ephemeris for the HP-41" §9 )
-Registers R04-05-09-10-14-15 do not have to be initialized
anymore.
b) Program#2
-If you want to use more accurate positions of the Sun and/or if you
want to use the standard ecliptic J2000, you'll need more registers to
store the Zi
-"GAUSS+" uses the Herrick-Gibbs formulae mentioned above.
-Several M-code functions ( ST<>A , CROSS , DOT , ... ) are
also used ( cf for instance "A few M-code Routines for the HP-41" ),
but alternatives are suggested below.
Data Registers: R00 & R19 to R49: temp ( Registers R01 thru R18 are to be initialized before executing "GAUSS" )
• R01 = t1
• R07 = t2
• R13 = t3
expressed in days since 2000/01/01 0h TT
• R02 = RA1
• R08 = RA2
• R14 = RA3
in hh.mnss
• R03 = d1
• R09 = d2
• R15 = d3
in °. ' ''
• R04 = X1
• R10 = X2
• R16 = X3
in Astronomical Units
rectangular ecliptic
• R05 = Y1
• R11 = Y2
• R17 = Y3
---------------------
coordinates
• R06 = Z1
• R12 = Z2
• R18 = Z3
---------------------
of the Sun
>>>> When the program stops,
R19 = T ( in days from 2000/01/01 0h )
R20 = q ( in Astronomical Units )
R21 = e
R22 = i ( in degrees )
R23 = omega ( in degrees )
R24 = OMEGA ( in degrees )
R25 = n = mean motion ( in degrees/day ) - virtual for a hyperbolic
orbit.
>>>> You have also:
R41 = Distance Earth-Comet at the 1st instant R44
= Distance Sun-Comet at the 1st instant
= r1
R00 = Distance Earth-Comet at the 2nd instant R45 = (Distance
Sun-Comet at the 2nd instant)^3 = r2^3
R43 = Distance Earth-Comet at the 3rd instant R46
= Distance Sun-Comet at the 3rd instant =
r3
The coordinates of the vector r1
are stored in R31-R32-R33
The coordinates of the vector r2
are stored in R34-R35-R36
The coordinates of the vector r3
are stored in R37-R38-R39
Flags: F00 - F01
Clear F01 if you are using the mean ecliptic of the date(s)
Set F01 if you are using the standard equinox J2000
Subroutines: /
-If you don't want to use M-code functions, add
LBL 09
X<>Y +
*
after line 235 and replace DOT by XEQ 09
RCL 50
RCL 51 X<>Y
+
*
*
RCL 52 RTN
replace STO M STO N STO O by STO 50
STO 51 STO 52
and RCL M RCL N
RCL O by RCL 50 RCL 51 RCL 52
-Use the "CROSS" routine listed in "Dot & Cross product for the HP-41" and follow the other suggestions below
-Lines 55 to 62 may be replaced by 34
RCL 39 RCL 38 RCL 37 XEQ "CROSS"
-Lines 68 to 71 may be replaced by 31
RCL 39 RCL 38 RCL 37 XEQ "CROSS"
-Lines 77 to 84 may be replaced by 31
RCL 36 RCL 35 RCL 34 XEQ "CROSS"
-Line 241 , this loop solves an equation by the secant method
-If the process seems to diverge or if it converges to a negative
value:
-Stop the program, set flag F00 , store another guess into R00 and
press XEQ 10.
-Lines 300-301 may be replaced by 1 +
RCL 45
-Lines 376-384-501 may be replaced by 3 Y^X
-Lines 409 to 412 may be replaced by 34
RCL 52 RCL 51 RCL 50 XEQ 10
-Lines 455-480-509 are equivalent to 2 /
-Lines 534 to 537 may be replaced with 1
RCL Y - / ST+ X LN1+X
ENTER^ E^X-1 LASTX CHS
E^X-1 - 2 /
01 LBL "GAUSS+"
02 DEG 03 15 04 STO 19 05 39 06 STO 20 07 LBL 01 08 RCL IND 19 09 DSE 19 10 RCL IND 19 11 DSE 19 12 FS? 01 13 0 14 FC? 01 15 RCL IND 19 16 2807410 17 / 18 23.439279 19 - 20 STO 00 21 RDN 22 HR 23 15 24 * 25 X<>Y 26 HR 27 STO 21 28 COS 29 P-R 30 X<>Y 31 RCL 00 32 X<>Y 33 P-R 34 X<>Y 35 X<> 00 36 RCL 21 37 SIN 38 P-R 39 ST+ 00 40 RDN 41 - 42 RCL 00 43 STO IND 20 44 DSE 20 45 RDN 46 STO IND 20 47 DSE 20 48 X<>Y 49 STO IND 20 50 3 51 ST- 19 52 DSE 20 53 DSE 19 54 GTO 01 55 RCL 39 56 RCL 38 57 RCL 37 58 ST<>A 59 RCL 36 60 RCL 35 61 RCL 34 62 CROSS 63 STO 40 64 RDN 65 STO 41 66 X<>Y 67 STO 42 68 RCL 33 69 RCL 32 70 RCL 31 71 CROSS 72 STO 43 73 RDN 74 STO 44 75 X<>Y 76 STO 45 77 RCL 36 78 RCL 35 79 RCL 34 80 ST<>A 81 RCL 33 82 RCL 32 83 RCL 31 84 CROSS 85 STO 46 86 RCL 37 87 * 88 X<>Y 89 STO 47 90 RCL 38 91 * 92 + |
93 X<>Y
94 STO 48 95 RCL 39 96 * 97 + 98 STO 00 99 RCL 13 100 RCL 07 101 - 102 STO 19 103 X^2 104 RCL 07 105 RCL 01 106 - 107 STO 20 108 X^2 109 RCL 13 110 RCL 01 111 - 112 ST/ 19 113 ST/ 20 114 X^2 115 ST- Z 116 X<>Y 117 - 118 RCL 20 119 * 120 STO 22 121 X<>Y 122 CHS 123 RCL 19 124 * 125 3379.380681 126 STO 30 127 6 128 * 129 ST/ 22 130 / 131 STO 21 132 RCL 04 133 * 134 RCL 16 135 RCL 22 136 * 137 + 138 STO M 139 RCL 05 140 RCL 21 141 * 142 RCL 17 143 RCL 22 144 * 145 + 146 STO N 147 RCL 06 148 RCL 21 149 * 150 RCL 18 151 RCL 22 152 * 153 + 154 RCL 00 155 ST/ M 156 ST/ N 157 / 158 STO O 159 29 160 STO 23 161 XEQ 02 162 RCL 04 163 RCL 19 164 * 165 RCL 10 166 - 167 RCL 16 168 RCL 20 169 * 170 + 171 STO M 172 RCL 05 173 RCL 19 174 * 175 RCL 11 176 - 177 RCL 17 178 RCL 20 179 * 180 + 181 STO N 182 RCL 06 183 RCL 19 184 * |
185 RCL 12
186 - 187 RCL 18 188 RCL 20 189 * 190 + 191 RCL 00 192 ST/ M 193 ST/ N 194 / 195 STO O 196 DSE 23 197 XEQ 02 198 RCL 19 199 RCL 20 200 * 201 RCL 13 202 RCL 01 203 - 204 X^2 205 ST* Y 206 + 207 12 208 RCL 30 209 * 210 STO 49 211 / 212 STO 23 213 1 214 STO 00 215 SF 00 216 GTO 10 217 LBL 02 218 RCL 48 219 RCL 47 220 RCL 46 221 DOT 222 STO IND 23 223 DSE 23 224 RCL 45 225 RCL 44 226 RCL 43 227 DOT 228 STO IND 23 229 DSE 23 230 RCL 42 231 RCL 41 232 RCL 40 233 DOT 234 STO IND 23 235 RTN 236 LBL 03 237 STO 40 238 .1 239 STO 41 240 ST+ 00 241 LBL 10 242 VIEW 00 243 RCL 00 244 RCL 10 245 RCL 34 246 * 247 RCL 11 248 RCL 35 249 * 250 + 251 RCL 12 252 RCL 36 253 * 254 + 255 ST+ X 256 - 257 * 258 RCL 10 259 X^2 260 + 261 RCL 11 262 X^2 263 + 264 RCL 12 265 X^2 266 + 267 ENTER^ 268 SQRT 269 * 270 STO 45 271 X<>Y 272 RCL 25 273 - 274 * 275 RCL 23 276 RCL 45 |
277 /
278 RCL 28 279 ST* Y 280 + 281 - 282 FS?C 00 283 GTO 03 284 ENTER^ 285 X<> 40 286 RCL Y 287 - 288 / 289 ST* 41 290 RCL 41 291 ST+ 00 292 ABS 293 E-7 294 X<Y? 295 GTO 10 296 RCL 27 297 RCL 23 298 RCL 45 299 / 300 X+1 301 LASTX 302 / 303 ST* 21 304 ST* 22 305 ST* 29 306 * 307 RCL 24 308 + 309 RCL 19 310 RCL 21 311 + 312 / 313 STO 41 314 ST* 31 315 ST* 32 316 ST* 33 317 RCL 26 318 RCL 29 319 + 320 RCL 20 321 RCL 22 322 + 323 / 324 STO 43 325 ST* 37 326 ST* 38 327 ST* 39 328 RCL 04 329 ST- 31 330 RCL 05 331 ST- 32 332 RCL 06 333 ST- 33 334 RCL 16 335 ST- 37 336 RCL 17 337 ST- 38 338 RCL 18 339 ST- 39 340 RCL 31 341 RCL 32 342 R-P 343 RCL 33 344 R-P 345 STO 44 346 RCL 37 347 RCL 38 348 R-P 349 RCL 39 350 R-P 351 STO 46 352 RCL 00 353 ST* 34 354 ST* 35 355 ST* 36 356 RCL 10 357 ST- 34 358 RCL 11 359 ST- 35 360 RCL 12 361 ST- 36 362 RCL 20 363 RCL 13 364 RCL 07 365 - 366 STO 47 367 / 368 RCL 07 |
369 RCL 01
370 - 371 ST/ 19 372 RCL 49 373 ST/ 47 374 / 375 RCL 46 376 X^3 377 / 378 + 379 STO 48 380 RCL 37 381 * 382 RCL 47 383 RCL 44 384 X^3 385 / 386 RCL 19 387 + 388 STO 47 389 RCL 31 390 * 391 - 392 STO M 393 RCL 38 394 RCL 48 395 * 396 RCL 32 397 RCL 47 398 * 399 - 400 STO N 401 RCL 39 402 RCL 48 403 * 404 RCL 33 405 RCL 47 406 * 407 - 408 STO O 409 RCL 36 410 RCL 35 411 RCL 34 412 CROSS 413 X<>Y 414 CHS 415 R-P 416 RCL Z 417 R-P 418 STO 20 419 CLX 420 RCL 33 421 X<>Y 422 STO 22 423 SIN 424 / 425 X<>Y 426 STO 24 427 COS 428 RCL 31 429 * 430 RCL 32 431 RCL 24 432 SIN 433 * 434 + 435 R-P 436 X<>Y 437 STO 23 438 RCL 39 439 RCL 22 440 SIN 441 / 442 RCL 37 443 RCL 24 444 COS 445 * 446 RCL 38 447 RCL 24 448 SIN 449 * 450 + 451 R-P 452 CLX 453 RCL 23 454 - 455 X/2 456 STO 29 457 RCL 20 458 X^2 459 RCL 30 460 * |
461 STO 20
462 RCL 44 463 / 464 STO Y 465 RCL 20 466 RCL 46 467 / 468 ST+ Z 469 - 470 RCL 29 471 SIN 472 / 473 X<>Y 474 2 475 - 476 RCL 29 477 COS 478 / 479 R-P 480 X/2 481 STO 21 482 CLX 483 RCL 29 484 - 485 ST- 23 486 STO 25 487 RCL 20 488 1 489 RCL 21 490 + 491 / 492 STO 20 493 1 494 RCL 21 495 - 496 X<0? 497 SF 00 498 ABS 499 STO 26 500 / 501 X^3 502 RCL 30 503 * 504 SQRT 505 1/X 506 FC? 00 507 R-D 508 X<> 25 509 X/2 510 RCL 26 511 1 512 RCL 21 513 + 514 / 515 SQRT 516 FS?C 00 517 GTO 04 518 P-R 519 LASTX 520 / 521 R-P 522 X<>Y 523 ST+ X 524 ENTER^ 525 SIN 526 RCL 21 527 R-D 528 * 529 GTO 05 530 LBL 04 531 X<>Y 532 TAN 533 * 534 ATANH 535 ST+ X 536 ENTER^ 537 SINH 538 RCL 21 539 * 540 X<>Y 541 LBL 05 542 - 543 RCL 25 544 / 545 RCL 01 546 X<>Y 547 - 548 STO 19 549 CLA 550 CLD 551 END |
( 872 bytes / SIZE 050 )
STACK | INPUT | OUTPUT |
X | / | T |
Example1: Comet P2007/T2 Kowalski,
on 2007/07/01 0h , 2007/07/05 0h , 2007/07/09 0h , astrometric coordinates
( /J2000 ):
2007/07/01 0h 2007/07/05 0h 2007/07/09 0h
t
2738
2742
2746
days
RA 14h26m56s630
14h16m05s582
14h06m09s943
Decl -39°28'38"88
-38°41'45"79
-37°50'34"44
X
-0.154038961
-0.220524792
-0.286041210
Astronomical Units
Y
1.004896850
0.992492986
0.975629006
Astronomical Units
Z
-0.000017928
-0.000015437
-0.000012870
Astronomical Units
-Store these 18 numbers into
R01
R07
R13
R02
R08
R14
R03
R09
R15
respectively
R04
R10
R16
R05
R11
R17
R06
R12
R18
SF 01 XEQ "GAUSS+" the successive D2-values are displayed ( the last displayed value is 0.594663 ) and eventually:
T = 2817.969991
= R19
--- execution time = 65 seconds ---
q = 0.696446
= R20
e = 0.774784
= R21
i = 9°8875
= R22
omega = -1°4533 = 358°5467 = R23
OMEGA = 3°9160
= R24
n = 0.181247
= R25
-The exact mean elements are:
T = 2818.01589 = 2007/09/19.01589
q = 0.695805
e = 0.774729
i = 9°8974
omega = 358°5346
referred to J2000.0
OMEGA = 4°0019
n = 0.181564
deg/day
Example2: Comet C/2007 K3 Siding Spring on 2008/06/01 0h , 2008/06/04 0h , 2008/06/07 0h TT , mean coordinates of the date:
t
3074
3077
3080
days
RA 22h03m09s301
22h06m25s468
22h09m28s952
Decl 2°17'49"44
3°11'59"67
4°05'25"16
X
0.332127259
0.283777164
0.234699580
Astronomical Units
Y
0.958175038
0.974055899
0.987437299
-------------------
Z
0.000003049
0.000002941
0.000001543
-------------------
-Store these 18 numbers into
R01
R07
R13
R02
R08
R14
R03
R09
R15
respectively
R04
R10
R16
R05
R11
R17
R06
R12
R18
CF 01 XEQ "GAUSS+" the successive D2-values
are displayed but ... the algorithm seems to converge to a negative value!
So stop the program, set flag F00 ( SF 00 ), store another
starting-value into R00 ( say, 2 STO 00 ) and XEQ 10
Now the process converges to 1.709255 and finally:
T = 3033.66930
= R19
q = 2.050725
= R20
e = 1.001541
= R21
( hyperbola )
i = 16°2979
= R22
omega = 23°5733
= R23
OMEGA = -96°6300 = 263°3700 = R24
-After reducing these elements to the standard epoch J2000, it yields:
i2000 = 16°2979
omega2000 = 23°5772
OMEGA2000 = 263°2485
-The exact mean elements are:
T = 3033.66811 =
2008/04/21.66811
q = 2.050848
e = 1.001369
i = 16°2998
omega = 23°5791
referred to J2000.0
OMEGA = 263°2551
Notes:
-You can add lines to take into account the case e = 1, but this doesn't
seem very useful.
-Other lines may also be added to "GAUSS+" to take the effect of aberration
and light-time into account:
-Use the distances Comet-Earth at the 3 instants in registers
R41 R00 R43.
References:
[1] S. Bouiges - "Calcul Astronomique pour Amateurs" - Masson
- ISBN 2-225-78265-2 ( in French )
[2] Jean Meeus - "Astronomical Algorithms" - Willmann-Bell
- ISBN 0-943396-35-2
[3] Robin M. Green - "Spherical Astronomy" - Cambridge University
Press - ISBN 0-521-31779-7
[4] John D. Anderson - JPL Technical Report n° 32-497
[5] Dan Boulet - "Methods of Orbit Determination for the Micro
Computer" - Willmann-Bell - ISBN 0-943396-34-4