Я хотел бы построить функцию e и nu, где e - эксцентриситет, а nu - истинная аномалия. Я только смотрю на эллиптические орбиты, поэтому 0<e<1
. Однако, когда я пытаюсь построить их друг против друга, у меня ошибка формы.построение нескольких графиков, но с диапазонами смещения python
ValueError: operands could not be broadcast together with shapes (10) (5000)
Я знаю, это потому, что я хочу только 10 пробелов для эксцентриситета, но есть ли способ обойти это?
import numpy as np
e = np.arange(0, 1, 0.1)
vvals = [[] for i in range(len(e))]
nu = np.linspace(0, 2 * np.pi, 5000)
for i in e:
for j in nu:
i = float(i)
j = float(j)
v = np.sqrt(e ** 2 + 2 * e * np.cos(nu) + 1)
i = int(i)
vvals[i].append(v)
for i in e:
pylab.plot(nu, vvals[i])
pylab.show()
Ваши циклы 'for' действительно ужасны, до такой степени, что я не совсем уверен, что вы пытаетесь сделать здесь. – tacaswell
во всяком случае ошибка исходит из строки 'v = np.sqrt (e ** 2 + 2 * e * np.cos (nu) + 1)' и не имеет ничего общего с 'matplotlib' и' numpy' в правильном ведении. – tacaswell
@tcaswell Я хочу сделать сюжет для e = .1, .2, ... 1 и наложить их друг на друга. – dustin