HP Forums
(32SII) Tracing the Orbit Coordinates - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (32SII) Tracing the Orbit Coordinates (/thread-8831.html)



(32SII) Tracing the Orbit Coordinates - Eddie W. Shore - 08-13-2017 01:13 PM

Link to the blog post: http://edspi31415.blogspot.com/2017/08/hp-32sii-tracing-orbit-coordinates.html

The following program tracks the position (x,y) of a satellite in orbit by solving the pair of second-order differential equations:

d^2 x/dt^2 = -α * x * (x^2 + y^2)^-1.5

d^2 y/dt^2 = -α * y * (x^2 + y^2)^-1.5

For planetary orbits, α = G * M

Variables and Labels

Labels Used: 4 (A, B, C, D)

Variables Used:
Pre stored variables:
X = x0, initial x position
U = dx/dt, velocity of x coordinate
Y = y0, initial y position
V = dy/dt, velocity of y coordinate
C = Δt, desired time increment
A = α, gravitational force factor

If you are analyzing planetary orbits, then α = G * M where M is the mass of the center object and G is the Universal gravitational constant, G = 6.67384 * 10^-11 (m^3)/(s^2 * kg).

Other:
T = t

This program is based off of the HP 25S and program authored Robert M. Eisberg. (see the source below)

HP 32SII Program (87.5 bytes)
Code:

A01 LBL A   // start of program 
A02 0
A03 STO T   // initialize time variable
C01 LBL C
C02 RCL Y
C03 RCL Y
C04 x^2
C05 RCL X
C06 x^2
C07 +
C08 -1.5
C09 y^x
C10 RCL A
C11 *
C12 *       // calculate –α*y*(x^2 + y^2)^-1.5
C13 LASTx  
C14 RCL X
C15 *      // calculate –α*x*(x^2 + y^2)^-1.5
C16 RCL T
C17 x=0?
C18 GTO B
C19 R↓ 
D01 LBL D
D02 RCL C
D03 *
D04 STO- U
D05 R↓ 
D06 RCL C
D07 *
D08 STO- V
D09 RCL C
D10 STO+ T
D11 RCL U
D12 *
D13 STO+ X
D14 RCL X
D15 STOP       // view X
D16 RCL C
D17 RCL V
D18 *
D19 STO+ Y
D20 RCL Y
D21 STOP       // view Y
D22 GTO C      // start a new loop
B01 LBL B
B02 R↓ 
B03 2
B04 ÷ 
B05 x<>y
B06 2
B07 ÷ 
B08 x<>y
B09 GTO D
During execution, recall T for the time variable. Run by XEQ A.

Example

Pre stored variables:
X = 1.5
U = 0.18
Y = 1.5
V = 0.23
C = 1
A = α = 1

Table:
T = X = Y =
0 (initial) 1.5 1.5
1 1.6014 1.6514
2 1.5713 1.6672
3 1.4105 1.5443
4 1.0956 1.2527
5 0.5429 0.6892
6 -0.8138 -0.8949

Source: Robert M. Eiseberg. Applied Mathematical Physics with Programmable Calculators McGraw Hill. 1976. ISBN 0-07-019109-3