Привет. Я хочу построить траекторию полета ракеты с помощью петли, используя метод Эйлера. Мой код (вы можете пропустить это, ошибка под ним):
mo = 1000
m = 900
q = 2.8
u = 3700
vo = 0
xo = 0.0001
g = 9.81
t = np.arange(0,int(1001))
x0 = 0.0001
v0 = 0
N = 1000
at = 1/1000
Теперь скорость и высота выведения:
def v(t):
return u*np.log(mo/(mo-q*t))-g*t
def az(t):
return xo + vo*t - 0.5*g*t**2 + u*t*np.log(mo) + (u/q)*((mo - q*t)*np.log(mo
- q*t) + q*t - mo*np.log(mo))
z = xo + vo*t - 0.5*g*t**2 + u*t*np.log(mo) + (u/q)*((mo - q*t)*np.log(mo
- q*t) + q*t - mo*np.log(mo))
А вот ускорение, из-за которого я превратился в список:
aj = -g + (q/(mo-q*t))*u
ajj = np.array(aj).tolist()
Итак, вот цикл, в котором я пытаюсь решить его аналитическим способом с помощью метода Эйлера:
t = np.zeros(N + 1)
t[0] = 0
z = np.zeros(N + 1)
z[0] = x0
v = np.zeros(N + 1)
v[0] = 0
for k in range(0,N):
v[k + 1] = v[k] +ajj*z[k]*at
z[k + 1] = z[k] + v[k + 1]*at
И это дает мне эту ошибку:
ValueError Traceback (most recent call last)
<ipython-input-193-d1513ed52aa0> in <module>()
11
12 for k in range(0,N):
---> 13 v[k + 1] = v[k] + ajj*z[k]*at
14 z[k + 1] = z[k] + v[k + 1]*at
15
ValueError: setting an array element with a sequence.
Я знаю, что это едва значит. Ошибка из-за списка ajj, но я не знаю, как это исправить, чтобы построить график z по времени. Спасибо за помощь. Извините за длинный вопрос, я только начинаю программировать.