"Ракета весом 5 кг падая с высоты около 1 км свободно наберёт скорость около 150 м/с, а значит столкнувшись передаст 56250 Дж." - ну только если падать в вакууме.
Очень просто, я делал физическую часть по своим знаниям, и не знал названые вами методы. Следуя вашему совету посмотрю теорию, попробую все и сравню точности всех методов(если не забуду конечно).
Я действительно обновляю параметры зарядов поочереди, но обновляю сам массив с данными только после обновления всей информации
def Update_all(q_prop):
vx=0
vy=0
x=0
y=0 q_prop_1=np.copy(q_prop)
for c in range(len(q_prop)):
xs=q_prop[c][0]
ys=q_prop[c][1]
m =q_prop[c][2]
vx=q_prop[c][3]
vy=q_prop[c][4]
gx, gy= g(q_prop, xs, ys, c)
x = gx*dt**2 + vx*dt + xs
y = gy*dt**2 + vy*dt + ys
vx+=gx*dt
vy+=gy*dt
Изначально я следовал 2 варианту, но после решил ускорить код через numba, и она придиралась к итерированию. По той же причине я перешел с list на np.array. Numba дала существенный прирост к скорости.
Надо было конечно заряды, разного цвета сделать. Так не сразу понятно, что они не меняются местами, а делают полный оборот и остаются в изначальном порядке
Идея не нова, именно поэтому статья называется, так как называется, пластик совсем не так слаб(abs прочный), насчет частей правда, но принтер маленький а изготавливать вручную не хотелось.
"Ракета весом 5 кг падая с высоты около 1 км свободно наберёт скорость около 150 м/с, а значит столкнувшись передаст 56250 Дж." - ну только если падать в вакууме.
def Update_all(q_prop):
vx=0
vy=0
x=0
y=0
q_prop_1=np.copy(q_prop)
for c in range(len(q_prop)):
xs=q_prop[c][0]
ys=q_prop[c][1]
m =q_prop[c][2]
vx=q_prop[c][3]
vy=q_prop[c][4]
gx, gy= g(q_prop, xs, ys, c)
x = gx*dt**2 + vx*dt + xs
y = gy*dt**2 + vy*dt + ys
vx+=gx*dt
vy+=gy*dt
q_prop_1[c]=[x,y,m,vx,vy, 0]
return q_prop_1