Я работаю над проблемой с движением снаряда в вычислительной физике, и я хочу выполнить различные математические операции над координатами x и y в моем массиве.Код, с которым я борюсь, индексирует внутри цикла for.
Я пробовал разные формы для индексации, но продолжаю получать ошибки типа "не удалось передать входной массив из shape (2,2) в shape (2)"и «установка элемента массива с помощью последовательности».
g = 9.81
theta = 30
dt = 0.1
t = 5
n = int(t/dt)
t = zeros(n)
r = zeros((n, 2), float)
v = zeros((n, 2), float)
a = zeros((n, 2), float)
r[0] = array([0,0])
v[0] = array([10*cos(theta), 10*sin(theta)])
t[0] = 0
for i in range(n-1):
v[i+1] = v[0] - g*dt
r[i+1] = r[i] + v[i]*dt
t[i+1] = t[i] + dt
Вставленный код показывает два столбца (v [x, y] и r [x, y]) с разными значениями, где только координата yправильно.Это потому, что координата х должна быть постоянной.Я не понимаю, как сделать координату х постоянной, и делаю только операцию с координатой у.Я хочу, чтобы результат был рассчитан как:
v[i+1] = v[0] # x-coordinate
v[i+1] = v[0] - g*dt # y-coordinate