实验题目:确定炮弹射击的安全区
一、实验目的
本实验涉及微积分和微分方程。通过实验复习曲线的参数方程及其求导、复合函数微分法、微分方程的建立及求解和某些二次曲面等知识;外通过一个实际问题介绍平面单参数曲线族包络线的概念及其应用。
二、实验背景
炮兵在进行射击演习时必须考虑建立安全区的问题。如果炮弹的发射速度为
v0200(m/s),发射角度不加限制。试通过分析弹道曲线来获得射击演习的安全
区。
图 1弹道曲线图 安全线本身并不是某一条弹道曲线,但是安全线上的每一点,必有某一条也只有一条弹道曲线在该点与它相切。抽象成数学概念,我们称安全线为弹道曲线 族的包络线。
三、实验任务
1.设0200(m/s),g9.8(m/s2),令炮弹发射角从15º变化到75º,以15º为间隔,画出各弹道曲线及其包络线的图形。
2.设射击演习时炮座左右旋转角度范围均为60º,试用数学软件或编程画出炮弹演习安全区域的边界曲面(由包络线旋转所得)。
四、实验过程
4.1问题一实验过程
由实验材料综合实验9中实验问题的推导过程可知弹道曲线方程为:
gx2sec2y(Tan)x
2V022v0g2安全线方程为: y x22g2V0当炮弹发射角从15º变化到75º变化时,要画出以15º为间隔的弹道曲线
m用以实现该功能。 及其包络线的图形,选择Matlab编出程序myFigure.数学实验——确定炮弹的安全区、水流量估计
myFigure.m代码: function myFigure g=9.8;v0=200; a=zeros(1,5); for i=1:5
a(i) =(15/180)*pi*i; end
x=linspace(0,5000,5000); z=v0^2/(2*g)-g*x.^2/(2*v0^2); for i=1:5
y=tan(a(i))*x-((g*x.^2)*sec(a(i))^2)/(2*v0^2); plot(x,y,'r',x,z,'--b') axis([0,4500,0,2500]); hold on end
title('各弹道曲线及包络线图'); gtext('15度弹道') gtext('30度弹道') gtext('45度弹道') gtext('60度弹道') gtext('75度弹道') gtext('包络线')
数学实验——确定炮弹的安全区、水流量估计
最终画出的各弹道曲线及其包络线如下图所示:
各弹道曲线及包络线图25002000包络线150075度弹道100060度弹道45度弹道50030度弹道15度弹道0050010001500200025003000350040004500图 2各弹道曲线及其包络线图
4.2问题二实验过程
2v0g2由安全线的方程:y旋转后得到的曲面即为安全区域,并且x22g2V0左右旋转角范围均是60º。由数学分析中有关旋转曲线的知识可知旋转后的旋转
曲面方程为:
2v0g22y(xz)。 22g2V0通过问题一,可以大概估计出安全线的横坐标的范围应该是在坐标的范围定
在3000-5000之间,下面用Matlab编写程序,并用极坐标作图法,程序代码放
m中。 在MySafetyZone.MySafetyZone.m代码: function MySafetyZone g=9.8; v=200;
%采用极坐标作图
[R,theta]=meshgrid(linspace(0,4200,500),linspace(-pi/3,pi/3,100)); x=R.*cos(theta); y=R.*sin(theta);
数学实验——确定炮弹的安全区、水流量估计
z=v.^2./(2*g)-(g./(2*v.^2))*(x.^2+y.*y); mesh(x,y,z)
axis([0 5000 -4500 4500 0 2500]) title('炮弹演戏安全区域'); xlabel('x轴'); ylabel('z轴'); zlabel('y轴');
运行程序画出炮弹演习安全区域的边界曲面图3,改图清晰直观,效果较好。
图 3炮演习安全区域图
五、实验小结
通过本实验,对与微积分的有关知识进行了复习并对微分方程解决实际问题有了更深刻的认知。此外也深入理解了包络线的概念和应用,尤其是将Matlab编程做图与包络线结合起来,能取得直观的效果,更能有效地处理实际问题。本实验任务中,两道问题都需要作图,在此均选择Matlab编程实现,从最终结果看均达到了良好的效果。
因篇幅问题不能全部显示,请点此查看更多更全内容