[关闭]
@MitoY 2016-04-06T02:48:48.000000Z 字数 990 阅读 790

第六次作业

作者:敬雷

L1

2.9题


代码在这里

空气阻力的计算式为

其中各参数为

程序的伪代码为:

  1. def update(dt):
  2. x += v_x * dt
  3. y += v_y * dt
  4. v_x += F_drag_x / m * dt
  5. v_y += (F_drag_y / m + gravity) * dt
  6. dt = 0.1 #s
  7. for i in range(1000):
  8. update(dt)

对初始条件分别为『初速度 ,出射角 ,有密度修正』和『初速度 ,出射角 ,没有密度修正』的两种加农炮做计算,得到了和图 2.5 相似的图像:
Cannon shell trajectory

现在以『有密度修正』作为实际情况,初速度定为 ,不断改变角度,实验得到射程最大的角度约为 ,此时射程为

L2

2.10题强化版(引入风阻)————“辅助精确打击系统”


代码在这里

设目标水平距离为
程序原理是以各种角度和初速度向目标发射炮弹,水平距离到达 时终止,记录此时炮弹的海拔高度。多次试验后将初速度与海拔高度的绘图如下:
minimum speed

可以看出,右下分界线就是最小出射速度与目标海拔高度的变化曲线。

L3

作业L3 发展“超级辅助精确打击系统”(考虑炮弹初始发射的时候发射角度误差1%,速度有5%的误差,风阻误差10%,可以考虑引入Coriolis force等,以炮弹落点与打击目标距离差平方均值最小为优胜)


思路是,给定打击目标,给定发射角度,速度,风阻的误差概率分布,选定一组发射角度和速度,以该误差概率随机生成实际角度,实际速度,和风阻发射炮弹,得到炮弹落点的频率分布,由此计算落点与目标距离差的平方均值
这样就得到了 的关系:


然后就很简单了,用 计算 最小时的 值就好www。
因为误差概率分布并没有给出,这个程序就暂时不做啦wwwwww。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注