周小奮
(鎮(zhèn)江市第四中學(xué) 江蘇 鎮(zhèn)江 212000)
目前,在中學(xué)物理教學(xué)與研究中常用到Powerpoint,Excel,幾何畫板等輔助教學(xué)軟件.這些軟件在教學(xué)中體現(xiàn)出直觀性、趣味性、大容量的優(yōu)點;其中的Excel軟件處理數(shù)據(jù)更具有快捷、簡易的優(yōu)點.但對于精度要求較高的作圖或是比較復(fù)雜的數(shù)據(jù)計算,上述軟件就不能滿足需要了.
Matlab是美國Mathworks公司開發(fā)的計算及分析軟件.這個軟件具有如下特點:(1)作圖功能強(qiáng)大,能夠準(zhǔn)確而科學(xué)地反應(yīng)物理問題的本質(zhì).(2)運算功能強(qiáng)大,語句簡潔清晰.目前這個軟件在中學(xué)物理教學(xué)和研究中應(yīng)用較少,本文通過實例介紹矩陣實驗室(Matlab)在作圖和求解極值問題中的應(yīng)用.
【例1】如圖1所示為三個點電荷所構(gòu)成的系統(tǒng),其中一個點電荷-2q位于坐標(biāo)原點,一個-q位于(0,a)點,一個+3q位于(0,-a)點,畫出x Oy平面內(nèi)的電場線.
圖1
解析:在x Oy平面內(nèi),電場強(qiáng)度應(yīng)滿足
解得
在上式中,常量C取不同數(shù)值時將得到不同的電場線方程.如果用常規(guī)方法解出y=f(x)的表達(dá)式再去作圖難度很大.用Matlab語言即能輕松地做到這一點.依據(jù)上述表達(dá)式,編制的Matlab程序如下:
clc;clear; %清除內(nèi)存
syms x y ; % 定義符號變量x y
for C=0:0.2:5; % 常數(shù)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]); % 在規(guī)定的區(qū)間上畫出滿足方程的函數(shù)圖像
set(h,′color′,′r′,′LineWidth′,1)%設(shè)置電場線的寬度為1,顏色為紅色
title(′\fontname{宋體 }\fontsize{11}三個共線電荷周圍的電場線分布′);%加標(biāo)題
hold on; %保持已經(jīng)畫出的電場線
end %循環(huán)結(jié)束
grid on; %加網(wǎng)格線
運行程序,得出的電場線分布如圖2所示,由于常數(shù)C的取值對所畫出的圖像影響較大,而程序中所設(shè)定的取值點覆蓋面有限,所以在圖2中有部分區(qū)域沒有畫出電場線.
圖2 三個共線電荷周圍的電場線分布
【例2】如圖3所示為兩個點電荷所構(gòu)成的系統(tǒng).其中一個點電荷+q位于(0,a)點,一個+q位于(0,-a)點.畫出x Oy平面內(nèi)的電場線.
圖3 兩個點電荷系統(tǒng)
解析:根據(jù)例1中三個電荷的電場線方程,可以得到本題中的電場線方程為
根據(jù)方程編制的Matlab程序如下:
clc;clear; %清除內(nèi)存
syms x y ; % 定義符號變量x y
for C=-3:0.1:3; % 常數(shù)c?。?,-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]);%畫出滿足方程的函數(shù)圖像
set(h,′color′,′r′,′LineWidth′,1)%電場線的寬度為1.
title(′\fontname{宋體 }\fontsize{11}兩個正點電荷周圍的電場線分布′);%加標(biāo)題
hold on; %保持已經(jīng)畫出的電場線end %循環(huán)結(jié)束
運行程序,得出的電場線分布如圖4所示.此時可以發(fā)現(xiàn),有一條電場線位于兩電荷連線的垂直平分線上(對應(yīng)的C的取值為零).這與課本上的電場線分布圖(圖5)不同,課本上沒有這一直線,這是什么原因呢?
圖4 兩個正點電荷周圍的電場線分布
在兩個等量正點電荷連線的中點上,場強(qiáng)為零,因此在中點處不能畫出電場線.而該點的鄰域有電場存在,只是越靠近中點場強(qiáng)越弱,所以畫出的電場線將在該中點處中斷,中點可以看作是一個使電場線不連續(xù)的奇點.文獻(xiàn)[1]建議,最好不要沿這兩個電荷的中垂線畫電場線,如果一定要畫,那這兩根電場線只能趨近于中點,而不能到達(dá)中點.因此,教材中沒有畫入這兩條惹麻煩的電場線,采用了圖5所示的畫法.
圖5 兩個正點電荷周圍的電場線分布
【例3】如圖6所示,一水槍需將水射到離噴口的水平距離為3.0 m的墻外,從噴口算起,墻高為4.0 m.若不計空氣阻力,取g=10 m/s2,求所需的最小初速及對應(yīng)的發(fā)射仰角.
圖6 水槍噴水高度與水平距離示意圖
解析:水流做斜上拋運動,以噴口O為原點建立如圖6所示的直角坐標(biāo),本題的任務(wù)就是求出水流能通過點A(d,h)的最小初速度和發(fā)射仰角.根據(jù)平拋運動的規(guī)律,水流的運動方程為
把A點坐標(biāo)(d,h)代入以上兩式,消去t,得
依據(jù)上述表達(dá)式,編制的Matlab程序如下:clc;clear; % 清除內(nèi)存
syms p alpha q; %定義符號變量p alpha q q=atan(4/3)*180/pi; %發(fā)射仰角的最小值q p=q:0.01:90; % 發(fā)射仰角從q開始每次增加0.01°
alpha=p*pi/180; %將發(fā)射仰角轉(zhuǎn)換為弧度v=3*(5)?0.5*((cos(alpha).?2).*
(3*tan(alpha)-4)).?(-1/2);%算出每一個發(fā)射角對應(yīng)的速度
h=plot(p,v); % 畫出發(fā)射仰角 -速度圖像
set(h,′color′,′r′,′LineWidth′,2)%設(shè)置圖像曲線為紅色,寬度為2
xlabel(′發(fā)射仰角(°)′); % 橫坐標(biāo)標(biāo)簽ylabel(′發(fā)射速度(m·s-1)′); % 縱坐標(biāo)標(biāo)簽title(′\fontname{宋體 }\fontsize{11}發(fā)射速度及對應(yīng)的發(fā)射仰角的關(guān)系′);%加標(biāo)題
grid on; % 加網(wǎng)格線
圖7 發(fā)射速度與發(fā)射仰角關(guān)系
因為在Matlab的三角函數(shù)運算中,只能使用弧度,所以在上述程序中首先要將角度轉(zhuǎn)化成弧度.運行程序,得出的速度與發(fā)射仰角關(guān)系如圖7所示(橫坐標(biāo)為角度,縱坐標(biāo)為速度).在圖像上取出的最小速度約為9.487 m/s,對應(yīng)的發(fā)射仰角約為71.6°,和理論計算的結(jié)果完全一致.
【例4】如圖8所示,水平地面上的物體m2質(zhì)量為2 kg,與水平地面右側(cè)邊緣間的距離為2 m,m2與水平地面間的動摩擦因數(shù)μ=0.5,繩子末端懸掛著一個質(zhì)量為1 kg的物體m1,兩個物體之間通過一根繞在滑輪上的輕質(zhì)細(xì)繩相連.滑輪頂端距離地面1 m,滑輪的輪軸之間沒有摩擦.當(dāng)m2的速度最大時,m2向右移動了多遠(yuǎn)?
圖8 變力斜拉物體
圖9 解析圖
解析:這是變力斜拉物體問題.建立的坐標(biāo)系如圖9所示.圖中m1的速度等于繩子移動的速度,m1的加速度等于其中
根據(jù)牛頓第二定律可得
解得
因為
所以
將a1,a2代入(3)式得
上式是一個二階微分方程,由于Matlab只能處理一階微分方程,因此要進(jìn)行降次處理.令x(1)=x,x(2)=x·,則以上二階微分方程可以變?yōu)槿缦乱浑A微分方程組
根據(jù)這個方程組編制的Matlab程序如下:
clear,tt=3; %清除內(nèi)存
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′);%根據(jù)一階微分方程組定義內(nèi)聯(lián)函數(shù)和變量
[t,x]=ode45(qs,[0,tt],[-2,0]);%在規(guī)定的時間和橫坐標(biāo)范圍內(nèi)積分
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);
%利用已經(jīng)積分求出的橫坐標(biāo)、速度數(shù)組求出對應(yīng)的加速度數(shù)組
plot(t,x,t,a,′k.-′),
%畫出橫坐標(biāo)、速度、加速度圖像
title(′\fontname{宋體 }\fontsize{11}m2的橫坐標(biāo)、速度、加速度圖像′);% 加標(biāo)題
grid on, xlabel(′運動時間′);
ylabel(′m 2的位置′); % 加網(wǎng)格線,標(biāo)出坐標(biāo)標(biāo)簽
運行程序后,得到的結(jié)果如圖10所示,在這幅圖上可以顯示出物體m2的橫坐標(biāo)x,速度v,加速度a的變化規(guī)律.當(dāng)加速度a等于零時,m2的速度達(dá)到最大值,此時在圖中可以取出m2的橫坐標(biāo)x為-0.6,也就是說m2向右移動了-0.6 m-(-2)m=1.4 m.
圖10 m2的橫坐標(biāo)、速度、加速度圖像
圖11 存儲的數(shù)組
當(dāng)然,也可以在數(shù)組編輯器中打開Matlab在運算過程中存儲的數(shù)組(圖11)第52行,也能得到當(dāng)m2的加速度接近零、速度達(dá)到最大值的橫坐標(biāo)為-0.595 45 m≈-0.6 m,答案為m2向右移動了
-0.6 m-(-2)m=1.4 m
信息技術(shù)的發(fā)展,特別是簡單易學(xué)、功能強(qiáng)大的Matlab軟件的出現(xiàn),使中學(xué)物理教師可以進(jìn)行類似畫電場線這樣的仿真分析或數(shù)值求解研究.如果教師應(yīng)用Matlab軟件并獲得成功時,就會建立信心,相信自己能在物理教學(xué)研究上做得更好!
1 張之翔.電磁學(xué)教學(xué)札記.北京:高等教育出版社,1988
2 李川.兩等量、同號點電荷間電力線畫法的改進(jìn).物理教學(xué),2005(9)
3 王沫然.MATLAB與科學(xué)計算.北京:電子工業(yè)出版社,2003