admin管理员组文章数量:1291676
massetest = np.array([12,15])
xtest = np.array([34,30])
ytest = np.array([1,0])
ztest = np.array([7,1])
rtest = np.array([xtest,ytest,ztest])
rtest = rtest.T
def integrateur(r,v,a,step):
v = v + a * step/2
r = r + v *step
a = acceleration(massetest,rtest,1)
v = v + a * (step/2)
v = v+ a * (step/2)
return r, v, a
v_r = np.ones((2,3))
acc = np.ones((2,3))
def acceleration(masse,r,G):
x = r[:,0:1]
y = r[:,1:2]
z = r[:,2:3]
dpos_x = x.T - x
dpos_y = y.T - y
dpos_z = z.T - z
nc = ( dpos_x**2 + dpos_y**2 + dpos_z**2)**(1.5)
ax = G*(dpos_x * masse)/nc
ay = G*(dpos_y * masse)/nc
az = G*(dpos_z * masse)/nc
a = np.array([ax,ay,az])
return a
a's shape is (3,2,2)
v's shape is (2,3)
I realize that I can't add them because of their shape but I can't seem to find a work around.
This is the error I get:
ValueError: operands could not be broadcast together with shapes (2,3) (3,2,2)
I tried to add only certain parts of a
with v
but I can't really access the ones I need and well I don't really end up with the values that are needed and that creates errors of their own :( kinda lost ngl.
I am trying to compute an n-body simulation but I am currently trialing with only 2 particules using the leap-frog integration method which is supposed to conserve the system's total energy.
本文标签: pythonIs there a way to specify which element of arrays I want to add via indexationStack Overflow
版权声明:本文标题:python - Is there a way to specify which element of arrays I want to add via indexation? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741536787a2384072.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论