10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *******************
11  REM
12  REM         ORBIT:  INTEGRATES EQUATIONS OF MOTION
13  REM
14  REM         36121 (A833) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  ******************************* ******
17  REM
1000  REM ORBIT PROBLEM
1001  REM INVERSE N POWER FORCE LAW
1002  REM 4TH ORDER RUNGE KUTTA METHOD
1003  REM N IS INVERSE POWER OF FORCE LAW
1004  REM X AND Y ARE INITIAL POSITION COORDINATES
1005  REM W1 AND W2 ARE INITIAL VELOCITY COMPONENTS
1006  REM D IS TIME INTERVAL OF COMPUTATION
1007  REM T9 IS TIME LIMIT ON COMPUTATION
1010  READ N
1020  READ X,Y,W1,W2,D,T9
1030  LET X1=X
1040  LET Y1=Y
1050  LET V1=W1
1060  LET V3=W2
1070  FOR T=0 TO T9 STEP D
1080  PRINT X1,Y1,SQR(X1^2+Y1^2)
1090  LET K1=V1
1100  LET P1=V3
1110  LET R=SQR(X1*X1+Y1*Y1)
1120  LET L1=-X1/R^(N+1)
1130  LET Q1=-Y1/R^(N+1)
1140  LET K2=V1+D*L1/2
1150  LET P2=V3+D*Q1/2
1160  LET S1=X1+D*K1/2
1170  LET S2=Y1+D*P1/2
1180  LET S3=SQR(S1*S1+S2*S2)
1190  LET L2=-S1/S3^(N+1)
1200  LET Q2=-S2/S3^(N+1)
1210  LET K3=V1+D*L2/2
1220  LET P3=V3+D*Q2/2
1230  LET S1=X1+D*K2/2
1240  LET S2=Y1+D*P2/2
1250  LET S3=SQR(S1*S1+S2*S2)
1260  LET L3=-S1/S3^(N+1)
1270  LET Q3=-S2/S3^(N+1)
1280  LET K4=V1+D*L3
1290  LET P4=V3+D*Q3
1300  LET S1=X1+D*K3
1310  LET S2=Y1+D*P3
1320  LET S3=SQR(S1*S1+S2*S2)
1330  LET L4=-S1/S3^(N+1)
1340  LET Q4=-S2/S3^(N+1)
1350  LET X1=X1+D*(K1+2*K2+2*K3+K4)/6
1360  LET Y1=Y1+D*(P1+2*P2+2*P3+P4)/6
1370  LET V1=V1+D*(L1+2*L2+2*L3+L4)/6
1380  LET V3=V3+D*(Q1+2*Q2+2*Q3+Q4)/6
1400  NEXT T
1410  DATA 2,1,0,0,1,.1,4
9999  END 
