http://www.geocities.com/suntheorem/index.html astronomy url Index to HP orbit programs ====== EQ1 Find m, Mean anomaly from K, T, A ---- EQ2 Find EE, Eccentric Anomaly from E and M ---- EQ3 Find Ra, DC, RO from Elements, IE, K, T ---- E4 Find direction Cosines ABC,123 ---- E5A Set up for time 1=35 days ---- E5B Set up for time 1=40 days ---- E5C Set up for time 1=45 days ---- E6 Prepare for R01 RO3 Problem ---- E7 Find EA, QA, T1A, TH1A, TH3A from TT1, TT3, K ---- E8 Find XYZ,123 from RA, DC,1,3, RO1A, RO3A ---- E9 Find RO1A, RO2A, RO3A from DET, N1A, N3A ---- E10 Insert real elements ---- E11 Find N1A, N3A from N10, N30, V1, V3 ---- E12 Find WA, OA, IA from P,Q,XYZ, IE ---- E13 Find F, M, Y for YB,XYZ31A, R1A, R3A ---- E14 Find YB ==== E15 Find P,Q XYZ from X31A Y31A Z31A X33A Y33A Z33A ==== E16 Find W O I from T1A, TT2, TT1 ==== E17 Vary RO to improve Elements ==== E18 Error Report ==== E19 Find true RA DC RO,123 ==== E20 Find RO, RA, DC ===== To start with RA DC 123 XS YS ZS 123 IE K TT1 TT2 TT3 E21 <> results in the real elements ====== HP Programs -/ is square root ---- EQ1 Find M, Mean anomaly from K, T, Q  <<"EQ1" CLEAR Q 1 E - / 'A' STO K T * A 1.5 ^ / 'M' STO >> ------ EQ2 Find EE, Eccentric Anomaly from E and M <<"EQ2" RAD CLEAR { 'EE-E*SIN(EE)-M' } { EE } { 0 } ROOT >> ------ EQ3 Find Ra, DC, RO from Elements, IE, K, T  << "EQ3" CLEAR RAD RECT EE COS E - A * 1 E SQ - \v/ A * EE SIN * ->V2 DEG CYLIN V-> 'TH' STO 'R' STO TH W + 'U' STO CYLIN R U ->V2 RECT V-> 'Y' STO 'X1' STO CYLIN Y I ->V2 RECT V-> 'Z2' STO 'Y1' STO X1 Y1 ->V2 CYLIN V-> O + ->V2 RECT V-> 'Y2' STO 'X3' STO Y2 Z2 ->V2 CYLIN V-> IE + ->V2 RECT V-> 'Z3' STO 'Y3' STO X3 XS + 'S1' STO Y3 YS + 'S2' STO Z3 ZS + 'S3' STO RECT S1 S2 S3 ->V3 SPHERE V-> NEG 90 + 'DC' STO 'RA' STO 'R0' STO R0 "R0" ->TAG RA "RA" ->TAG DC "DC" ->TAG RECT >> Standard Elements Q .4255 E .2 W 105 O -67 I 72 TT1 35 TT2 40 TT3 45 Results RA1 142.094574218 AU DC1 2.0658878565 RA2 146.007690781 DC2 -3.3966901959 RA3 150.362559348 DC3 -8.7211448805 XS1 -.893557086283 YS1 .441098630334 ZS1 .191255546456 XS2 -.931108260968 YS2 .371439715781 ZS2 .161052202235 XS3 -.962082097969 YS3 .299156786197 ZS3 .129711113762 IE 23.441028 Deg. K .01720209895 Gauss Gravity Constant =========== E4 Find direction Cosines ABC,123 << "E4" CLEAR DEG SPHERE 1 RA1 90 DC1 - ->V3 RECT V-> 'C1' STO 'B1' STO 'A1' STO SPHERE 1 RA2 90 DC2 - ->V3 RECT V-> 'C2' STO 'B2' STO 'A2' STO SPHERE 1 RA3 90 DC3 - ->V3 RECT V-> 'C3' STO 'B3' STO 'A3' STO A1 "A1" ->TAG B1 "B1" ->TAG C1 "C1" ->TAG A2 "A2" ->TAG B2 "B2" ->TAG C2 "C2" ->V3 A3 "A3" ->TAG B3 "B3" ->TAG C3 "C3" ->TAG >> ==== E5A Set up for time 1=35 days  << "E5A" CLEAR XS1 'XS' STO YS1 'YS' STO ZS1 'ZS' STO 35 'T' STO >> ==== E5B Set up for time 1=40 days  <<"E5B" CLEAR XS2 'XS' STO YS2 'YS' STO ZS2 'ZS' STO 40 'T' STO >> === E5C Set up for time 1=45 days  << "E5C" CLEAR XS3 'XS' STO YS3 'YS' STO ZS3 'ZS' STO 45 'T' STO >> ==== E6 Prepare for R01 RO3 Problem  << "E6" CLEAR A1 A2 A3 B1 B2 B3 C1 C2 C3 { 3 3 } ->ARRY 'DD' STO DD 2 XS1 PUT 5 YS1 PUT 8 ZS1 PUT 'D1' STO DD 2 XS2 PUT 5 YS2 PUT 8 ZS2 PUT 'D2' STO DD 2 XS3 PUT 5 YS3 PUT 8 ZS3 PUT 'D3' STO DD DET 'DDA' STO D1 DET 'D1A' STO D2 DET 'D2A' STO D3 DET 'D3A' STO TT3 TT2 - K * 'TU1' STO TT3 TT1 - K * 'TU2' STO TT2 TT1 - K * 'TU3' STO TU1 TU2 / 'N10' STO TU3 TU2 / 'N30' STO 1 N10 + TU3 * TU1 * 6 / 'V1' STO 1 N30 + TU3 * TU1 * 6 / 'V3' STO XS2 SQ YS2 SQ ZS2 SQ + + \v/ 'RS2' STO A2 XS2 * B2 YS2 * C2 ZS2 * + + -2 * 'RC' STO D1A N10 * D2A - D3A N30 * + DDA NEG / 'K0' STO D1A V1 * D3A V3 * + DDA / 'L0' STO >> ---- E7 Find EA, QA, T1A, TH1A, TH3A  << "E7" CLEAR TT3 TT1 - K * 'TU2' STO RECT RAD R1A R3A * F 2 * SIN * TU2 / YB * SQ 'PA' STO PA R1A / 1 - 'Q1' STO PA R3A / 1 - 'Q3' STO Q1 F 2 * COS * Q3 - F 2 * SIN / 'Q2' STO Q1 Q2 ->V2 CYLIN V-> 'TH1A' STO 'EA' STO TH1A "TH1A" ->TAG EA "EA" ->TAG PA 1 EA + / 'QA' STO QA "QA" ->TAG QA 1 EA - / 'A' STO RECT R1A TH1A COS * A / EA + 'S1' STO R1A TH1A SIN * A / 1 EA SQ - \v/ / 'S2' STO S1 S2 ->V2 RAD CYLIN V-> 'EE' STO EE EE SIN EA * - A 1.5 ^ * K / 'T1A' STO DROP T1A "T1A" ->TAG DEG RECT F 2 * TH1A + 'TH3A' STO TH3A "TH3A" ->TAG >> ==== E8 Find XYZ,123 from RA, DC,1,3, RO1A, RO3A  << "E8" CLEAR DEG SPHERE R01A RA1 DC1 NEG 90 + ->V3 RECT V-> ZS1 - 'Z31A' STO YS1 - 'Y31A' STO XS1 - 'X31A' STO SPHERE R03A RA3 DC3 NEG 90 + ->V3 RECT V-> ZS3 - 'Z33A' STO YS3 - 'Y33A' STO XS3 - 'X33A' STO SPHERE R02A RA2 DC2 NEG 90 + ->V3 RECT V-> ZS2 - 'Z32A' STO YS2 - 'Y32A' STO XS2 - 'X32A' STO "XYZ3,123A" RECT X31A Y31A Z31A ->V3 ABS 'R1A' STO X32A Y32A Z32A ->V3 ABS 'R2A' STO X33A Y33A Z33A ->V3 ABS 'R3A' STO >> ==== E9 Find RO1A, RO2A, RO3A from DET, N1A, N3A  << "E9" CLEAR A1 N1A * A2 NEG A3 N3A * B1 N1A * B2 NEG B3 N3A * C1 N1A * C2 NEG C3 N3A * { 3 3 } ->ARRY 'S1' STO N1A XS1 * XS2 - N3A XS3 * + N1A YS1 * YS2 - N3A YS3 * + N1A ZS1 * ZS2 - N3A ZS3 * + { 3 1 } ->ARRY 'S2' STO S1 INV S2 * 'S3' STO S3 1 GET S3 2 GET S3 3 GET 'R03A' STO 'R02A' STO 'R01A' STO R01A "R01A" ->TAG R02A "R02A" ->TAG R03A "R03A" ->TAG RO3A 'RO3B' STO RO1A 'RO1B' STO >> ==== E10 Insert real elements << "E10" CLEAR .4255 'Q' STO .2 'E' STO 105 'W' STO -67 'O' STO 72 'I' STO "REAL EL" >> === E11 Find N1A, N3A from N10, N30, V1, V3  << "E11" CLEAR TU1 TU2 / 'N10' STO TU3 TU2 / 'N30' STO N10 1 + TU1 * TU3 * 6 / 'V1' STO N30 1 + TU1 * TU3 * 6 / 'V3' STO N10 V1 R2A 3 ^ / + 'N1A' STO N1A "N1A" ->TAG N30 V3 R2A 3 ^ / + 'N3A' STO N3A "N3A" ->TAG >> ==== E12 Find WA, OA, IA from P,Q,XYZ, IE  << "E12" CLEAR DEG PZ IE COS * PY IE SIN * - 'S1' STO QZ IE COS * QY IE SIN * - 'S2' S2 S1 RECT ->V2 CYLIN V-> 'WA' STO 'S6' STO WA "WA" ->TAG RECT PX WA COS * QX WA SIN * - 'S3' STO PY WA COS * QY WA SIN * - IE COS / 'S4' STO S3 S4 ->V2 CYLIN V-> 'OA' STO DROP OA "OA" ->TAG PX WA SIN * QX WA COS * + NEG OA SIN / 'S5' STO S5 S6 RECT ->V2 CYLIN V-> 'IA' STO DROP IA "IA" ->TAG RECT >> ==== E13 Find F, M, Y for YB,XYZ31A, R1A, R3A << "E13" CLEAR RAD X31A X33A * Y31A Y33A * + Z31A Z33A * + R1A / R3A / ACOS 2 / 'F' STO F "F" ->TAG K TT3 TT1 - * SQ R1A R3A * \v/ 'S1' STO S1 2 * F COS * 3 ^ / 'M' STO "M" ->TAG R1A R3A + 4 / S1 / F COS / .5 - 'Y' STO Y "Y" ->TAG >> === E14 Find YB << "E14" RAD CLEAR { << M YB SQ / Y - \v/ ASIN 2 * 'X' STO X 2 * X 2 * SIN - M * X SIN 3 ^ / YB SQ + YB 3 ^ - \ >> } { YB } { 1 } ROOT >> ===== E15 Find P,Q XYZ from X31A Y31A Z31A X33A Y33A Z33A  << "E15" CLEAR RAD X31A Y31A Z31A ->V3 ABS 'R1A' STO X33A Y33A Z33A ->V3 ABS 'R3A' STO TH3A TH1A - 2 / 'F' STO X31A R3A * TH3A SIN * X33A R1A * TH1A SIN * - R1A R3A * F 2 * SIN * 'S1' STO S1 / 'PX' STO PX "PX" ->V3 X33A R1A * TH1A COS * X31A R3A * TH3A COS * - S1 / 'QX' STO QX "QX" ->V3 Y31A R3A * TH3A SIN * Y33A R1A * TH1A SIN * - S1 / 'PY' STO PY "PY" ->V3 Y33A R1A * TH1A COS * Y31A R3A * TH3A COS * - S1 / 'QY' STO QY "QY" ->V3 Z31A R3A * TH3A SIN * Z33A R1A * TH1A SIN * - S1 / 'PZ' STO PZ "PZ" ->V3 Z33A R1A * TH1A COS * Z31A R3A * TH3A COS * - S1 / 'QZ' STO QZ "QZ" ->V3 >> ===== E16 Find W O I from T1A, TT2, TT1  << "E16" CLEAR T1A TT2 + TT1 - 'T' STO EA 'E' STO QA 'Q' STO XS2 'XS' STO YS2 'YS' STO ZS2 'ZS' STO WA 'W' STO OA 'O' STO IA 'I' STO W "W" ->TAG O "O" ->TAG I "I" ->TAG >> ===== E17 Vary RO to improve Elements << "E17" CLEAR .001 'B' STO R01B 'R01A' STO R03B B + 'R03A' STO E20 'DCZ3' STO 'RAZ3' STO R01B B + 'R01A' STO R03B 'R03A' STO E20 'DCZ2' STO 'RAZ2' STO R01B 'R01A' STO R03B 'R03A' STO E20 'DCZ1' STO 'RAZ1' STO E "E" ->TAG T "T" ->TAG Q "Q" ->TAG I "I" ->TAG W "W" ->TAG O "O" ->TAG E18 3000 1 BEEP >> ==== E18 Error Report  << "E18" CLEAR RAZ2 RAZ1 - RAZ3 RAZ1 - DCZ2 DCZ1 - DCZ3 DCZ1 - { 2 2 } ->ARRY 'S1' STO RA2 RAZ1 - DC2 DCZ1 - { 2 1 } ->ARRY 'S2' STO S1 INV S2 * 'S3' STO S3 OBJ-> DROP 'Y' STO 'X' STO Y X R01B B X * + 'R01B' STO R01B R03B B Y * + 'R03B' STO R01B "R01B" ->TAG R03B "R03B" ->TAG X Y >> ===== E19 Find true RA DC RO,123 << "E19" CLEAR E10 E5A EQ1 EQ2 EQ3 'DC1' STO 'RA1' STO 'RO1' STO E5B EQ1 EQ2 EQ3 'DC2' STO 'RA2' STO 'RO2' STO E5C EQ1 EQ2 EQ3 'DC3' STO 'RA3' STO 'RO3' STO >> ==== E20 Find RO, RA, DC  << "E20" CLEAR E8 E13 E14 E7 E15 E12 E16 EQ1 EQ2 EQ3 >> === This solves the RO1-RO3 problem Needs Q E I W O IE E21 << E10 E19 E4 E6 E17 E17 E17 E17 E17 E17 -> >> == E23 Find R2A, RO2A from KO, LO, XYZS << "E23" CLEAR { '-R2A ^2+RS2^2+RC*(K0-L0/ R2A^3)+(K0-L0/R2A^3 )^2' } { R2A } { .5 } ROOT CLEAR R2A "R2A" ->TAG K0 L0 R2A 3 ^ / - 'R02A' STO R02A "R02A" ->TAG >> === E30 Find (Velocity) DXYZ3 From Element << "E30" E10 DEG Q 1 E + * 'P' STO E5B EQ1 EQ2 EQ3 CLEAR P \v/ K * R SQ / 'DTH' STO K E * TH SIN * P \v/ / 'DRT' STO DRT U COS * R U SIN * DTH * - 'DX1' STO DRT U SIN * R U COS * DTH * + 'DY' STO DY I COS * 'DY1' STO DY I SIN * 'DZ2' STO DX1 DY1 ->V2 CYLIN V-> O + ->V2 RECT V-> 'DY2' STO 'DX3' STO RECT DY2 DZ2 ->V2 CYLIN V-> IE + ->V2 RECT V-> 'DZ3' STO 'DY3' STO DX3 "DX3" ->TAG DY3 "DY3" ->TAG DZ3 "DZ3" ->TAG >> ==== E31 Find Elements from Position and Velocity << "E31" CLEAR DEG RECT DX3 DY3 DZ3 ->V3 ABS 'VEA' STO X3 Y3 Z3 ->V3 ABS 'R' STO 2 R / VEA K / SQ - INV 'A' STO X3 Y3 Z3 ->V3 'S1' STO DX3 DY3 DZ3 ->V3 'S2' STO S1 S2 DOT 'S3' STO S3 S1 ABS / S2 ABS / ACOS 'S4' STO VEA S4 CYLIN ->V2 RECT V-> R / 'DTHA' STO 'DRTA' STO DTHA R SQ * K / SQ 'PA' STO PA R / 1 - DRTA PA \v/ * K / RECT ->V2 CYLIN V-> 'THA' STO 'EA' STO PA 1 EA + / 'QA' STO R THA COS * A / EA + R THA SIN * A / 1 EA SQ - \v/ / RECT ->V2 RAD CYLIN V-> 'EEA' STO CLEAR EEA EEA SIN EA * - A 1.5 ^ * K / 'TA' STO DEG RECT CLEAR R THA COS * 'S1' STO R THA SIN * 'S2' STO DRTA THA COS * R THA SIN * DTHA * - 'S3' STO DRTA THA SIN * R THA COS * DTHA * + 'S4' STO S1 S2 S3 S4 { 2 2 } ->ARRY INV 'S5' STO S5 X3 DX3 { 2 1 } ->ARRY * OBJ-> DROP 'QX' STO 'PX' STO S5 Y3 DY3 { 2 1 } DROP 'QY' STO 'PY' STO S5 Z3 DZ3 { 2 1 } ->ARRY * OBJ-> DROP 'QZ' STO 'PZ' STO E12 EA "EA" ->TAG QA "QA" ->TAG TA "TA" ->TAG >>