Calculating a Fix for the HP-41
Overview
1°) Program#1
2°) Program#2
3°) Program#3
4°) Program#4 - a non-iterative method
5°) Program#5
- a non-iterative method
-After measuring the altitudes of n = 2 , 3 ( or more ) stars,
the following programs compute your geographical position: Longitude
& Latitude
-The second routine is longer but faster than the first one.
-The 3rd program is even faster but works for 2 stars.
-The 4th & 5th programs solve directly the non-linear system via
a quadratic equation: they are the fastest.
• Longitudes are reckoned positively Eastwards from the
meridian of Greenwich.
1°) Program #1
-The longitude L and the latitude b are solutions of the non-linear system:
sin b sin d1 + cos b cos d1
cos ( ST1 - a1 + L ) = sin h1
with
ST = mean Sidereal Time at Greenwich
sin b sin d2 + cos b cos d2
cos ( ST2 - a2 + L ) = sin h2
ai = right-ascension , di = declination
, hi = altitude
...................................................................................
sin b sin dn + cos b cos dn cos ( STn - an + L ) = sin hn , this system is overdetermined if there are more than 2 stars.
-To find L & b , we have to minimize the function
f(L,b) = SUMi [ sin b sin di + cos b cos di cos ( STi - ai + L ) - sin hi ]2
-The program below employs the elementary - and slow - method used by
"EXN2" ( cf "Extrema for the HP-41" § 3a )
Data Registers: R00 = "T" R06 to R15: temp
R16 = ST1 - a1
R20 = ST2 - a2
R24 = ST3 - a3
....................... ST = Sidereal Time
R17 = Cos d1
R21 = Cos d2
R25 = Cos d3
....................... a = Right-Ascension
R18 = Sin d1
R22 = Sin d2
R26 = Sin d3
....................... d = declination
R19 = Sin h1
R23 = Sin h2
R27 = Sin h3
....................... h = altitude
-When the program stops, R01 = your longitude & R02 = your latitude ( in degrees and decimals )
Flags:
F22 F29
Subroutines: "MST" Mean Sidereal
Time at Greenwich ( cf "Rising-Transit-Setting for the HP-41" )
"H0-H" ( cf "Atmospheric Refraction for the HP-41" )
"EXN2" ( cf "Extrema for the HP-41" , § 3a the second
version, for n < 11 )
-Line 17 is a three-byte GTO 03 but it doesn't really matter because
this line is executed only once.
-The append character is denoted ~
-Line 59 LBL "T" may be replaced by another global name, provided it's
the same as line 93
01 LBL "FIX"
02 1 03 STO 01 04 16.9 05 STO 02 06 CF 29 07 DEG 08 LBL 01 09 FIX 0 10 "DATE^TIME" 11 ARCL 01 12 "~?" 13 FIX 4 14 CF 22 15 PROMPT 16 FC?C 22 17 GTO 03 18 XEQ "MST" 19 LASTX 20 STO IND 02 21 FIX 0 22 "RA^DEC^ALT" |
23 ARCL 01
24 "~?" 25 FIX 4 26 PROMPT 27 STO 09 28 RCL Z 29 HR 30 ST- IND 02 31 15 32 ST* IND 02 33 ISG 02 34 R^ 35 HR 36 1 37 P-R 38 STO IND 02 39 ISG 02 40 X<>Y 41 STO IND 02 42 ISG 02 43 RCL 09 44 XEQ "H0-H" |
45 HR
46 SIN 47 STO IND 02 48 ISG 01 49 CLX 50 RCL 02 51 INT 52 E3 53 / 54 16 55 + 56 STO 06 57 ISG 02 58 GTO 01 59 LBL "T" 60 RCL 02 61 RCL 06 62 STO 10 63 SIGN 64 P-R 65 STO 08 66 X<>Y |
67 STO 09
68 CLX 69 LBL 02 70 RCL 01 71 RCL IND 10 72 + 73 COS 74 RCL 08 75 * 76 ISG 10 77 RCL IND 10 78 * 79 RCL 09 80 ISG 10 81 RCL IND 10 82 * 83 + 84 ISG 10 85 RCL IND 10 86 - 87 X^2 88 + |
89 ISG 10
90 GTO 02 91 RTN 92 LBL 03 93 "T" 94 ASTO 00 95 "STEP^LON^LAT" 96 PROMPT 97 STO 02 98 RDN 99 STO 01 100 CLX 101 2 102 XEQ "EXN2" 103 RCL 02 104 HMS 105 RCL 01 106 HMS 107 SF 29 108 CLA 109 CLD 110 END |
( 213 bytes / SIZE 4n+16 )
STACK | INPUTS | OUTPUTS |
Z | / | min(f) |
Y | / | latitude ( ° ' " ) |
X | / | longitude ( ° ' " ) |
Example: On 2006/04/04 you measure the altitude of n = 3 stars:
at 6h00m (UT) alpha Lyr
( RA = 18h37m09s , Decl = 38°47'21" )
Altitude = 29°41'59"
at 6h01m (UT) zeta UMaj
( RA = 13h24m10s , Decl = 54°53'34" )
Altitude = 60°29'56"
at 6h02m (UT) gamma UMin ( RA
= 15h20m43s , Decl = 71°48'43" ) Altitude
= 42°26'03"
-SIZE 028 or greater, then:
XEQ "FIX" the HP-41 displays "DATE^TIME1?" ( enter the different data and press R/S )
2006.0404 ENTER^
6.00
R/S the HP-41
displays "RA^DEC^ALT1?"
18.3709 ENTER^
38.4721 ENTER^
29.4159 R/S
the HP-41 displays "DATE^TIME2?"
2006.0404 ENTER^
6.01
R/S the HP-41
displays "RA^DEC^ALT2?"
13.2410 ENTER^
54.5334 ENTER^
60.2956 R/S
the HP-41 displays "DATE^TIME3?"
2006.0404 ENTER^
6.02
R/S the HP-41
displays "RA^DEC^ALT3?"
15.2043 ENTER^
71.4843 ENTER^
42.2603 R/S
the HP-41 displays "DATE^TIME4?"
( since we have only 3 stars, press R/S without any digit entry
)
R/S the HP-41
displays "STEP^LON^LAT?"
( enter a stepsize, say 4° and your estimated position, for instance
-70° , +20° )
4
ENTER^
-70
ENTER^
20
R/S the HP-41
executes "EXN2" and displays the successive f-values, and 7mn39s
later:
>>> your longitude = X-register
= -74°40'30"
So, you are on the Atlantic Ocean, near the Bahamas!
>>> your latitude
= Y-register = +25°49'41"
Z-register = fmin ~ 2.4 10 -11 = R13
this value must be a very small number.
-If the process seems to diverge, stop the program, GTO "FIX" ,
XEQ 03 and key in new estimated step/longitude/latitude.
-Too bad initial guesses may lead to a local minimum and a wrong position
but in this case, Z-output is not very small.
-However, if n = 2, the system has 2 solutions. Therefore, measuring
3 altitudes is safer.
2°) Program #2
-"FIX2" minimizes the function f(L,b) = SUMi
[ sin b sin di + cos b cos di cos ( STi
- ai + L ) - sin hi ]2
by equating to zero the partial derivatives with respect to
L and b, it yields:
SUMi cos
di sin ( STi - ai + L ) [ sin b
sin di + cos b cos di cos ( STi - ai
+ L ) - sin hi ] = 0
SUMi [
cos b sin di - sin b cos di cos ( STi
- ai + L ) [ sin b sin di + cos b cos di
cos ( STi - ai + L ) - sin hi ]
= 0
Data Registers: R00 = "T" R01 to R12 & R16 to R21; temp
R13 = L
R22 = ST1 - a1
R26 = ST2 - a2
R30 = ST3 - a3 ..............
R14 = cos b
R23 = Cos d1
R27 = Cos d2
R31 = Cos d3
R15 = sin b
R24 = Sin d1
R28 = Sin d2
R32 = Sin d3
R25 = Sin h1
R29 = Sin h2
R33 = Sin h3
-When the program stops, R01 = your longitude & R02 = your latitude ( in degrees and decimals )
Flags:
F22 F29
Subroutines: "MST" Mean Sidereal
Time at Greenwich ( cf "Rising-Transit-Setting for the HP-41" )
"H0-H" ( cf "Atmospheric Refraction for the HP-41" )
"SXY" 2x2 non-linear systems ( cf "Linear & Non-Linear
Systems for the HP-41" )
01 LBL "FIX2"
02 1 03 STO 01 04 22.9 05 STO 02 06 CF 29 07 DEG 08 LBL 01 09 FIX 0 10 "DATE^TIME" 11 ARCL 01 12 "~?" 13 FIX 4 14 CF 22 15 PROMPT 16 FC?C 22 17 GTO 03 18 XEQ "MST" 19 LASTX 20 STO IND 02 21 FIX 0 22 "RA^DEC^ALT" 23 ARCL 01 24 "~?" 25 FIX 4 26 PROMPT 27 STO 03 |
28 RCL Z
29 HR 30 ST- IND 02 31 15 32 ST* IND 02 33 ISG 02 34 R^ 35 HR 36 1 37 P-R 38 STO IND 02 39 ISG 02 40 X<>Y 41 STO IND 02 42 ISG 02 43 RCL 03 44 XEQ "H0-H" 45 HR 46 SIN 47 STO IND 02 48 ISG 01 49 CLX 50 RCL 02 51 INT 52 E3 53 / 54 22 |
55 +
56 STO 12 57 ISG 02 58 GTO 01 59 LBL "T" 60 STO 13 61 CLX 62 STO 16 63 STO 17 64 STO 18 65 SIGN 66 P-R 67 STO 14 68 X<>Y 69 STO 15 70 RCL 12 71 STO 19 72 LBL 02 73 RCL IND 19 74 RCL 13 75 + 76 ISG 19 77 RCL IND 19 78 P-R 79 STO 20 80 RCL 14 81 * |
82 ISG 19
83 RCL 15 84 RCL IND 19 85 STO 21 86 * 87 + 88 ISG 19 89 RCL IND 19 90 - 91 * 92 ST+ 16 93 LATSX 94 X^2 95 ST+ 18 96 LASTX 97 RCL 14 98 RCL 21 99 * 100 RCL 15 101 RCL 20 102 * 103 - 104 * 105 ST+ 17 106 ISG 19 107 GTO 02 108 RCL 17 |
109 RCL 16
110 RTN 111 LBL 03 112 "T" 113 ASTO 00 114 "STEP^LON^LAT?" 115 PROMPT 116 STO 02 117 STO 04 118 RDN 119 STO 01 120 STO 03 121 X<>Y 122 ST+ 03 123 ST+ 04 124 XEQ "SXY" 125 RCL 18 126 X<> Z 127 HMS 128 X<>Y 129 HMS 130 SF 29 131 CLA 132 CLD 133 END |
( 253 bytes / SIZE 022+4n )
STACK | INPUTS | OUTPUTS |
Z | / | min(f) |
Y | / | latitude ( ° ' " ) |
X | / | longitude ( ° ' " ) |
Example: The same example as above: On 2006/04/04,
at 6h00m (UT) alpha Lyr
( RA = 18h37m09s , Decl = 38°47'21" )
Altitude = 29°41'59"
at 6h01m (UT) zeta UMaj
( RA = 13h24m10s , Decl = 54°53'34" )
Altitude = 60°29'56"
at 6h02m (UT) gamma UMin ( RA
= 15h20m43s , Decl = 71°48'43" ) Altitude
= 42°26'03"
-SIZE 034 or greater, then:
XEQ "FIX2" the HP-41 displays "DATE^TIME1?" ( enter the different data and press R/S )
2006.0404 ENTER^
6.00
R/S --------------------
"RA^DEC^ALT1?"
18.3709 ENTER^
38.4721 ENTER^
29.4159 R/S
-------------------- "DATE^TIME2?"
2006.0404 ENTER^
6.01
R/S -------------------
"RA^DEC^ALT2?"
13.2410 ENTER^
54.5334 ENTER^
60.2956 R/S
------------------- "DATE^TIME3?"
2006.0404 ENTER^
6.02
R/S -------------------
"RA^DEC^ALT3?"
15.2043 ENTER^
71.4843 ENTER^
42.2603 R/S
------------------- "DATE^TIME4?"
( since we have only 3 stars, press R/S without any digit entry
)
R/S -------------------
"STEP^LON^LAT?"
( enter a stepsize - say 2° - and your estimated position, for instance
-70° , +20° )
2
ENTER^
-70
ENTER^
20
R/S the HP-41
executes "SXY" and displays the successive longitude-values, expressed
in degrees and decimals
( each iteration requires about 23 seconds if n = 3 ) and eventually -
execution time = 2mn40s,
>>> your longitude = X-register
= -74°40'30"
>>> your latitude
= Y-register = +25°49'41"
Z-register = fmin ~ 2.3 10 -11 = R18
this number must be very small.
-"SXY" may stop prematurely if the jacobian = 0 ( always check Z-register
or R18 )
-"SXY" tries to produce very accurate results, but here, 8 decimals
are superfluous.
-So, execution time can be reduced if you modify the termination criterion
in the "SXY" listing.
3°) Program #3
-If you only measure the altitudes of 2 stars, the non-linear system
has only 2 equations in 2 unknowns,
so you can solve it directly without calculating any partial
derivative.
sin b sin d1 + cos b cos d1
cos ( ST1 - a1 + L ) = sin h1
( ST = mean Sidereal Time at Greenwich , hi = altitude
sin b sin d2 + cos b cos d2
cos ( ST2 - a2 + L ) = sin h2
L = longitude , b = latitude , ai = right-ascension , di
= declination )
Data Registers: R00 = "T" R01 to R11 are used by "SXY"
R12 = L
R15 = ST1 - a1
R19 = ST2 - a2
R23 = ST3 - a3
........................
R13 = cos b
R16 = Cos d1
R20 = Cos d2
R24 = Cos d3
R14 = sin b
R17 = Sin d1
R21 = Sin d2
R25 = Sin d3
R18 = Sin h1
R22 = Sin h2
R26 = Sin h3
-When the program stops, R01 = your longitude & R02 = your latitude ( in degrees and decimals )
Flags:
F22 F29
Subroutines: "MST" Mean Sidereal
Time at Greenwich ( cf "Rising-Transit-Setting" )
"H0-H" ( cf "Atmospheric Refraction" )
"SXY" ( cf "Linear and non-linear systems" )
01 LBL "FIX3"
02 1 03 STO 01 04 15.9 05 STO 02 06 CF 29 07 DEG 08 LBL 01 09 FIX 0 10 "DATE^TIME" 11 ARCL 01 12 "~?" 13 FIX 4 14 CF 22 15 PROMPT 16 FC?C 22 17 GTO 02 18 XEQ "MST" 19 LASTX 20 STO IND 02 21 FIX 0 22 "RA^DEC^ALT" |
23 ARCL 01
24 "~?" 25 FIX 4 26 PROMPT 27 STO 03 28 RCL Z 29 HR 30 ST- IND 02 31 15 32 ST* IND 02 33 ISG 02 34 R^ 35 HR 36 1 37 P-R 38 STO IND 02 39 ISG 02 40 X<>Y 41 STO IND 02 42 ISG 02 43 RCL 03 44 XEQ "H0-H" |
45 HR
46 SIN 47 STO IND 02 48 ISG 01 49 CLX 50 ISG 02 51 GTO 01 52 LBL "T" 53 STO 12 54 RCL 15 55 + 56 COS 57 RCL 16 58 * 59 RCL Y 60 COS 61 STO 13 62 * 63 X<>Y 64 SIN 65 STO 14 66 RCL 17 |
67 *
68 + 69 RCL 18 70 - 71 RCL 12 72 RCL 19 73 + 74 COS 75 RCL 13 76 * 77 RCL 20 78 * 79 RCL 14 80 RCL 21 81 * 82 + 83 RCL 22 84 - 85 RTN 86 LBL 02 87 SF 29 88 "T" |
89 ASTO 00
90 "STEP^LON^LAT?" 91 PROMPT 92 STO 02 93 STO 04 94 RDN 95 STO 01 96 STO 03 97 X<>Y 98 ST+ 03 99 ST+ 04 100 XEQ "SXY" 101 X<>Y 102 HMS 103 X<>Y 104 HMS 105 CLA 106 CLD 107 END |
( 210 bytes / SIZE at least 023 )
STACK | INPUTS | OUTPUTS |
Z | / | ~ 0 |
Y | / | b ( ° ' " ) |
X | / | L ( ° ' " ) |
Example: Again the same example: On 2006/04/04,
at 6h00m (UT) alpha Lyr
( RA = 18h37m09s , Decl = 38°47'21" )
Altitude = 29°41'59"
at 6h01m (UT) zeta UMaj
( RA = 13h24m10s , Decl = 54°53'34" )
Altitude = 60°29'56"
at 6h02m (UT) gamma UMin ( RA
= 15h20m43s , Decl = 71°48'43" ) Altitude
= 42°26'03"
-SIZE 027 ( or greater ) if you want to use the 3 stars - later - then:
XEQ "FIX3" the HP-41 displays "DATE^TIME1?" ( enter the different data and press R/S )
2006.0404 ENTER^
6.00
R/S --------------------
"RA^DEC^ALT1?"
18.3709 ENTER^
38.4721 ENTER^
29.4159 R/S
-------------------- "DATE^TIME2?"
2006.0404 ENTER^
6.01
R/S -------------------
"RA^DEC^ALT2?"
13.2410 ENTER^
54.5334 ENTER^
60.2956 R/S
------------------- "DATE^TIME3?"
2006.0404 ENTER^
6.02
R/S -------------------
"RA^DEC^ALT3?"
15.2043 ENTER^
71.4843 ENTER^
42.2603 R/S
------------------- "DATE^TIME4?"
( since we have only 3 stars, press R/S without any digit entry
)
R/S -------------------
"STEP^LON^LAT?"
( enter a stepsize, say 1° and your estimated position, again
-70° , +20° )
1
ENTER^
-70
ENTER^
20
R/S the HP-41
executes "SXY" and displays the successive longitude-approximations, expressed
in degrees and decimals
( each iteration requires about 12 seconds ) and about 90 seconds later,
it yields:
L = -74°40'31''
RDN b = 25°49'42''
( RDN again gives 1 E-10 which is a very small number so the solution is
OK )
-The data in registers R23 thru R26 have not been used but you can swap
these registers with R19 thru R22
( 19.023004 REGSWAP ) to use the stars
n°1 & 3 and key in XEQ 02 , it yields ( with the same
STEP^LON^LAT ):
L = -74°40'29''
RDN b = 25°49'40''
which confirms the results above
-For a last check, swap registers R15 thru R18 & R23 thru R26 ( 15.023004 REGSWAP ) and XEQ 02 , we get ( with the same STEP^LON^LAT ):
L = -74°40'39''
RDN b = 25°49'41''
-If needed, compute the average of these values to eliminate - or at
least diminish - the effects of errors in the heights, refraction ...etc...
4°) Program #4
-Actually, the non-linear system
sin b sin
d1 + cos b cos d1 cos ( ST1 - a1
+ L ) = sin h1
( ST = mean Sidereal Time at Greenwich , hi
= altitude )
sin b
sin d2 + cos b cos d2 cos ( ST2 - a2
+ L ) = sin h2
( L = longitude , b = latitude , ai = right-ascension
, di = declination )
may be solved without any iterative method:
-Let x = sin b After eliminating L from these 2 equations, we find that x is one solution of the quadratic equation A x2 + B x + C = 0
A = tan2 d1 + tan2 d2 + sin2
( ST2 - a2 - ST1 + a1 ) - 2
tan d1 tan d2 cos ( ST2 - a2
- ST1 + a1 )
with B
= -2 sin h1 sin d1 / cos2 d1
- 2 sin h2 sin d2 / cos2 d2
+ 2 ( sin h1 sin d2 + sin h2 sin d1
) cos ( ST2 - a2 - ST1 + a1
) / ( cos d1 cos d2 )
C = sin2 h1 / cos2 d1 + sin2
h2 / cos2 d2 - sin2 ( ST2
- a2 - ST1 + a1 ) - 2 sin h1
sin h2 cos ( ST2 - a2 - ST1
+ a1 ) / ( cos d1 cos d2 )
-After solving this quadratic equation, we find the longitude L by using the R-P conversion and:
2 cos [ L + ( ST2 - a2 + ST1 - a1
)/2 ] cos [ ( ST2 - a2 - ST1 + a1
)/2 ] = E + F
2 sin [ L + ( ST2 - a2 + ST1 - a1
)/2 ] sin [ ( ST2 - a2 - ST1 + a1
)/2 ] = E - F
with E = ( sin
h1 - x sin d1 ) / [ cos d1 ( 1 - x2
)1/2 ]
and F
= ( sin h2 - x sin d2 ) / [ cos d2 ( 1
- x2 )1/2 ]
Data Registers: R00 thru R03: temp
R04 = ST1 - a1
R08 = ST2 - a2
R12 = ST3 - a3 ........................
R05 = Cos d1
R09 = Cos d2
R13 = Cos d3
R06 = Sin d1
R10 = Sin d2
R14 = Sin d3
R07 = Sin h1
R11 = Sin h2
R15 = Sin h3
Flags:
F22 F29
Subroutines: "MST" Mean Sidereal
Time at Greenwich ( cf "Rising-Transit-Setting" )
"H0-H" ( cf "Atmospheric Refraction" )
01 LBL "FIX4"
02 1 03 STO 01 04 4.9 05 STO 02 06 CF 29 07 DEG 08 LBL 01 09 FIX 0 10 "DATE^TIME" 11 ARCL 01 12 "~?" 13 FIX 4 14 CF 22 15 PROMPT 16 FC?C 22 17 GTO 02 18 XEQ "MST" 19 LASTX 20 STO IND 02 21 FIX 0 22 "RA^DEC^ALT" 23 ARCL 01 24 "~?" 25 FIX 4 26 PROMPT 27 STO 03 28 RCL Z 29 HR 30 ST- IND 02 31 15 32 ST* IND 02 33 ISG 02 34 R^ 35 HR 36 1 37 P-R 38 STO IND 02 39 ISG 02 |
40 X<>Y
41 STO IND 02 42 ISG 02 43 RCL 03 44 XEQ "H0-H" 45 HR 46 SIN 47 STO IND 02 48 ISG 01 49 CLX 50 ISG 02 51 GTO 01 52 LBL 02 53 CLA 54 SF 29 55 RCL 06 56 RCL 05 57 / 58 X^2 59 RCL 10 60 RCL 09 61 / 62 X^2 63 + 64 RCL 04 65 RCL 08 66 - 67 COS 68 RCL 05 69 RCL 09 70 * 71 / 72 STO 01 73 RCL 06 74 * 75 RCL 10 76 * 77 ST+ X 78 - |
79 STO 02
80 RCL 06 81 RCL 07 82 * 83 RCL 05 84 X^2 85 / 86 RCL 10 87 RCL 11 88 * 89 RCL 09 90 X^2 91 / 92 + 93 RCL 07 94 RCL 10 95 * 96 RCL 06 97 RCL 11 98 * 99 + 100 RCL 01 101 * 102 - 103 RCL 07 104 RCL 05 105 / 106 X^2 107 RCL 11 108 RCL 09 109 / 110 X^2 111 + 112 RCL 07 113 RCL 11 114 * 115 RCL 01 116 * 117 2 |
118 STO 00
119 * 120 - 121 RCL 04 122 RCL 08 123 - 124 SIN 125 X^2 126 ST+ 02 127 - 128 RCL 02 129 * 130 X<>Y 131 X^2 132 X<>Y 133 - 134 SQRT 135 ENTER^ 136 CHS 137 R^ 138 ST+ Z 139 + 140 RCL 02 141 ST/ Z 142 / 143 STO 01 144 X<>Y 145 LBL 03 146 STO 02 147 RCL 06 148 * 149 RCL 07 150 X<>Y 151 - 152 RCL 05 153 / 154 RCL 11 155 RCL 02 156 RCL 10 |
157 *
158 - 159 RCL 09 160 / 161 ST- Z 162 + 163 RCL 08 164 RCL 04 165 - 166 2 167 / 168 SIN 169 ST/ Z 170 X<> L 171 COS 172 / 173 R-P 174 CLX 175 RCL 04 176 RCL 08 177 + 178 2 179 / 180 - 181 X<> 03 182 RCL 02 183 X<> 01 184 DSE 00 185 GTO 03 186 ASIN 187 HMS 188 X<>Y 189 HMS 190 RCL 01 191 ASIN 192 HMS 193 RCL 03 194 HMS 195 END |
( 274 bytes / SIZE at least 012 )
STACK | INPUTS | OUTPUTS |
T | / | b2 ( ° ' " ) |
Z | / | L2 ( ° ' " ) |
Y | / | b1 ( ° ' " ) |
X | / | L1 ( ° ' " ) |
Example: Once again the same example: On 2006/04/04,
at 6h00m (UT) alpha Lyr
( RA = 18h37m09s , Decl = 38°47'21" )
Altitude = 29°41'59"
at 6h01m (UT) zeta UMaj
( RA = 13h24m10s , Decl = 54°53'34" )
Altitude = 60°29'56"
at 6h02m (UT) gamma UMin ( RA
= 15h20m43s , Decl = 71°48'43" ) Altitude
= 42°26'03"
-SIZE 016 ( or greater ) if you want to use the 3 stars, then:
XEQ "FIX4" the HP-41 displays "DATE^TIME1?" ( enter the different data and press R/S )
2006.0404 ENTER^
6.00
R/S --------------------
"RA^DEC^ALT1?"
18.3709 ENTER^
38.4721 ENTER^
29.4159 R/S
-------------------- "DATE^TIME2?"
2006.0404 ENTER^
6.01
R/S -------------------
"RA^DEC^ALT2?"
13.2410 ENTER^
54.5334 ENTER^
60.2956 R/S
------------------- "DATE^TIME3?"
2006.0404 ENTER^
6.02
R/S -------------------
"RA^DEC^ALT3?"
15.2043 ENTER^
71.4843 ENTER^
42.2603 R/S
------------------- "DATE^TIME4?"
( since we have only 3 stars, press R/S without any digit entry
)
R/S >>>> L1
= -74°40'31'' ( in 12 seconds
)
RDN b1 = 25°49'42''
RDN L2 = -136°35'18''
RDN b2 = 77°27'13''
-The system has usually 2 solutions, so if you don't have any idea of your position, use the 3rd star
8.012004 REGSWAP XEQ 02 gives
L1 = -74°40'29''
RDN L'2 = 92°13'39''
( 2 other solutions with stars 1&3 )
RDN b1 = 25°49'40''
RDN b'2 = 58°20'30''
-Finally 4.012004 REGSWAP XEQ 02 it yields
L1 = -74°40'39''
RDN L''2 = -114°15'53''
( 2 other solutions with stars 2&3 )
RDN b1 = 25°49'41''
RDN b''2 = 35°38'22''
-The arithmetic mean of the 3 ( L1 , b1 )s is Longitude = -74°40'33'' , Latitude = 25°49'41''
Notes:
-The program doesn't work if a declination = +/-90°
( DATA ERROR line 57 or 61 ) but in this case, the system is very easy
to solve:
-If, for instance, d1 = 90° then b = h1
and after substituting this result into the 2nd equation sin
b sin d2 + cos b cos d2 cos ( ST2 - a2
+ L ) = sin h2
ACOS easily gives the 2 L-values.
-It doesn't really matter to take this case into account because no
star has a declination exactly equal to 90° or -90°
-However, roundoff errors may be important - at least in the longitude
- if the declination is about +/-89°59'
5°) Program #5
-Several bytes may of course be saved if you store the required data
in the proper registers before executing the routine.
-"FIX5" uses the same method as "FIX4"
Data Registers: R00 & R11 thru R19: temp ( Registers R01 thru R10 are to be initialized before executing "FIX5" )
• R01 = Date1
• R06 = Date2
YYYY.MNDD
• R02 = Time1
• R07 = Time2
HH.MNSS ( UT )
• R03 = R.A1
• R08 = R.A2
hh.mnss
• R04 = Decl1
• R09 = Decl2
° . ' ''
• R05 = h1
• R10 = h2
° . ' ''
Flags: There is no real solutions if F00 is set at the end.
Subroutines: "MST" Mean Sidereal
Time at Greenwich ( cf "Rising-Transit-Setting" )
"H0-H" ( cf "Atmospheric Refraction" )
"P2" ( cf "Polynomial" §1-a) )
01 LBL "FIX5"
02 DEG 03 RCL 01 04 RCL 02 05 XEQ "MST" 06 RCL 03 07 HMS- 08 HR 09 STO 11 10 STO 15 11 RCL 06 12 RCL 07 13 XEQ "MST" 14 RCL 08 15 HMS- 16 HR 17 ST- 11 18 ST+ 15 19 15 20 ST* 11 21 2 22 STO 19 23 / 24 ST* 15 25 RCL 05 26 XEQ "H0-H" 27 LASTX 28 SIN |
29 RCL 04
30 HR 31 COS 32 / 33 STO 12 34 RCL 10 35 XEQ "H0-H" 36 LASTX 37 SIN 38 RCL 09 39 HR 40 COS 41 / 42 STO 13 43 RCL 04 44 HR 45 TAN 46 STO 00 47 * 48 RCL 12 49 RCL 09 50 HR 51 TAN 52 STO 14 53 * 54 + 55 RCL 11 56 COS |
57 STO 16
58 ST+ 16 59 * 60 RCL 00 61 RCL 12 62 * 63 - 64 RCL 13 65 RCL 14 66 * 67 - 68 ST+ X 69 RCL 00 70 X^2 71 RCL 14 72 X^2 73 + 74 RCL 00 75 RCL 14 76 * 77 RCL 16 78 * 79 - 80 X<>Y 81 RCL 12 82 ST* 16 83 X^2 84 RCL 13 |
85 ST* 16
86 X^2 87 + 88 RCL 16 89 - 90 RCL 11 91 SIN 92 X^2 93 ST+ T 94 - 95 XEQ "P2" 96 STO 17 97 X<>Y 98 STO 18 99 LBL 01 100 STO 16 101 RCL 14 102 * 103 RCL 13 104 X<>Y 105 - 106 RCL 12 107 RCL 00 108 RCL 16 109 * 110 - 111 ST+ Z 112 - |
113 RCL 11
114 2 115 / 116 1 117 P-R 118 ST/ T 119 RDN 120 / 121 X<>Y 122 R-P 123 CLX 124 RCL 15 125 - 126 X<> 17 127 DSE 19 128 GTO 01 129 HMS 130 RCL 18 131 ASIN 132 HMS 133 X<>Y 134 RCL 16 135 ASIN 136 HMS 137 RCL 17 138 HMS 139 END |
( 197 bytes / SIZE 020 )
STACK | INPUTS | OUTPUTS |
T | / | b2 ( ° ' " ) |
Z | / | L2 ( ° ' " ) |
Y | / | b1 ( ° ' " ) |
X | / | L1 ( ° ' " ) |
where L = longitude , b = latitude
Example: Still on 2006/04/04,
• 6h00m (UT) alpha Lyr - RA
= 18h37m09s , Decl = 38°47'21" , Altitude = 29°41'59"
• 6h01m (UT) zeta UMaj -
RA = 13h24m10s , Decl = 54°53'34" , Altitude = 60°29'56"
2006.0404 STO 01
2006.0404 STO 06
6
STO 02
6.01 STO 07
18.3709
STO 03
13.2410 STO 08
38.4721
STO 04
54.5354 STO 09
29.4159
STO 05
60.2956 STO 10
XEQ "FIX5" >>>> L1
= -136°35'18''
---Execution time = 21s---
RDN b1 =
77°27'13''
RDN L2 = -74°40'31'
RDN b2 =
25°49'42''
-The 2 solutions are ( L1 , b1 ) &
( L2 , b2 )