home *** CD-ROM | disk | FTP | other *** search
/ Play and Learn 2 / 19941.ZIP / 19941 / EDUCNOMY / ASTROSET / KEPLER.BAS < prev    next >
Encoding:
BASIC Source File  |  1994-02-04  |  1.8 KB  |  80 lines

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