我正在研究计算物理学中的弹丸运动问题,我想对数组中的 x 和 y 坐标执行不同的数学运算。我正在努力解决的代码是在 for 循环中进行索引。
我尝试了不同的索引形式,但不断收到错误,例如“无法将输入数组从形状 (2,2) 广播到形状 (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 坐标是正确的。这是因为 x 坐标应该是恒定的。我不明白如何使x坐标恒定,只对y坐标进行操作。我希望结果计算为:
v[i+1] = v[0] # x-coordinate
v[i+1] = v[0] - g*dt # y-coordinate
哈士奇WWW
相关分类