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() # 显示图形