A Space & astronomy forum. SpaceBanter.com

Go Back   Home » SpaceBanter.com forum » Astronomy and Astrophysics » Astronomy Misc
Site Map Home Authors List Search Today's Posts Mark Forums Read Web Partners

Perihelion advance of the moon



 
 
Thread Tools Display Modes
  #1  
Old April 21st 21, 05:24 AM posted to sci.astro
[email protected]
external usenet poster
 
Posts: 4
Default Perihelion advance of the moon

My proposal that perihelion advance rates are proportional to m/M*180,
gforce(m)/gforce(M)*180, orbitrad(M)/orbitrad(m)*180 (relative to the
barycenter), etc. is reinforced by the attached Qbasic program.

The program is designed to demonstrate the perihelion advance rate of
the moon in orbit around the earth.

According to m/M*180 the moon will advance by 2.217 degrees per orbit
cycle. Since the observed advance is a little more than 3 degrees per
cycle, the sun's influence on the earth/moon system must account for
roughly .8 degrees per cycle. And that's exactly what it does.

Setting the moon average orbit radius at 4e8 meters, with an orbit
speed of 900 m/sec at aphelion, gives an orbit eccentricity of .12
and an advance rate of .794 degrees per cycle.

For obvious reasons the advance is orbit eccentricity dependent to
some degree. It doesn't alter the outcome much though. i.e. For an
eccentricity of .2 the advance rate is .82 degrees per cycle.

With an aphelion speed of 300m/sec, eccentricity is greater than .9
and the advance rate is 2.2 degrees per cycle.

image here ---------

---------

The program will run in Qbasic if inkey is replaced with INKEY$, time
is changed to TIME$ and chr(??) is replaced with CHR$(??).
No $ exists in FreeBasic.

Compiling to an .exe file with FreeBasic
(1)Copy the program off the screen.
(2)Paste it into Notepad.
(3)Save it with a .bas extension. e.g. peri.bas stored in the c: directory.
(4)Download and instal FreeBasic.
(5)Drag open-console.exe to desktop from c:\Program Files\FreeBasic
and create shortcut.
(6)Double click the icon.
(7)At the prompt type fbc c:\peri.bas
(8)Your .exe file will be stored in the c: directory.

'---Program start---
DIM c AS DOUBLE: DIM G AS DOUBLE: DIM AU AS DOUBLE
DIM xE AS DOUBLE: DIM yE AS DOUBLE: DIM vxE AS DOUBLE
DIM vyE AS DOUBLE: DIM ME AS DOUBLE: DIM mu3 AS DOUBLE
DIM xM AS DOUBLE: DIM yM AS DOUBLE: DIM vxM AS DOUBLE
DIM vyM AS DOUBLE: DIM MM AS DOUBLE: DIM lastrad AS DOUBLE
DIM mu1 AS DOUBLE: DIM dt AS SINGLE: DIM radius AS DOUBLE
DIM f2 AS SINGLE: DIM p AS SINGLE: DIM accME AS DOUBLE
DIM accEM AS DOUBLE: DIM distMS AS DOUBLE: DIM accMS AS DOUBLE
DIM distES AS DOUBLE: DIM accES AS DOUBLE: DIM axME AS DOUBLE
DIM ayME AS DOUBLE: DIM axMS AS DOUBLE: DIM ayMS AS DOUBLE
DIM axM AS DOUBLE: DIM ayM AS DOUBLE: DIM ayE AS DOUBLE
DIM colr AS SINGLE: DIM xS AS DOUBLE: DIM yS AS DOUBLE
DIM MS AS DOUBLE: DIM axE AS DOUBLE: DIM ayEM AS DOUBLE
DIM axEM AS DOUBLE: DIM axES AS DOUBLE: DIM vxS AS DOUBLE
DIM vyS AS DOUBLE: DIM accSM AS DOUBLE: DIM axSM AS DOUBLE
DIM aySM AS DOUBLE: DIM ayES AS DOUBLE: DIM axSE AS DOUBLE
DIM aySE AS DOUBLE: DIM accSE AS DOUBLE: DIM axS AS DOUBLE
DIM ayS AS DOUBLE: DIM perirad AS DOUBLE: DIM aphrad AS DOUBLE
DIM inc AS SINGLE: DIM ecc AS SINGLE: DIM ss AS STRING
DIM rnew AS DOUBLE: DIM xE2 AS DOUBLE: DIM xS2 AS DOUBLE
DIM yE2 AS DOUBLE: DIM yS2 AS DOUBLE: DIM su AS STRING
DIM x AS SINGLE: DIM a AS DOUBLE: DIM st AS STRING
DIM ti AS DOUBLE: DIM f1 AS SINGLE: DIM axMM AS DOUBLE
DIM ayMM AS DOUBLE: DIM accMM AS DOUBLE: DIM sd AS DOUBLE
DIM Mearth AS DOUBLE: DIM Mmoon AS DOUBLE: DIM Msun AS DOUBLE
DIM dts AS SINGLE

SCREEN 12

PRINT " _Determining the program run speed_"
xa:
ss = time
IF ss st THEN
x = x + 1
st = ss
END IF
IF x = 6 THEN mu3 = a: GOTO xb
IF x 1 THEN a = a + 1
CIRCLE (10 + a / 6000, 20), 1
GOTO xa
xb:

dt = INT(20000000 / mu3)

CLS
G = .0000000000667#
AU = 150000000000#

xE = AU
yE = 0
vxE = 0
vyE = 29780
Mearth = 5.97D+24 ' earth mass

GOTO an
am:

LOCATE 26, 1
rnew = 4E+08
PRINT " Average orbit radius for the moon is 4e8 meters."
PRINT " Press any key to continue, or 'c' to change radius."
DO: ss = inkey: LOOP UNTIL ss ""
CLS

IF ss = "c" THEN
LOCATE 25, 1
INPUT " Enter new orbit radius (e.g. 8e8 with v = 500)"; rnew
END IF

LOCATE 26, 1
IF rnew = 0 THEN END
PRINT " Orbital speed for a concentric orbit is"; 4E+08 / rnew * 1000
INPUT " Moon's orbital speed at aphelion (= concentric)"; vyM
IF vyM = 0 THEN END

aphrad = rnew * 1000 / vyM

xM = aphrad + AU
yM = 0
vxM = 0
vyM = vyE - vyM ' Aphelion start
Mmoon = 7.342D+22 ' moon mass

xS = 0
yS = 0
vxS = 0
vyS = 0
Msun = 1.99D+30 ' sun mass

PRINT " ____Escape exits____"

CIRCLE (230, 240), 6, 11 'Earth
colr = 1
lastrad = 1D+26
LOCATE 2, 1: PRINT " Press z to halve the graphics scale."
mu1 = .0000003 'graphics multiplier

aa:
radius = SQR((xM - xE) ^ 2 + (yM - yE) ^ 2)
'radius from moon to earth
IF radius 2E+11 THEN END
'---

'ME = moon to earth
accME = -G * Mearth / radius ^ 2
axME = accME * ((xM - xE) / radius)
ayME = accME * ((yM - yE) / radius)
'---

'EM = earth to moon
accEM = -G * Mmoon / radius ^ 2
axEM = accMM * ((xE - xM) / radius)
ayEM = accMM * ((yE - yM) / radius)
'---

distMS = SQR((xM - xS) ^ 2 + (yM - yS) ^ 2)

'MS = moon to sun
accMS = -G * Msun / distMS ^ 2
axMS = accMS * ((xM - xS) / distMS)
ayMS = accMS * ((yM - yS) / distMS)
'---

'SM = sun to moon
accSM = -G * Mmoon / distMS ^ 2
axSM = accSM * ((xS - xM) / distMS)
aySM = accSM * ((yS - yM) / distMS)
'---

distES = SQR((xE - xS) ^ 2 + (yE - yS) ^ 2)

'ES = earth to sun
accES = -G * Msun / distES ^ 2
axES = accES * (xE - xS) / distES
ayES = accES * (yE - yS) / distES
'---

'SE = sun to earth
accSE = -G * Mearth / distES ^ 2
axSE = accSE * (xS - xE) / distES
aySE = accSE * (yS - yE) / distES
'---

'M = moon
axM = axME + axMS
ayM = ayME + ayMS
vxM = vxM + dt * axM
vyM = vyM + dt * ayM
xM = xM + dt * vxM
yM = yM + dt * vyM
'---

'E = earth
axE = axES + axEM
ayE = ayES + ayEM
vxE = vxE + dt * axE
vyE = vyE + dt * ayE
xE = xE + dt * vxE
yE = yE + dt * vyE
'---

'S = sun
axS = axSE + axSM
ayS = aySE + aySM
vxS = vxS + dt * axS
vyS = vyS + dt * ayS
xS = xS + dt * vxS
yS = yS + dt * vyS
'---

inc = inc + 1
dts = mu1 / 1.6E-09

IF f2 = 0 AND radius lastrad THEN
f2 = 1: colr = colr + 1
LOCATE 1, 1
PRINT " Press 'f' for faster, 's' for slower "
PRINT " Distance to sun is"; dts; " times greater than is shown "
LOCATE 7, 35: PRINT "Press z to reduce the graph scale"

LOCATE 4, 1: PRINT radius; " aphelion radius "
LOCATE 8, 2: PRINT p; " cycles "
p = p + 1
IF ss = "f" THEN dt = INT(dt * 2)
IF ss = "s" THEN dt = INT(dt * 10) / 20
LOCATE 28, 23: PRINT " Program step size is"; dt; " seconds "
END IF

IF colr = 16 THEN colr = 1
IF f2 = 1 AND radius = lastrad THEN
inc = 0
perirad = radius

LOCATE 5, 1:
PRINT perirad; " perihelion radius "

ecc = ((aphrad + perirad) / 2 - perirad) / ((aphrad + perirad) / 2)
PRINT ecc; " orbit eccentricity "

f2 = 3
CIRCLE (230 + (xM - xE) * mu1, 240 - (yM - yE) * mu1), 6, 15
END IF

IF f2 = 3 AND radius = lastrad THEN f2 = 0: LOCATE 17, 25
CIRCLE (230 + (xM - xE) * mu1, 240 - (yM - yE) * mu1), 1, colr

CIRCLE (230 + (xE2 - xS2) * 1.6E-09, 240 + (yE2 - yS2) * 1.6E-09), 10, 0
CIRCLE (230 + (xE - xS) * 1.6E-09, 240 + (yE - yS) * 1.6E-09), 10, 14
xE2 = xE: xS2 = xS: yE2 = yE: yS2 = yS

lastrad = radius

ss = inkey
IF ss = chr(27) THEN GOTO ab
IF ss = "z" THEN mu1 = mu1 / 2: LOCATE 2, 21: PRINT " "
IF dts 1 THEN mu1 = 1.6E-09 ' 1 to 1 graphics scale
IF ss = "f" THEN dt = INT(dt * 2)
IF ss = "s" THEN dt = INT(dt * 10) / 20
GOTO aa

ab:

DO: LOOP UNTIL inkey ""
END

an:
READ ss
IF ss = "cls" THEN CLS : GOTO an
IF ss = "" THEN GOTO ao
IF ss = " " THEN sd = 0: READ ss: DO: LOOP UNTIL inkey "": GOTO an
LOCATE sd + 4, 4: PRINT ss
sd = sd + 1
GOTO an
ao:
GOTO am

DATA "This program is designed to demonstrate the perihelion advance rate "
DATA "of the moon in orbit around the earth. The sun is of course "
DATA "involved. The non rotating frame of the earth is the point of focus."
DATA " "
DATA "The extension of Euler's method used here is obviously common place "
data "in the field of astrophysics, but it's still a most incredible "
DATA "example of mathematical wizardry. The fact that I get the result I "
DATA "require is testament to its precision. "
DATA " "
DATA "Setting the moon average orbit radius at 4e8 meters, with an orbit "
DATA "speed of 900 m/sec at aphelion, gives an orbit eccentricity of .12 "
DATA "and an advance rate of .794 degrees per cycle. The advance "
DATA "attributable to m/M*180 is 2.217 degrees per cycle, so the total "
DATA "advance is 3.011 degrees. Which is as observed. "
DATA " "
DATA "For obvious reasons the advance is orbit eccentricity dependent to "
DATA "some degree. It doesn't alter the outcome much though. i.e. For an "
DATA "eccentricity of .2 the advance rate is then .82 degrees per cycle. "
DATA " "
DATA "Variations in the perihelion position from one cycle to the next "
DATA "becomes extreme for low eccentricities because a perihelion is "
DATA "identified whenever the orbit trajectory shifts from pointing inward"
DATA "to pointing outward, and that can happen anywhere because the sun is"
DATA "involved. Nothing can be gleaned from this. "
DATA " "
DATA " "
DATA "cls"
DATA ""
'---Program end---

Linux users:
(1) Create a new folder somewhere.
(2) Download FreeBasic (linux version) from SourceForge.
(3) Copy the downloaded file and paste it into the new folder.
(4) Right mouse click the file and choose 'extract here'.
(5) Double click the extracted folder.
(6) Then double click the 'FreeBasic' folder.
(7) Double click the 'bin' folder.
(8) Right mouse click the 'fbc' file.
(9) Choose 'properties', then 'permissions'.
'Allow executing file as program' should be ticked. Otherwise it won't work.
'Open with' should be set to 'autorun prompt'.

You may be required to download some support files that may not have
been included in your version of Linux.

Copy the program off this screen and paste it into a text editor.
Save it in the 'examples' folder with a .bas extension.
Right mouse click on the examples folder and select 'Open in terminal'.
At the prompt, type, sudo fbc filename.bas . Filenames are case sensitive
in Linux. You will need to enter your computer access password.

Double click the newly created file, which will appear in the examples
folder.

Once this has been set up, the process of generating executable files
from Qbasic programs from any source is very simple.

-----

Max Keon

  #2  
Old April 21st 21, 07:54 AM posted to sci.astro
[email protected]
external usenet poster
 
Posts: 4
Default Perihelion advance of the moon

On Wednesday, 21 April 2021 at 14:24:37 UTC+10, wrote:
My proposal that perihelion advance rates are proportional to m/M*180,
gforce(m)/gforce(M)*180, orbitrad(M)/orbitrad(m)*180 (relative to the
barycenter), etc. is reinforced by the attached Qbasic program.

The program is designed to demonstrate the perihelion advance rate of
the moon in orbit around the earth.


Variable width fonts and the removal of normally inconsequential spaces
has caused a few problems in my program. The simple fix is, in all but
the second last set of " ", place a dot between them where they appear
in the data section ". "
e.g.
DATA "involved. Nothing can be gleaned from this. "
DATA " "
DATA ". "
DATA "cls"

My apologies. I should have remembered.

  #3  
Old April 21st 21, 10:00 AM posted to sci.astro
[email protected]
external usenet poster
 
Posts: 4
Default Perihelion advance of the moon

On Wednesday, 21 April 2021 at 14:24:37 UTC+10, wrote:
My proposal that perihelion advance rates are proportional to m/M*180,
gforce(m)/gforce(M)*180, orbitrad(M)/orbitrad(m)*180 (relative to the
barycenter), etc. is reinforced by the attached Qbasic program.

The program is designed to demonstrate the perihelion advance rate of
the moon in orbit around the earth.

---
---
With an aphelion speed of 300m/sec, eccentricity is greater than .9
and the advance rate is 2.2 degrees per cycle.


A little belated, but here's the image.
image here---------
https://drive.google.com/file/d/1OvX...ew?usp=sharing
---------

 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
2 Body Orbits and the Perihelion Advance of Mercury. Max Keon[_2_] Astronomy Misc 0 September 2nd 20 01:51 AM
Lag and advance mechanism oriel36[_2_] Amateur Astronomy 0 October 30th 10 05:24 PM
Perihelion Advance of Mercury. [email protected] Astronomy Misc 25 November 18th 08 12:12 PM
The Advance of the Perihelion of Mercury Double-A[_2_] Misc 8 June 18th 08 04:00 PM
Advance on Troll "Killfiling" LaDonna Wyss History 4 June 28th 04 09:15 PM


All times are GMT +1. The time now is 12:21 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 SpaceBanter.com.
The comments are property of their posters.