周小奮
(鎮江市第四中學 江蘇 鎮江 212000)
目前,在中學物理教學與研究中常用到Powerpoint,Excel,幾何畫板等輔助教學軟件.這些軟件在教學中體現出直觀性、趣味性、大容量的優點;其中的Excel軟件處理數據更具有快捷、簡易的優點.但對于精度要求較高的作圖或是比較復雜的數據計算,上述軟件就不能滿足需要了.
Matlab是美國Mathworks公司開發的計算及分析軟件.這個軟件具有如下特點:(1)作圖功能強大,能夠準確而科學地反應物理問題的本質.(2)運算功能強大,語句簡潔清晰.目前這個軟件在中學物理教學和研究中應用較少,本文通過實例介紹矩陣實驗室(Matlab)在作圖和求解極值問題中的應用.
【例1】如圖1所示為三個點電荷所構成的系統,其中一個點電荷-2q位于坐標原點,一個-q位于(0,a)點,一個+3q位于(0,-a)點,畫出x Oy平面內的電場線.

圖1
解析:在x Oy平面內,電場強度應滿足


解得

在上式中,常量C取不同數值時將得到不同的電場線方程.如果用常規方法解出y=f(x)的表達式再去作圖難度很大.用Matlab語言即能輕松地做到這一點.依據上述表達式,編制的Matlab程序如下:
clc;clear; %清除內存
syms x y ; % 定義符號變量x y
for C=0:0.2:5; % 常數c取0,0.2,0.4,
0.6,…,5.0
h=ezplot(3*(y+1)/sqrt((y+1)?2+2)-2*y/sqrt(2+2)-(y-1)/sqrt((y-1)?2+2)-C,[-2,2,0.1]); % 在規定的區間上畫出滿足方程的函數圖像
set(h,′color′,′r′,′LineWidth′,1)%設置電場線的寬度為1,顏色為紅色
title(′\fontname{宋體 }\fontsize{11}三個共線電荷周圍的電場線分布′);%加標題
hold on; %保持已經畫出的電場線
end %循環結束
grid on; %加網格線
運行程序,得出的電場線分布如圖2所示,由于常數C的取值對所畫出的圖像影響較大,而程序中所設定的取值點覆蓋面有限,所以在圖2中有部分區域沒有畫出電場線.

圖2 三個共線電荷周圍的電場線分布
【例2】如圖3所示為兩個點電荷所構成的系統.其中一個點電荷+q位于(0,a)點,一個+q位于(0,-a)點.畫出x Oy平面內的電場線.

圖3 兩個點電荷系統
解析:根據例1中三個電荷的電場線方程,可以得到本題中的電場線方程為

根據方程編制的Matlab程序如下:
clc;clear; %清除內存
syms x y ; % 定義符號變量x y
for C=-3:0.1:3; % 常數c取-3,-2.9,
-2.8,-2.7…,3.0
h=ezplot((y+1)/sqrt((y+1)?2+x?2)+(y-1)/sqrt((y-1)?2+x?2)-C,[-2,2,0.1]);%畫出滿足方程的函數圖像
set(h,′color′,′r′,′LineWidth′,1)%電場線的寬度為1.
title(′\fontname{宋體 }\fontsize{11}兩個正點電荷周圍的電場線分布′);%加標題
hold on; %保持已經畫出的電場線end %循環結束
運行程序,得出的電場線分布如圖4所示.此時可以發現,有一條電場線位于兩電荷連線的垂直平分線上(對應的C的取值為零).這與課本上的電場線分布圖(圖5)不同,課本上沒有這一直線,這是什么原因呢?

圖4 兩個正點電荷周圍的電場線分布
在兩個等量正點電荷連線的中點上,場強為零,因此在中點處不能畫出電場線.而該點的鄰域有電場存在,只是越靠近中點場強越弱,所以畫出的電場線將在該中點處中斷,中點可以看作是一個使電場線不連續的奇點.文獻[1]建議,最好不要沿這兩個電荷的中垂線畫電場線,如果一定要畫,那這兩根電場線只能趨近于中點,而不能到達中點.因此,教材中沒有畫入這兩條惹麻煩的電場線,采用了圖5所示的畫法.

圖5 兩個正點電荷周圍的電場線分布
【例3】如圖6所示,一水槍需將水射到離噴口的水平距離為3.0 m的墻外,從噴口算起,墻高為4.0 m.若不計空氣阻力,取g=10 m/s2,求所需的最小初速及對應的發射仰角.

圖6 水槍噴水高度與水平距離示意圖
解析:水流做斜上拋運動,以噴口O為原點建立如圖6所示的直角坐標,本題的任務就是求出水流能通過點A(d,h)的最小初速度和發射仰角.根據平拋運動的規律,水流的運動方程為

把A點坐標(d,h)代入以上兩式,消去t,得

依據上述表達式,編制的Matlab程序如下:clc;clear; % 清除內存
syms p alpha q; %定義符號變量p alpha q q=atan(4/3)*180/pi; %發射仰角的最小值q p=q:0.01:90; % 發射仰角從q開始每次增加0.01°
alpha=p*pi/180; %將發射仰角轉換為弧度v=3*(5)?0.5*((cos(alpha).?2).*
(3*tan(alpha)-4)).?(-1/2);%算出每一個發射角對應的速度
h=plot(p,v); % 畫出發射仰角 -速度圖像
set(h,′color′,′r′,′LineWidth′,2)%設置圖像曲線為紅色,寬度為2
xlabel(′發射仰角(°)′); % 橫坐標標簽ylabel(′發射速度(m·s-1)′); % 縱坐標標簽title(′\fontname{宋體 }\fontsize{11}發射速度及對應的發射仰角的關系′);%加標題
grid on; % 加網格線

圖7 發射速度與發射仰角關系
因為在Matlab的三角函數運算中,只能使用弧度,所以在上述程序中首先要將角度轉化成弧度.運行程序,得出的速度與發射仰角關系如圖7所示(橫坐標為角度,縱坐標為速度).在圖像上取出的最小速度約為9.487 m/s,對應的發射仰角約為71.6°,和理論計算的結果完全一致.
【例4】如圖8所示,水平地面上的物體m2質量為2 kg,與水平地面右側邊緣間的距離為2 m,m2與水平地面間的動摩擦因數μ=0.5,繩子末端懸掛著一個質量為1 kg的物體m1,兩個物體之間通過一根繞在滑輪上的輕質細繩相連.滑輪頂端距離地面1 m,滑輪的輪軸之間沒有摩擦.當m2的速度最大時,m2向右移動了多遠?

圖8 變力斜拉物體

圖9 解析圖
解析:這是變力斜拉物體問題.建立的坐標系如圖9所示.圖中m1的速度等于繩子移動的速度,m1的加速度等于其中
根據牛頓第二定律可得

解得

因為

所以

將a1,a2代入(3)式得


上式是一個二階微分方程,由于Matlab只能處理一階微分方程,因此要進行降次處理.令x(1)=x,x(2)=x·,則以上二階微分方程可以變為如下一階微分方程組

根據這個方程組編制的Matlab程序如下:
clear,tt=3; %清除內存
qs=inline([′[x(2);(x(2)?2*
(1 - 2*x(1))/(1 + x(1)?2)+ 9.8*(1 -2*x(1))*(1 + x(1)?2)?0.5 - 19.6*(1 +x(1)?2))/(6*x(1)?2-x(1)+4)]′],′t′,′x′);%根據一階微分方程組定義內聯函數和變量
[t,x]=ode45(qs,[0,tt],[-2,0]);%在規定的時間和橫坐標范圍內積分
a= (x(:,2).?2.*(1-2*x(:,1))./(1+x(:,1).?2)+9.8*(1-2*x(:,1)).*(1+x(:,1).?2).?0.5-19.6*(1+x(:,1).?2))./(6*x(:,1).?2-x(:,1)+4);
%利用已經積分求出的橫坐標、速度數組求出對應的加速度數組
plot(t,x,t,a,′k.-′),
%畫出橫坐標、速度、加速度圖像
title(′\fontname{宋體 }\fontsize{11}m2的橫坐標、速度、加速度圖像′);% 加標題
grid on, xlabel(′運動時間′);
ylabel(′m 2的位置′); % 加網格線,標出坐標標簽
運行程序后,得到的結果如圖10所示,在這幅圖上可以顯示出物體m2的橫坐標x,速度v,加速度a的變化規律.當加速度a等于零時,m2的速度達到最大值,此時在圖中可以取出m2的橫坐標x為-0.6,也就是說m2向右移動了-0.6 m-(-2)m=1.4 m.

圖10 m2的橫坐標、速度、加速度圖像

圖11 存儲的數組
當然,也可以在數組編輯器中打開Matlab在運算過程中存儲的數組(圖11)第52行,也能得到當m2的加速度接近零、速度達到最大值的橫坐標為-0.595 45 m≈-0.6 m,答案為m2向右移動了
-0.6 m-(-2)m=1.4 m
信息技術的發展,特別是簡單易學、功能強大的Matlab軟件的出現,使中學物理教師可以進行類似畫電場線這樣的仿真分析或數值求解研究.如果教師應用Matlab軟件并獲得成功時,就會建立信心,相信自己能在物理教學研究上做得更好!
1 張之翔.電磁學教學札記.北京:高等教育出版社,1988
2 李川.兩等量、同號點電荷間電力線畫法的改進.物理教學,2005(9)
3 王沫然.MATLAB與科學計算.北京:電子工業出版社,2003