Как я могу подключить два графика в точке прекращения? У меня есть уравнение для точки разрыва.Python: Заполнение промежутка между двумя графиками
import numpy as np
import pylab
r1 = 1 # AU Earth
r2 = 1.524 # AU Mars
deltanu = 75 * np.pi/180 # angle in radians
mu = 38.86984154054163
c = np.sqrt(r1 ** 2 + r2 ** 2 - 2 * r1 * r2 * np.cos(deltanu))
s = (r1 + r2 + c)/2
am = s/2
def f(a):
alpha = 2 * np.arcsin(np.sqrt(s/(2 * a)))
beta = 2 * np.arcsin(np.sqrt((s - c)/(2 * a)))
return (np.sqrt(a **3/mu) * (alpha - beta - (np.sin(alpha)
- np.sin(beta))))
def g(a):
alphag = 2* np.pi - 2 * np.arcsin(np.sqrt(s/(2 * a)))
betag = -2 * np.arcsin(np.sqrt((s - c)/(2 * a)))
return (np.sqrt(a ** 3/mu)
* (alphag - betag - (np.sin(alphag) - np.sin(betag))))
a = np.linspace(am, 2, 500000)
fig = pylab.figure()
ax = fig.add_subplot(111)
ax.plot(a, f(a), color = '#000000')
ax.plot(a, g(a), color = '#000000')
pylab.xlim((0.9, 2))
pylab.ylim((0, 2))
pylab.show()
Уравнение, которое отражает точку является: dt = np.sqrt(s ** 3/8) * (np.pi - betam + np.sin(betam))
, где betam = 2 * np.arcsin(np.sqrt(1 - c/s))
так dt = 0.5
на a = s/2
. Однако разрыв между графиками выглядит больше, чем точка.
Я добавил: ax.plot([am, am], [.505, .55], color = '#000000')
, который заполняет промежуток, но он чувствует себя неуместно.
Вы уверены, что функция 'g' определена правильно? Я нахожу, что 'g (am) == 0.551860976346', что не совпадает с' f (am) == 0.5'. – esmit
@ подарок в зависимости от книги. Я неоднократно перепроверял все уравнения. – dustin
Вы сами лишили уравнения? Книга может быть неправильной. Каков физический смысл разрыва? – esmit