home *** CD-ROM | disk | FTP | other *** search
-
- 10 REM KEPLER'S EQUATION
- 11 REM
- 12 P1=3.14159265: R1=180/P1
- 13 K=0.01720209895
- 14 INPUT "PERI DISTANCE Q ";Q
- 15 INPUT "ECCENTRICITY ";E0
- 16 INPUT "DAYS FROM PERI ";T
- 17 PRINT
- 18 IF E0>=0.95 THEN 40
- 19 IF E0>=1 THEN 85
- 20 A1=Q/(1-E0): M=K*T*A1^(-1.5)
- 21 REM
- 22 REM BINARY SEARCH
- 23 REM
- 24 F=SGN(M): M=ABS(M)/(2*P1)
- 25 M=(M-INT(M))*2*P1*F
- 26 IF M<0 THEN M=M+2*P1
- 27 F=1: IF M>P1 THEN F=-1
- 28 IF M>P1 THEN M=2*P1-M
- 29 E=P1/2: D=P1/4
- 30 FOR I1=1 TO 23
- 31 M1=E-E0*SIN(E)
- 32 E=E+SGN(M-M1)*D: D=D/2
- 33 NEXT I1
- 34 V=SQR((1+E0)/(1-E0)): E=E*F
- 35 V=2*ATN(V*SIN(E/2)/COS(E/2))
- 36 R=A1*(1-E0*COS(E))
- 37 PRINT "BINARY SEARCH -- "
- 38 GOTO 81
- 39 REM
- 40 REM GAUSS METHOD
- 41 REM
- 42 GOSUB 69
- 43 A=SQR((1+9*E0)/10)
- 44 B=5*(1-E0)/(1+9*E0)
- 45 C=SQR(5*(1+E0)/(1+9*E0))
- 46 B1=3*A*K*T/SQR(2*Q*Q*Q)
- 47 B2=1: REM INITIAL VALUE
- 48 W1=B2*B1: B3=ATN(2/W1)
- 49 T1=SIN(B3/2)/COS(B3/2)
- 50 S1=SGN(T1): T1=ABS(T1)
- 51 T2=T1^(1/3)*S1: G=ATN(T2)
- 52 S=2*COS(2*G)/SIN(2*G)
- 53 A2=B*S*S: B0=B2: B2=0
- 54 IF ABS(A2)>0.3 THEN 19
- 55 FOR J=0 TO 7
- 56 B2=B2+B(J)*A2^J
- 57 NEXT J
- 58 IF ABS(B2-B0)>1E-8 THEN 48
- 59 C1=0
- 60 FOR J=0 TO 7
- 61 C1=C1+S(J)*A2^J
- 62 NEXT J
- 63 C1=SQR(1/C1)
- 64 V1=C*C1*S: D1=1/(1+A2*C1*C1)
- 65 V=2*ATN(V1): R=Q*D1*(1+V1*V1)
- 66 PRINT "GAUSS METHOD --"
- 67 GOTO 81
- 68 REM
- 69 REM COEFFICIENTS
- 70 FOR J=0 TO 7: READ B(J): NEXT
- 71 FOR J=0 TO 7: READ S(J): NEXT
- 72 RETURN
- 73 DATA 1, 0, -0.017142857
- 74 DATA -0.003809524,-0.001104267
- 75 DATA -0.000367358,-0.000131675
- 76 DATA -0.000049577, 1, -0.8
- 77 DATA 0.04571429, 0.01523810
- 78 DATA 0.00562820, 0.00218783
- 79 DATA 0.00087905, 0.00036155
- 80 REM
- 81 IF V<0 THEN V=V+2*P1
- 82 PRINT "TRUE ANOMALY: ";V*R1
- 83 PRINT "DISTANCE (AU): ";R
- 84 GOTO 86
- 85 PRINT "OUT OF RANGE"
- 86 END
-