python计算并画出轨迹
import numpy as np
import matplotlib.pyplot as plt
def calBomb(h,v0):
g=9.8
tmax=(2*h/g)**0.5
t=np.linspace(0,tmax,50)
xt=v0*t
yt=h-1/2*g*t**2
return xt,yt
H=[3000,2000]
V0=[200,260]
for h in H:
for vo in V0:
xt,yt=calBomb(h,vo)
plt.plot(xt,yt)
plt.grid('on')
plt.axis([0,8000,0,4000])
plt.show()
import numpy as np
import matplotlib.pyplot as plt
def calBomb(h,v0):
g=9.8
tmax=(2*h/g)**0.5
t=np.linspace(0,tmax,50)
xt=v0*t
yt=h-1/2*g*t**2
return xt,yt
H=[3000,2000,1000]
V0=[200,260,230]
for h in H:
for vo in V0:
xt,yt=calBomb(h,vo)
plt.plot(xt,yt)
plt.grid('on')
plt.axis([0,8000,0,4000])
plt.show()
完整练习题:
# 导入必要的库
import numpy as np # 用于数值计算
import matplotlib.pyplot as plt # 用于绘图
# 定义计算炸弹轨迹的函数
# 参数:h - 初始高度,v0 - 初始水平速度
def calBomb(h, v0):
g = 9.8 # 重力加速度
tmax = (2 * h / g) ** 0.5 # 计算炸弹落地时间
t = np.linspace(0, tmax, 50) # 生成时间序列
xt = v0 * t # 计算水平位移
yt = h - 1 / 2 * g * t ** 2 # 计算垂直位移
return xt, yt # 返回水平和垂直位移
# 定义初始高度和速度的列表
H = [3000, 2000, 1000] # 初始高度
V0 = [200, 260, 230] # 初始水平速度
# 遍历所有高度和速度组合,计算并绘制轨迹
for h in H:
for vo in V0:
xt, yt = calBomb(h, vo) # 计算轨迹
plt.plot(xt, yt) # 绘制轨迹
# 设置图形属性
plt.grid('on') # 显示网格
plt.axis([0, 8000, 0, 4000]) # 设置坐标轴范围
plt.show() # 显示图形

浙公网安备 33010602011771号