韓永勝 楊宏新 馬 軍*中國(guó)藥科大學(xué)教改課題(2013)
(中國(guó)藥科大學(xué)理學(xué)院 江蘇 南京 210029)
隨著科學(xué)技術(shù)的進(jìn)步,特別是計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)值模擬已經(jīng)成為繼科學(xué)實(shí)驗(yàn)和理論分析之后人們認(rèn)識(shí)世界的新手段.在大學(xué)物理教學(xué)中,引入數(shù)值模擬對(duì)培養(yǎng)學(xué)生的創(chuàng)造力和想象力具有事半功倍的作用.本文就Mathematica軟件在大學(xué)物理問(wèn)題數(shù)值模擬中的應(yīng)用做點(diǎn)介紹.Mathematica軟件是美國(guó)Wolfram Research公司開(kāi)發(fā)的一款科學(xué)計(jì)算軟件,于1988推出了第1版,2012年底推出了第9版.新版將很多的新功能集成到系統(tǒng)的內(nèi)核中,使其成為一款非常卓越的集符號(hào)運(yùn)算、數(shù)值運(yùn)算和計(jì)算結(jié)果可視化于一體的科學(xué)計(jì)算軟件.公司的總裁和軟件的主要開(kāi)發(fā)者斯蒂芬·沃爾夫雷姆(Stephen Wolfram)先生是學(xué)物理出身,在軟件設(shè)計(jì)中更多考慮了在物理學(xué)方面應(yīng)用的方便性,使得這款軟件特別適合物理學(xué)工作者和學(xué)生使用[1].下面我們通過(guò)幾個(gè)具體的例子來(lái)說(shuō)明Mathematica在大學(xué)物理問(wèn)題數(shù)值模擬方面的應(yīng)用.
考慮一個(gè)繞過(guò)質(zhì)心的軸旋轉(zhuǎn)飛行中的足球,除了受到重力mg和空氣阻力fg的作用外,還受到馬格努斯力fM的作用,因此,它在空間將劃出一個(gè)弧線,這就是大家所熟知的“香蕉球”[2].可以用Mathematica編程模擬一個(gè)“香蕉球”的運(yùn)動(dòng)軌跡.
設(shè)足球場(chǎng)平面為xOy平面,足球繞過(guò)質(zhì)心的豎直軸以角速度ω旋轉(zhuǎn),足球質(zhì)心運(yùn)動(dòng)的速度v=vxi+vyj+vzk,空氣密度為ρ,足球半徑為R.假定空氣阻力與速度平方成正比,空氣的摩擦力矩是恒定值,這樣角加速度是常量β.利用牛頓第二定律可以列出如下的矢量方程
(1)
上式中G=mg,fg和fM可以表示為
k1(-vxi-vyj-vzk)v
(2)
(3)
根據(jù)實(shí)際情況,相應(yīng)參數(shù)選擇如下:阻力系數(shù)c=0.5,空氣密度ρ=1.29 kg/m3,足球半徑R=
0.11 m,足球的質(zhì)量m=0.44 kg,則可計(jì)算得k1=0.012 3,k2=0.014 4.在數(shù)值模擬中,將角加速度β取1rad/s2,初始條件定為:r(0)=0,v(0)=24i+16j+8.5k(m/s),ω0=15krad/s,足球距離球門(mén)25 m處.
數(shù)值求解的思路如下:
利用列表表示足球的角速度矢量
ω=0,0,ω0-βt
位置矢量
r=xt,yt,zt
速度矢量用位置矢量的導(dǎo)數(shù)表示
v=Dr,t
利用Norm函數(shù)求矢量的模,利用Cross函數(shù)計(jì)算矢量的叉乘,可將式(2)和式(3)寫(xiě)成
G=0,0,-mg
fg=-k1Normvx't,y't,z't
fM=k2Crossω,v
由式(1)寫(xiě)出足球運(yùn)動(dòng)的動(dòng)力學(xué)矢量方程
eqns=mDr,t,2=
fM+fg+G//Thread
將常數(shù)和初始條件用規(guī)則表示,利用NDSolve函數(shù)數(shù)值求解足球運(yùn)動(dòng)的微分方程組,得到解x(t)、y(t)、z(t).利用畫(huà)線函數(shù)Line畫(huà)出球門(mén),利用三維參數(shù)作圖函數(shù)ParametricPlot3D畫(huà)出足球在三維空間的運(yùn)動(dòng)軌跡,并利用Show函數(shù)將球門(mén)和球的軌跡畫(huà)在一張圖上,如圖1所示.
圖1 足球飛行軌跡
將飛行時(shí)間定義為Manipulate函數(shù)的動(dòng)態(tài)變量,用畫(huà)點(diǎn)函數(shù)Point和畫(huà)線函數(shù)Line動(dòng)態(tài)畫(huà)出足球位置和飛行軌跡,形成足球在空間飛行過(guò)程的動(dòng)畫(huà),如圖2所示.
(a)
(b)
通過(guò)修改參數(shù)和初始條件可以模擬出不同情況下足球的運(yùn)動(dòng)情況,可對(duì)練習(xí)“香蕉球”提供一定的理論上的指導(dǎo).
李薩如圖形是振動(dòng)合成中的一個(gè)典型例子[3].當(dāng)質(zhì)點(diǎn)同時(shí)參與兩個(gè)振動(dòng)頻率成整數(shù)比的相互垂直的運(yùn)動(dòng)時(shí),質(zhì)點(diǎn)的運(yùn)動(dòng)軌跡是閉合的,其軌跡在x方向的切點(diǎn)數(shù)nx和y方向的切點(diǎn)數(shù)ny的比值,與x方向振動(dòng)頻率νx和y方向振動(dòng)頻率νy的比值的倒數(shù)相等,即
x=Axcos(2πνxt+φx0)
(4)
y=Aycos(2πνyt+φy0)
(5)
當(dāng)νx∶νy=n∶m,其中n,m為自然數(shù),則
(6)
Mathematica程序設(shè)計(jì)思路如下:將式(4)和式(5)中的振幅、頻率、初相以及時(shí)間作為Manipulate函數(shù)的動(dòng)態(tài)變量,利用二維參數(shù)作圖函數(shù)ParametricPlot畫(huà)出合振動(dòng)曲線,利用畫(huà)點(diǎn)函數(shù)Point畫(huà)出振動(dòng)質(zhì)點(diǎn)的位置,并用Show函數(shù)將其畫(huà)在一張圖上,從而演示李薩如圖形并動(dòng)態(tài)顯示質(zhì)點(diǎn)的運(yùn)動(dòng),如圖3所示.
(a)
(b)
可以通過(guò)調(diào)節(jié)水平方向和數(shù)值方向振幅和頻率的比值,以及水平方向和豎直方向的初相位來(lái)得到不同情況下的李薩如圖形,還可以演示質(zhì)點(diǎn)的運(yùn)動(dòng)軌跡,可用來(lái)研究李薩如圖形的性質(zhì).
應(yīng)用Mathematica軟件模擬兩個(gè)點(diǎn)電荷電場(chǎng)線和電勢(shì)的分布.由于兩個(gè)點(diǎn)電荷激發(fā)的電場(chǎng)和電勢(shì)分布是關(guān)于兩電荷連線旋轉(zhuǎn)對(duì)稱的,故畫(huà)出過(guò)兩電荷連線的平面(設(shè)為xOy平面)的電場(chǎng)和電勢(shì)分布即可.設(shè)電荷量為q1和q2的兩個(gè)點(diǎn)電荷,相距為2r0,以兩電荷連線為x軸,兩個(gè)點(diǎn)電荷連線的中點(diǎn)為坐標(biāo)原點(diǎn)建立xOy坐標(biāo)系,則坐標(biāo)平面內(nèi)的電勢(shì)分布為
電場(chǎng)分布為
E=-U
(8)
程序設(shè)計(jì)思路如下:
根據(jù)式(7),將U定義為電荷量以及坐標(biāo)的函數(shù),并將電荷量q1和q2定義為Manipulate函數(shù)的動(dòng)態(tài)變量,利用ContourPlot函數(shù)畫(huà)出等勢(shì)線分布,利用StreamPlot函數(shù)畫(huà)出負(fù)的電勢(shì)梯度函數(shù)(即電場(chǎng)函數(shù))對(duì)應(yīng)的電場(chǎng)分布.為使電場(chǎng)線疏密能合理地表示電場(chǎng)大小,可以點(diǎn)電荷為圓心,貼近電荷處的圓周上均勻設(shè)定電場(chǎng)線經(jīng)過(guò)的點(diǎn),如圖4所示.
(a)
(b)
圖4顯示了兩種點(diǎn)電荷分布(q1=3,q2=-3;q1=1,q2=1)下的電場(chǎng)和電勢(shì)分布情況.可動(dòng)態(tài)改變左右電荷的電荷量,從而得到不同點(diǎn)電荷電荷量情況下的電場(chǎng)和電勢(shì)分布.
牛頓環(huán)可以看作是一塊平凸透鏡和一塊平板玻璃構(gòu)成的空氣膜的上下表面反射光的干涉,當(dāng)上面的平凸透鏡上下移動(dòng)時(shí),牛頓環(huán)圖像會(huì)呈現(xiàn)出視覺(jué)上的“干涉條紋陷入”和“干涉條紋冒出”的現(xiàn)象,這可以通過(guò)Mathematica編程來(lái)模擬[4].
(9)
對(duì)應(yīng)的相位差為
(10)
干涉光的強(qiáng)度分布為
(11)
令牛頓環(huán)條紋所在的平面為xOy平面,則r2=x2+y2.設(shè)平凸透鏡的曲率半徑為R=1 m,入射光的波長(zhǎng)為λ=589.3 nm,牛頓環(huán)的顯示范圍為{(x,y)|
-x0≤x≤x0,-y0≤y≤y0},并取x0=y0=
0.003 m,程序編制思路如下:將式(10)中的b定義為Manipulate函數(shù)的動(dòng)態(tài)變量,利用密度圖函數(shù)DensityPlot畫(huà)出式(11)的強(qiáng)度分布,如圖5所示.
(a)
(b)
結(jié)合以上幾個(gè)實(shí)例發(fā)現(xiàn),利用Mathematica軟件,可以通過(guò)編程將實(shí)際的物理過(guò)程通過(guò)數(shù)值模擬的方式表現(xiàn)出來(lái).Mathematica程序通俗易懂,編程工作量小,編程用的語(yǔ)言接近自然語(yǔ)言,表示方法也接近通常的數(shù)學(xué)習(xí)慣表示,因而能讓使用者集中精力考慮物理問(wèn)題的數(shù)學(xué)模型,不用在編程上花上太多精力.將Mathematica軟件引入大學(xué)物理教學(xué)中,對(duì)培養(yǎng)學(xué)生的創(chuàng)新能力和提高物理思維能力都是非常有益的.
參考文獻(xiàn)
1 唐曙光.在物理教學(xué)中使用Mathematica.物理通報(bào),2003(10):25~26
2 馬濤.數(shù)字化大學(xué)物理.杭州:浙江大學(xué)出版,2008
3 黃海林,李元杰.李薩如圖形的計(jì)算機(jī)模擬——大學(xué)物理CAI軟件開(kāi)發(fā)實(shí)例.物理與工程,2003,13(3):38~41
4 鐘季康,鮑鴻吉.大學(xué)物理習(xí)題計(jì)算機(jī)解法——MATLAB編程應(yīng)用.北京:機(jī)械工業(yè)出版社,2008