孫冬梅
摘要:隨著信息時代的發展,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.