我试图写一个Euler积分器来计算下落物体在空气阻力作用下的时间、速度、位置和加速度。我似乎无法构建一个工作循环来更新值并将它们正确地附加到数据数组中。对于初学者提出的问题,我深表歉意,但我们将不胜感激
m和g已经定义好了
import numpy as np
# create new arrays
Adat = [0] #acceleration
Vdat = [0] #velocity
Zdat = [0] #height
V0 = 0
Vdat[0] = V0 #set initial conditions
Z0 = 30000
Zdat[0] = Z0
T = 0
t_step = 0.9 #set time step in seconds
b = 0.5 #drag coefficient in kg/s
while Zdat[-1] >= 0:
A1 = (-m*g-b*np.abs(V0)*V0)/m
V1 = V0+A1*t_step
Z1 = Z0+V1*t_step
T = T + t_step
Adat.append(A1)
Vdat.append(V1)
Zdat.append(Z1)
V0 = V1
Z0 = Z1
欢迎来到堆栈溢出。 您确实可以使用列表来存储加速度、速度和位置:
在上面的代码示例中,我将速度的平方乘以任意系数,因为我不知道质量m要使用什么值
几句话:
希望这有帮助
相关问题 更多 >
编程相关推荐