Home

Orbital Precession in an Inverse Square ElectricForce Field

Abstract. Demonstrates the effect of a negatively charged particle’s speed-dependent mass on its path when it orbits under the influence of a fixed, positively charged particle’s electrostatic field.

The radiation reaction force that theoretically acts on the negative charge is presumably counteracted at all points. Thus the radiation reaction force has no effect on the negative particle’s motion; the net force acting on the negative charge is solely that experienced in the central, positive charge’s electrostatic field.

The orbital plotting software is patterned after logic suggested in The Feynman Lectures on Physics, V1, Sect. 9-7 (Planetary Motions). The added feature herein is that the dependence of the orbiting particle’s inertial mass on its speed is factored in. The electric force on the orbiting particle is assumed to be speed-independent.  Multiple swings around the central body are computed and plotted in order to demonstrate the open path when the maximum speed is relativistic.

Fig. 1 depicts the computed path when the maximum speed is .95c. The Python program that computes the satellite's path is provided in Appendix 1.

Figure 1 Path When Maximum Speed is .95c

It is noteworthy that the particle's path is not a closed ellipse. This would be the case if the gravitational mass had the same speed dependence as the inertial mass.

Appendix 1

import math
f=open('c:/Python33/Website/PLOTVALS.dat','w')
f.close()
f=open('c:/Python33/Website/PLOTVALS.dat','a')
Maxorbs=10
N=3200000
Cspeed =299792458.
Eps0=8.85418783e-12
Q=1000.
Q0=-10000.
R0=1
R=R0
M0=1.
V=.95*Cspeed
Gamma=1/math.sqrt(1-V**2/Cspeed**2)
Tau=2*math.pi*R/V
Dt=Tau/N
V0=V
Disx=[]
Disy=[]
Orb=R0
Orbx=-Orb
Orby=0.
Vel0=V0
Vel0x=0.
Vel0y=-V0
Gamma=1/math.sqrt(1-Vel0**2/Cspeed**2)
Forcelec=-Q*Q0/(4*math.pi*Eps0*R0**2)
Forcelecx=Forcelec
Forcelecy=0.
Forcx=Forcelecx
Forcy=0.
Forc=Forcx
Accelerate=Forc/(Gamma*M0)
Acceleratex=Accelerate
Acceleratey=0.
Velx=Vel0x+Acceleratex*Dt/2
Vely=Vel0y+Acceleratey*Dt/2
Vel=math.sqrt(Velx**2+Vely**2)
Orbs=0
Index=0

f.write(str(Orbs*320+Index/1e4))
f.write(',')
f.write(str(Orbx))
f.write(',')
f.write(str(Orby))
f.write('\n')
for Orbs in range(Maxorbs):
print('Orbs=',Orbs)
Disx.clear()
Disy.clear()
for Index in range(N):
Orbx=Orbx+Velx*Dt
Orby=Orby+Vely*Dt
Orb=math.sqrt(Orbx**2+Orby**2)
Disx.append(Orbx)
Disy.append(Orby)
Forcelec=-Q*Q0/(4*math.pi*Eps0*Orb**2)
Forcelecx=Forcelec*(-Orbx/Orb)
Forcelecy=Forcelec*(-Orby/Orb)
Forcx=Forcelecx
Forcy=Forcelecy
Forc=Forcelec
Vel0x=Vel0x+Acceleratex*Dt
Vel0y=Vel0y+Acceleratey*Dt
Vel0=math.sqrt(Vel0x**2+Vel0y**2)
Gamma=1/math.sqrt(1-Vel0**2/Cspeed**2)
Acceleratex=Forcx/(Gamma*M0)
Acceleratey=Forcy/(Gamma*M0)
Accelerate=math.sqrt(Acceleratex**2+Acceleratey**2)
Velx=Velx+Acceleratex*Dt
Vely=Vely+Acceleratey*Dt
Vel=math.sqrt(Velx**2+Vely**2)
for Index1 in range(N):
if(Index1 % 1e4 == 0):
f.write(str(Orbs*320+Index1/1e4))
f.write(',')
f.write(str(Disx[Index1]))
f.write(',')
f.write(str(Disy[Index1]))
f.write('\n')
print('FILE WRITTEN. END OF PROGRAM.')
f.close()