@MitoY
2016-04-06T02:48:48.000000Z
字数 990
阅读 790
作者:敬雷
2.9题
代码在这里。
空气阻力的计算式为
其中各参数为 ,,,。
程序的伪代码为:
def update(dt):x += v_x * dty += v_y * dtv_x += F_drag_x / m * dtv_y += (F_drag_y / m + gravity) * dtdt = 0.1 #sfor i in range(1000):update(dt)
对初始条件分别为『初速度 ,出射角 ,有密度修正』和『初速度 ,出射角 ,没有密度修正』的两种加农炮做计算,得到了和图 2.5 相似的图像:

现在以『有密度修正』作为实际情况,初速度定为 ,不断改变角度,实验得到射程最大的角度约为 ,此时射程为 。
2.10题强化版(引入风阻)————“辅助精确打击系统”
代码在这里。
设目标水平距离为 。
程序原理是以各种角度和初速度向目标发射炮弹,水平距离到达 时终止,记录此时炮弹的海拔高度。多次试验后将初速度与海拔高度的绘图如下:

可以看出,右下分界线就是最小出射速度与目标海拔高度的变化曲线。
作业L3 发展“超级辅助精确打击系统”(考虑炮弹初始发射的时候发射角度误差1%,速度有5%的误差,风阻误差10%,可以考虑引入Coriolis force等,以炮弹落点与打击目标距离差平方均值最小为优胜)
思路是,给定打击目标,给定发射角度,速度,风阻的误差概率分布,选定一组发射角度和速度,以该误差概率随机生成实际角度,实际速度,和风阻发射炮弹,得到炮弹落点的频率分布,由此计算落点与目标距离差的平方均值 。
这样就得到了 与 的关系: