一弹性小球,初始高度h=10m,向上初速度v0=15米每秒,与地面碰撞的速度衰减系数k=0.8,试计算任意时刻球的位置和速度。
dyd2y?v (32)高度与时间的关系:2??g, dtdt速度与时间关系:dv??g (33) dt对等式两边积分,有dv??gdt,(34) v?v0?gt
??y?yv10?0t?2gt2 由此可得数学方程: 第一次落地前:v?v01?gt y?h?vgt201t?2 T1?3.62s 第二次落地前:
v02??k(v01?gT1) v?v02?gt y?vgt202t?2 ( Tv2?202g (第三次落地前:
v03??k(v02?gT2) v?v03?gt y?vgt203t?2 T3?2v03g . . . . . .
第n次落地前:
v0n??k(v0(n?1)?gT(n?1)) v?v0n?gt y?vgt20m?2 (35) (36)
(37)
(38) 39) 40)
41)
42)
43) 44)
45)
46)
47)
48)
49)
(
(((((((( Tn?2v0n (50) g如用手工进行计算,计算量极大,利用MATLAB编程如下:
v0=15; %初速度 h=10; %初始高度 g=-9.8; %重力加速度 k=0.8; %衰减系数 T=0; %落地时间
for t=0:0.05:20 % 产生时间的行向量 v=v0+g*(t-T); %求速度 y=h+v0*(t-T)+g*(t-T)^2/2; %求高度 if y<=0 %循环判断条件 v0=-k*v; %衰减的速度 T=t; %求球每次落地所用时间 h=0; %将高度变零 end %选择结构结束
subplot(1,2,1); %选择1*2中的一号区
pause(0.1); %延缓
plot(1,y,'or','MarkerSize',10,'Markerface',[1,0,0]); %输出求球的运动图像 title('运动变化图'); %图形名称 axis([0,2,0,25]); %坐标控制
subplot(2,2,2); %选择2*2中的二号区 axis([0,20,-25,30]); %坐标控制 grid on; %不画网格线
plot(t,v,'*r','MarkerSize',2); %画球的速度曲线 xlabel('时间t'); %坐标轴说明 ylabel('速度v'); %坐标轴说明 title('速度变化趋势图'); %图形名称 hold on; %设置图形保持状态 subplot(2,2,4); %选择2*2中的四号区 axis([0,20,0,25]); %坐标控制 grid on; %不加网格线
plot(t,y,'*b','MarkerSize',2); %画球的位置曲线 xlabel('时间t'); %坐标轴说明 ylabel('高度y'); %坐标轴说明 title('位置变化图'); %图形名称 grid on %不加网格线 hold on %设置图形保持状态 end %循环结束
程序运行结果如图3所示。 4、对平抛运动的分析
将物体用一定的初速度沿水平方向抛出,不考虑空气的阻力,物体只在重力作用下所做的运动,叫做平抛运动。
竖直的重力与速度方向有夹角,做曲线运动;水平方向不受外力作用,是匀速运动,速度为Vo;竖直方向受重力作用,没有初速度,加速度为重力加速度g,是自由体运动。即做平抛运动的物体,在水平方向上由于不受力,将作匀速直线运动;在竖直方向上的物体的初速度为0.且只受到重力作用,物体做自由落体运动,加速度为g。
平抛运动的规律:
1、抛出t秒末的速度:
一抛出点为坐标原点,水平方向为x轴(正方向和初速度V0的方向相同),
竖直方向为y轴,正方向向下,则:
水平速度:Vx=Vo (51) 竖直分速度:Vy=gt (52)
22合速度:Vt= Vx?Vy (53)
tan?=Vygt= (54) VxVo运用MATLAB编程得到速度随时间的变化关系,程序如下:
图3 小球落地速度及位置曲线
t=0:0.01:10; %产生时间的行向量 Vt=-sqrt(10^2+9.8*t.^2); %求速度 plot(t,Vt); %输出速度曲线 title('物体速度随时间的变化'); % 图形名称
grid %加网格线
运行结果如图4所示。
2、平抛运动的物体在任意时刻t的位置坐标:
水平位移:x=Vot (55) 竖直位移:y=
12gt (56) 222合位移:s=x?y (57)
ygt= (58) x2Vo运用该公式,我们可以求得物体在任意时刻的坐标并找到物体所在位置后,再用平滑曲线把这些点连起来,就得到平抛运动的轨迹。
运用MATLAB 编程的到物体运动的曲线的程序如下: t=0:0.01:10; %产生时间行向量
tan?=
s=-sqrt((3*t).^2+(0.5*9.8*t.^2).^2); %求位移 plot(t,s,'r:'); %输出位移曲线 title('物体平抛运动轨迹'); %图形名称 grid %加网格线
运行结果如图5所示。
图4 平抛运动速度随时间变化关系
图5 物体平抛轨迹曲线
四、结论
从以上对抛体运动的分析可得出这些结论:
1、抛射体的射程与初速度和抛射角有关,在抛射角不变的情况下,射程随初速度的增大而增大,在抛射角不变的情况下,射程随抛射角的增大而增大,当抛射角达到四十五度时射程达到最大值,之后射程随着抛射角的增大而减小。
2、抛体运动的分析牵扯到很多复杂的推理与计算,MATLAB可以有效的解决这一问题,
MATLAB的数值计算和作图功能来模拟物理现象,减少了计算工作量,并且可以准确的得到计算结果,且绘制的图形使抽象的问题形象化。
MATLAB具有程序控制结构、函数调用、数据结构、输入输出、面向对象等程序语言特征,因此与传统编程语言一样,可以进行程序设计,而且简单易学,编程效率高。MATLAB以矩阵最为数据操作的基本单位,使得矩阵运算变得简捷、方便、高效,其还提供了十分丰富的数值计算函数、符号计算函数。用其绘图十分方便,还可对图形进行修饰和控制。 [参考文献]
[1] 刘卫国.MATLAB程序设计与应用 (第二版)[M].北京:高等教育出版社,2006.
[2] 同济大学数学系编.高等数学 (第六版) 上册[M].北京:高等教育出版社,2007.
[3]马文蔚.物理学(上册)(第四版)[M].北京:高等教育出版社,1999.