En sn is voor complexe argumenten zelfs dubbelperiodiek.We may calculate the constant σ in the above formula by imposing some initial
conditions.
Code: Selecteer alles
calculate (r_0 - r_1 + sqrt((r_0 - r_1)*(r_0 + 3*r_1)))/(2*r_1*r_0) for r_0 = 7*10^8 and r_1= 2.95*10^3
Code: Selecteer alles
1/(7*10^8)
Code: Selecteer alles
calculate (r_0 - r_1 - sqrt((r_0 - r_1)*(r_0 + 3*r_1)))/(2*r_1*r_0) for r_0 = 7*10^8 and r_1= 2.95*10^3
Code: Selecteer alles
sqrt(( r_1*(e_1 - e_3) )/(4)) for r_1 = 2.95*10^3 & e_1 = 0.000338983 & e_3 = -1.42857*10^(-9)
Code: Selecteer alles
sqrt(( e_2 - e_3)/(e_1 - e_3)) for e_1 = 0.000338983 & e_2 = 1/(7*10^8) & e_3 = -1.42857*10^(-9)
Code: Selecteer alles
import numpy as np
import matplotlib.pyplot as plt
import scipy.special as sps
fig, ax1= plt.subplots(figsize=(15, 15))
M=1.989*10**30
G=6.67408*10**(-11)
Ro=7*10**8
Sigma=0
c=300000000
phi=np.linspace(0,20*np.pi, 100000)
esqrt=np.sqrt((Ro-2*M*G/c**2)*(Ro+6*M*G/c**2))
e1=(Ro-2*M*G/c**2+esqrt)/(4*M*G*Ro/c**2)
print('e1: ' + str(e1))
e2=1/Ro
print('e2: ' + str(e2))
e3=(Ro-2*M*G/c**2-esqrt)/(4*M*G*Ro/c**2)
print('e2: ' + str(e3))
Tau=np.sqrt(M*G/(c**2*2))
print('Tau: ' + str(Tau))
h=np.sqrt((e2-e3)/(e1-e3))
print('h: ' + str(h))
val=Tau*phi+Sigma
sn,_,_,_=sps.ellipj(val,h)
r=1/(e3+(e2-e3)*sn**2)
x=r*np.cos(phi)
y=r*np.sin(phi)
ax1.plot(x,y)
Code: Selecteer alles
e1: 0.0003389895594409787
e2: 1.4285714285714286e-09
e2: -1.4285654083149677e-09
Tau: 27.156690520017346
h: 0.0029031631580164635
Code: Selecteer alles
M=1.989*10**30
G=6.67408*10**(-11)
Ro=7*10**8
Sigma=0
c=300000000