MATLAB在力学、热学教学中的应用

2013-04-29 13:48孙冬梅
教育教学论坛 2013年6期
关键词:物理

孙冬梅

摘要:随着信息时代的发展,Matlab也被广泛应用于各个领域中.基于Matlab的计算和绘图功能,把它用在物理教学中,可以使一些抽象的物理过程形象直观,使繁难的数学推导简便。容易激发学生学习物理知识的兴趣,对解决物理的实际问题上更具有优势.本文介绍了Matlab在力学和热学教学中的几种简单应用.

关键词:Matlab;物理;动态演示

中图分类号:G633.7 文献标志码:B 文章编号:1674-9324(2013)06-0071-02

物理学作为一门理科,与其他科目不同之处在于它揭示的是自然界规律,其中有些规律与人的感官上是一致的,但有些规律是与人的感觉相违背的。因此在从事物理教学时,要想方设法让学生充分理解其物理规律。将MATLAB软件应用于物理教学中,能是教学内容更加形象直观,更能提高学生的学习兴趣,更有助于培养学生的创新能力。

一、用Matlab软件模拟力学运动

1.自由落体。一弹性球,初始高度h=10m,向上初速度v0=15m/s,与地相碰的速度衰减系数k=0.8,计算任意时刻球的速度和位置。第一次落地前v=v01-gt,y=h+v01t-gt2/2,T1=3.62s;第二次落地前v02=-k(v01-gT1)v=v02-gt,y=v02t-gt2/2,T2=2v02/g;第三次落地前v03=-k(v02-gT2),v=v03-gt,y=v03t-gt2/2,T3=2v03/g;第n次落地前v0n=-k(v0(n-1)-gT(n-1)),v=v0n-gt,y=v0nt-gt2/2,Tn=2v0n/g

MATLAB程序:v0=15;h=10;%初速度、高度g=-9.8;k=0.8;%重力加速度衰减系数T=0;fort=0:0.05:20

v=v0+g*(t-T);%求速度y=h+v0*(t-T)+g*(t-T)^2/2;%求高度if y<=0,v0=-0.8*v;T=t;%取球每次落地时所用时间h=0;end,subplot(1,2,2);%画球的运动图像pause(0.1);

plot(1,y,'or','MarkerSize',10,'MarkerFace',[1,0,0]),axis([0,2,0,25]);title('球的位置曲线')subplot(2,2,1)%画球的速度曲线;axis([0,20,-25,30]);title('球的速度曲线')grid on;plot(t,v,'*r','MarkerSize',2);hold on;subplot(2,2,3);%画球的位置曲线axis([0,20,0,25]);grid on;title('球的运动图像');plot(t,y,'*b','MarkerSize',2);hold on

disp(['t=',num2str(t,4),'v=',num2str(v,4),'y=',num2str(y,2)]),end

2.力的叠加原理——正交分解法则。假设一个物体受到两个力,F1和F2其作用效果等于当此物体受到一个力时的作用效果一力为合力F3,其中F1,F2称为分力。F1与轴的夹角是θ1,F2与轴的夹角是θ2,它的合成遵循矢量的叠加原理。

先把F1和F2分解到X,Y轴上:X轴上的分力x1=F1cosθ2,x2=F2cosθ2;Y轴上的分力y1=F1sinθ1,y2=F2sinθ2其在X,Y轴上的合力为:X轴上的分力x=x1+x2,Y轴上的分力y=y1+y2;所以合力为Fh=,F与X轴的夹角为θ角,θ=arctan。

程序如下:F1=input('输入力F1:');a=input('输入F1与水平面的夹角:');F2=input('输入力F2:');b=input('输入F2与水平面的夹角:');M1=F1*cos(a*pi/180);N1=F1*sin(a*pi/180);

M2=F2*cos(b*pi/180);N2=F2*sin(b*pi/180);

k1=tan(a*pi/180);k2=tan(b*pi/180);

x1=0:M1/100:M1;%绘制F1和F2axis([0 20 0 20]);text(M1,N1,'F1');%标注力的名称

text(M2,N2,'F2');hold on;y1=0:N1/100:N1;%向x的投影线Xf1=M1;y2=0:N2/100:N2;

Xf2=M2;plot(Xf1,y1,'k:',Xf2,y2,'k:');text(Xf1,0,'Xf1');text(Xf2,0,'Xf2');%标注x上分力的名称

hold on;x1=0:M1/100:M1;%向Y上的投影线Yf1=N1;x2=0:M2/100:M2;Yf2=N2;

plot(x1,Yf1,'k:',x2,Yf2,'k:');text(0,Yf1,'Yf1');text(0,Yf2,'Yf2');Xh=M1+M2;Yh=N1+N2;

Fh=sqrt(Xh.^2+Yh.^2);%输出力的大小

k=Yh/Xh;x=0:Xh/100:Xh;y=k*x;plot(x,y,'r-');

text(Xh,Yh,'F');hold on;X3=Xh;%合力的投影线

Y3=0:Yh/100:Yh;Y4=Yh;X4=0:Xh/100:Xh;

plot(X3,Y3,'k:',X4,Y4,'k:');text(Xh,0,'Xh');text(0,Yh,'Yh');title('力的合成图解');

二、用Matlab动态演示分子的布朗运动

1827年英国植物学家布朗(1773-1858)用显微镜观察悬浮在静止水中的花粉时发现这些花粉微粒在不停地做无规则运动。后来把悬浮微粒的这种运动叫做布朗运动。在教学中大都只是通过教师讲授下认识到这种现象的,如果在教学中能够加上动画讲解,会激起学生的学习兴趣,会得到更好的效果。在这里通过Matlab模拟布朗运动。如图所示:

程序:n=30;s=0.02;x=rand(n,1)-0.5;y=rand(n,1)-0.5;%设置x、y的值:for j=1:40,h=plot(x,y,'.');%绘制图形

axis([-1 1 -1 1]);%调整坐标范围axis square;%坐标轴范围为正方形grid off;%取消网格

set(h,'EraseMode','xor','MarkerSize',18)%设置动画属性

while 1,drawnow;%显示,x=x+s*randn(n,1);y=y+s*randn(n,1);%设置xy变化曲线,set(h,'XData',x,'YData',y)

end,m(j)=getframe;%截取一块,end,movie(m);%形成影片总之,Matlab在物理学习和教学中的应用非常广泛,培养学生逻辑推理能力,应用物理知识能力的一种较为新颖的形式,需要我们不断尝试,从而推动物理教学改革,提高教学质量.

参考文献:

[1]石博强,藤贵法,李海鹏.Matlab数学计算范例教程[M].北京:中国铁道出版社,2004.

[2]徐金明.Matlab实用教程[M].北京:清华大学出版社,2005.

[3]于全训,林明喜,薛成山.力学概论[M].北京:科学出版社,2000.

[4]王家文,王皓,刘海.MATLAB 7.0编程基础[M].北京:机械工业出版社,2005.

猜你喜欢
物理
物理中的影和像
只因是物理
高考物理模拟试题(五)
高考物理模拟试题(二)
高考物理模拟试题(四)
高考物理模拟试题(三)
留言板
如何打造高效物理复习课——以“压强”复习课为例
处处留心皆物理
我心中的物理