HP Forums
(20S and 21S) Great Circle - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (20S and 21S) Great Circle (/thread-8453.html)



(20S and 21S) Great Circle - Eddie W. Shore - 06-03-2017 08:42 PM

The following program calculates the distance between two places on Earth (or any other planet) given the coordinates latitude (λ, east is positive) and longitude (ϕ, north is positive).

Inputs:
R1: longitude 1, R2: latitude 1
R4: longitude 2, R5: latitude 2
Enter the coordinates in DD.MMSSSS.

R1, R4: ϕ1, ϕ2; R2, R5: λ1, λ2

Distance, in miles, is stored in R0. Degrees mode is set.

Formula:

distance = acos( sin ϕ1 * sin ϕ2 + cos ϕ1 * cos ϕ2 * cos (λ2 – λ1) )* 3958.75 * π/180

On the HP 20S and HP 21S, can multiply by π/180 by executing the >RAD function.

HP 20S and HP 21S Program: Great Circle
Code:

STEP    CODE    KEY
01    61, 41, A    LBL A
02    61, 23     DEG
03    22, 1    RCL 1
04    51, 54    >HR
05    21, 1    STO 1
06    23    SIN
07    55    *
08    22, 4    RCL 4
09    51, 54    >HR
10    21, 4    STO 4
11    23    SIN
12    75    +
13    22, 1    RCL 1
14    24    COS
15    55    *
16    22, 4    RCL 4
17    24    COS
18    55    *
19    33    (
20    22, 2    RCL 2
21    51, 54    >HR
22    21, 2    STO 2
23    65    -
24    22, 5    RCL 5
25    51, 54    >HR
26    21, 5    STO 5
27    34    )
28    24    COS
29    74    =
30    51, 24    ACOS
31    55    *
32    3    3
33    9    9
34    5    5
35    8    8
36    73    .
37    7    7
38    5    5
39    74    =
40    61, 55    >RAD
41    21, 0    STO 0
42    61, 26    RTN


Example 1:
Los Angeles to Rome:
Los Angeles (ϕ1 = 34°13’, λ1 = -118°15’)
Rome (ϕ2 = 41°15’, λ2 = 12°30’)
Result: 6322.2196 mi

Example 2:
Dublin to Las Vegas:
Dublin (ϕ1 = 53°20’52”, λ1 = -6°15’35”)
Las Vegas (ϕ2 = 36°10’30”, λ2 = -115°08’11”)
Result: 4938.7520 mi


RE: (20S and 21S) Great Circle - Marcel - 06-03-2017 10:00 PM

Hi Eddie!

For an other planet, the user must change the numerical factor!!!.. the radius of the planet in miles or km.

Marcel


RE: (20S and 21S) Great Circle - Dieter - 06-04-2017 03:37 PM

(06-03-2017 10:00 PM)Marcel Wrote:  For an other planet, the user must change the numerical factor!!!.. the radius of the planet in miles or km.

Since most planets are not perfect spheres there is not a single radius. For instance the WGS84 system (cf. GPS) works with an Earth radius of 6378,137 km in East-West direction and with 6356,7523 km for North-South.

Eddie's formula uses a constant radius of 3958,75 miles or 6371 km. This is a good choice that minimizes the error of the calculation (cf. here). Yet there still is a potential error of 0,5%. So the result should be rounded to at most three significant digits. For the given examples that's 6320 resp. 4940 miles.

A final hint: enter an angle, and 1 P→R simultaneously returns both sine (in Y) and cosine (in X).
Edit: this works on classic RPN calculators and probably cannot be used for the algebraic 20S and 21S.

Dieter