我已经写了'r'(Radius)值的一般轨道方程的代码,并试图绘制x=r*cos(theta)和{}的图形,但是我的代码给出了相同的“x”值来表示不同值的“r”,所以我用一条直线而不是椭圆来结束enter code here。在from numpy import *
import matplotlib.pyplot as plt
import pprint
L = 9.11*10**38 #L = angular momentum
m = 3.28*10**23 #m = mass of mercury
M = 1.99*10**30 #M = mass of sun
a = 5.8*10**7 #a = semi-major axis
G = 6.674*10**-11 #G = Gravitationl constant
k = G*M*m
E = -k/(2*a) #E = energy
p = L**2/(m*k)
c = 1 + (2*E*L**2)/m*k**2
e = sqrt(-c) #e = eccentricity
def fx(x):
r = p/(1 + e*cos(x))
return r
n = 1000
phi =linspace(0,2*pi,n)
radius = zeros([n])
theta = zeros([n])
x = zeros([n])
y = zeros([n])
for i in range(0,n):
radius[i] = fx(phi[i])
theta[i] = 180*phi[i]/pi
for i in range(0,n):
x[i] = radius[i]*cos(phi[i])
for i in range(0,n):
y[i] = radius[i]*sin(phi[i])
print('r =',radius)
print('x =',x)
print('y =',y)
plt.plot(x,y)
plt.show()
这是我的数学书截图: