Отдельные операции над координатами в 2D массивах - PullRequest
0 голосов
/ 22 сентября 2019

Я работаю над проблемой с движением снаряда в вычислительной физике, и я хочу выполнить различные математические операции над координатами 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

1 Ответ

0 голосов
/ 22 сентября 2019

вам нужно только проиндексировать y часть, как это

v[i+1, 1] = v[i,1] - g*dt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...