劉兆龍 胡海云
(北京理工大學(xué)物理學(xué)院,北京 100081)
在大學(xué)物理課程中嵌入數(shù)值計算的捷徑
劉兆龍 胡海云
(北京理工大學(xué)物理學(xué)院,北京 100081)
數(shù)值計算已經(jīng)成為研究復(fù)雜系統(tǒng)物理規(guī)律時不可缺少的手段,但基于各個方面的困難,它很難在大學(xué)物理課程中有所體現(xiàn)。本文介紹了借助Excel軟件將數(shù)值計算嵌入大學(xué)物理課程的方法,給出了利用Excel軟件實現(xiàn)可視化、數(shù)值積分和求微分方程數(shù)值解的方法。文中所述的方法簡捷易行,可操作性強,且不必耗費大量學(xué)時,非常適用于面向低年級理工科學(xué)生的大學(xué)物理課程。采用此方法,可以使低年級學(xué)生較早地熟悉數(shù)值計算,更好地掌握物理知識和應(yīng)用物理知識解決問題,是大學(xué)物理課程教學(xué)改革的一種有益嘗試。
大學(xué)物理;數(shù)值計算;教學(xué)改革;Excel
伴隨著計算機技術(shù)的不斷進(jìn)步,數(shù)值計算已經(jīng)被公認(rèn)為是研究復(fù)雜系統(tǒng)物理規(guī)律時不可缺少的手段,也成為了高校物理教學(xué)的重要內(nèi)容之一。從20世紀(jì)80年代起,國內(nèi)外大學(xué)的物理系陸續(xù)開設(shè)了計算物理學(xué)課程,教授物理專業(yè)的學(xué)生利用數(shù)值計算方法去解決問題。說到物理教育與教學(xué),受眾最廣的群體是非物理專業(yè)的學(xué)生,特別是理工科學(xué)生,其群體數(shù)量遠(yuǎn)遠(yuǎn)大于物理專業(yè)的學(xué)生。在面向該群體的大學(xué)物理課程中,數(shù)值計算一直沒有像近代物理那樣得到大規(guī)模的普及。如何將計算物理學(xué)普物化,即將計算物理學(xué)的研究方法引入面向非物理專業(yè)的理工科大學(xué)物理課程甚至是文科物理課程中,將之與原有教學(xué)內(nèi)容有機結(jié)合,加強大學(xué)物理課程的應(yīng)用性,使大學(xué)物理課程更現(xiàn)代化,是一個值得研究的課題,也是大學(xué)物理課程教學(xué)的改革方向之一。
現(xiàn)今,隨著各校教學(xué)設(shè)施的改善和手提電腦的日益普及,實施計算物理普物化的時機日益成熟,其主要困難在于計算軟件的使用。大學(xué)物理課程面向低年級學(xué)生,學(xué)生們的編程能力和計算機語言基礎(chǔ)普遍有限,而教師不能在物理課上花費大量課時講解編程,這一矛盾是計算物理普物化的困難之一。此外,對大部分學(xué)生來說,大學(xué)物理學(xué)課程本身難度相對較大,如果再花費很多時間用于編程,會增加學(xué)生的學(xué)習(xí)負(fù)擔(dān)或減少用于物理知識本身的學(xué)習(xí)時間,有喧賓奪主之憂。
很顯然要在大學(xué)物理中引入數(shù)值計算,需要借助相對易學(xué)的通用軟件,在現(xiàn)有的教學(xué)框架中有機地融入計算物理學(xué)的思想與方法,凸顯數(shù)值計算的魅力,使低年級學(xué)生較快地解決一些“相對復(fù)雜”的問題。國外大學(xué)物理課程中已經(jīng)在此方向進(jìn)行了有益的嘗試[1]。目前可用于科學(xué)計算的軟件較多,例如Matlab, Mathematic, Maple, Python計算平臺等,但是使用這些軟件需要學(xué)生們學(xué)習(xí)程序設(shè)計語言,并且學(xué)生們在高中時很少接觸它們。
Microsoft Excel是微軟公司Microsoft office的組件之一,是一款功能強大的電子表格處理軟件,包含大量公式和函數(shù),可以執(zhí)行計算。許多教師對于此軟件并不陌生,常用之統(tǒng)計學(xué)生成績或在大學(xué)物理實驗課上處理實驗數(shù)據(jù),而且有些學(xué)生在高中的信息技術(shù)課上接觸過Excel。將此軟件用于低年級本科生的大學(xué)物理課程之中,可以起到事半功倍的作用,使得我們可以基于傳統(tǒng)大學(xué)物理課程的知識框架,回避對學(xué)生進(jìn)行系統(tǒng)地編程訓(xùn)練,幫助學(xué)生了解建立模型、設(shè)計計算方法、編程和結(jié)果分析這一計算物理學(xué)研究問題的過程,并進(jìn)行簡單應(yīng)用。它還有助于學(xué)生對物理現(xiàn)象和規(guī)律的理解。
下面通過大學(xué)物理課程中幾個常見的實例,看如何使用Excel實現(xiàn)數(shù)值計算。
2.1 在大學(xué)物理課程中實現(xiàn)“可視化”

使用Excel軟件,可以輕松地解決這個問題,即使對于沒有學(xué)過編程或?qū)iT的計算機語言的學(xué)生,也能快速掌握曲線的作圖方法,獨立繪出漂亮的函數(shù)圖線,并利用它探究其中的物理知識。
例如要繪制氧氣在0℃時的麥克斯韋速率分布曲線,完成步驟為

圖1 利用Excel完成的麥克斯韋速率分布曲線(截取了局部工作表)。繪制其他氣體曲線時,只要在C2單元格中輸入相應(yīng)的質(zhì)量。在C3單元中輸入不同的數(shù)值,可以得到不同溫度下的分布曲線。為了便于比較,圖中給出了溫度為T和T/2的兩條曲線
? 新建Excel工作表,在第一行中敲入注釋,解釋此工作的內(nèi)容,如:麥克斯韋速率分布函數(shù),如圖1。在A2單元格中輸入文字“輸入質(zhì)量:”,C2單元中敲入氧氣分子的質(zhì)量5.32E-26,并在名稱框中將該單元的名稱定義為m,隨后在D2單元格中輸入其單位kg。依此法在第3、4和5 行中分別輸入溫度、溫度的步長值和玻爾茲曼常數(shù),名稱分別定義為T、DELTA和k。若要研究其他氣體,只要直接在C2單元格中敲入其分子或原子質(zhì)量的數(shù)值即可。要改變溫度,也只需在C3單元格中直接敲入所需數(shù)值。同理,改變C4的數(shù)值就可以改變溫度的步長
? 建立表頭,如速率、速率分布函數(shù)等,見圖1中的第7行

圖2 利用Excel完成的拍頻繪圖(截取了局部工作表)
? 在A列中輸入速率。例如若速率范圍是0~1200m/s,步長為25m/s,則在A8單元格中輸入0,A9單元格中輸入=A8+DELTA,將鼠標(biāo)放在A9的右下角,當(dāng)鼠標(biāo)成黑十字星時,按住鼠標(biāo)的左鍵豎直向下拖拽(本文中將此操作簡稱為豎直向下拖拽鼠標(biāo)),直至速率到達(dá)1200m/s,即設(shè)置好了速率的取值
? 在B8單元中輸入麥克斯韋速率分布函數(shù)=4*3.14*(m/(2*3.14*k*T))^(3/2)*A8^2*EXP(-m*A8^2/(2*k*T))
? 從B8單元格的右下角豎直向下拖拽鼠標(biāo),完成第B列各單元格的計算
? 選中A、B列中所有數(shù)據(jù),點擊工具欄中的繪圖按鈕,選擇繪制XY散點圖,得到曲線
? 編輯曲線,加上說明文字,完成曲線繪制,見圖1
利用這個小小的程序,可以進(jìn)行許多教學(xué)討論。例如:溫度、質(zhì)量、速率區(qū)間、步長等量的變化對曲線形狀的影響;以及數(shù)值計算中如何處理無限大等。還可以計算各個速率區(qū)間內(nèi)的分子數(shù)占總分子數(shù)的百分比,并繪出相應(yīng)的分布,見圖1中最右側(cè)的圖。
采用相同的方法可以很容易地繪出許多曲線,例如拍頻(圖2)、李薩如圖形(圖3)、單縫衍射光強曲線(圖4)、普朗克黑體輻射曲線(圖5)等許多曲線,在此不做更多的贅述。對于學(xué)習(xí)大學(xué)物理課程的低年級學(xué)生來說,用Excel實現(xiàn)的初級可視化易學(xué)、好用。

圖3 利用Excel完成的李薩如圖形(截取了局部工作表)

圖4 利用Excel完成的單縫衍射光強曲線(截取了局部工作表)

圖5 普朗克黑體輻射曲線(截取了局部工作表)
2.2 利用Excel做積分
積分是大學(xué)物理課程中常用的計算,有些積分難以使用現(xiàn)成的積分公式,需要做數(shù)值計算。這一點限制了教材中的例題和習(xí)題的設(shè)置。使用Excel可以解決此困難。例如:某容器內(nèi)裝有溫度為T=300K的氦氣,系統(tǒng)處于平衡態(tài)。已知其中的原子個數(shù)為N=106,原子的質(zhì)量為m=6.65×10-27kg,求: (1)速率區(qū)間vp~vp+40m/s內(nèi)的原子個數(shù),(2)速率區(qū)間10vp~10vp+40m/s內(nèi)的原子個數(shù),vp為最概然速率。
可以利用Excel,練習(xí)數(shù)值計算中的梯形法積分法。很容易算出vp=1120m/s,要計算所求速率區(qū)間內(nèi)的原子數(shù)DN,需計算積分


圖6 利用Excel做數(shù)值積分
? 新建Excel文件,設(shè)置原子質(zhì)量MH、溫度TH、原子總數(shù)N和玻爾茲曼常數(shù)k,并定義它們的名稱,如圖6(a)。根據(jù)積分范圍,在A和C列中分別輸入所需,即速率
? 在B8和D8單元格中輸入被積函數(shù)=4*3.14*N*(MH/(2*3.14*k*TH))^(3/2)*A8^2*EXP(-MH*A8^2/(2*k*TH))
? 將鼠標(biāo)放置在B8單元格的右下角向下拖拽,計算出各個節(jié)點處的y值。在D列重復(fù)此操作
? 在B和D列已有數(shù)值下方的單元格中輸入計算ΔN的公式,完成積分,如圖6(b)
由B49單元中的值可知第1問的結(jié)果為30000個,由D49單元中的值可以得到第2問的結(jié)果是:原子基本上不出現(xiàn)在這個區(qū)間內(nèi)。
在此基礎(chǔ)上,可改變質(zhì)量、溫度、原子數(shù)、速率區(qū)間等量,得到所需的積分值。還可改變步長,討論它對計算結(jié)果的影響。可以看出,將解析解和數(shù)值解混搭,擴大了解決問題的范圍。
2.3 利用Excel解微分方程
Excel可用于解一些簡單的微分方程,使學(xué)生們了解有關(guān)數(shù)值計算的簡單知識。以阻尼振動為例。方程為:
(1)
設(shè)ω0=20s-1,對于欠阻尼,取阻尼系數(shù)β1=3s-1;對過阻尼,取β2=40s-1。初始條件為:t=0,x0=A0=0.3×10-2m,初速度v0=0。對應(yīng)該初始條件的解析解為
(2)
(3)
(4)
(5)
對于欠阻尼,用Excel實現(xiàn)計算的步驟為:
? 新建Excel文件,設(shè)置時間步長(名稱定義為DELTA)、初始條件、阻尼系數(shù)b、ω0等量的名稱和數(shù)值等,在第D6中敲入=SQRT(OMEGA0^2-BETA1^2),也就是式(3),計算ω的值,并定義其名稱
? 在第10行中輸入各個變量的名稱,如T、x、y等,如圖7
? 在A11、B11、C11、D11單元格中分別輸入各個量的初值
? A12單元格中輸入=A11+DELTA,并豎直拖拽鼠標(biāo),在A列中完成時間的數(shù)據(jù)輸入
? B12單元中輸入式(2),C12單元內(nèi)輸入式(4),在D12單元內(nèi)輸入式(5)

圖7 利用Excel解阻尼振動微分方程圖中x0為欠阻尼的解析解;x、 x1 和x2分別為欠阻尼、臨界阻尼和過阻尼的數(shù)值解。圖中欠阻尼的數(shù)值解幅度大于其解析解
? 同時選中B12、C12和D12單元,用鼠標(biāo)向下拖拽,拖拽的同時觀察x的值,當(dāng)它趨于零時,停止拖拽,完成計算
? 同時選中B、C、D列,點擊工具欄的繪圖按鈕,選擇XY散點圖,得圖7
? 添加文字,編輯所得圖線
通過上述步驟,采用迭代法,利用Excel解出了這個微分方程,并繪制出振動曲線,見圖7右側(cè)。將數(shù)值解與解析解進(jìn)行對照,可驗證數(shù)值解的正確性。還可對步長、頻率等量進(jìn)行討論,看曲線如何變化,如何影響數(shù)值解的精確度等。Excel解微分方程的步驟和迭代法的應(yīng)用很直觀。利用這種方法,學(xué)生還可以研究有空氣阻力時拋體的運動和行星軌道等等一些問題。
可以看出,將Excel軟件移植進(jìn)大學(xué)物理課程,進(jìn)行數(shù)值計算并非難事,除了上面提到的用途外,還可以用來解n次冪方程、非線性方程和線性方程組等。
利用Excel將數(shù)值計算移植到大學(xué)物理課程教學(xué)的優(yōu)勢是簡單易行并且行之有效的。對于低年級學(xué)生來說,它可提供一種解決問題的方便工具,擴大了解決問題的范圍,并且可以借助它更好地理解物理。對于教師來說,它豐富了講授方法,使得教學(xué)更加直觀生動。此外,它還給大學(xué)物理的教材編寫和習(xí)題配置帶來新的生機。例如;在國外一些大學(xué)物理教材中,數(shù)值計算已經(jīng)進(jìn)入課后習(xí)題,成為常規(guī)的作業(yè)題目[1]。
說到在大學(xué)物理課程中引入數(shù)值計算,我國的物理教育工作者已經(jīng)在此方向進(jìn)行了有益的探索,例如采用C語言或計算平臺[2]、Matlab[3]來實現(xiàn)等。相比于這些軟件,Excel功能差一些,如不能實現(xiàn)三維繪圖以及動畫等。但是,它秉承了“所見即所得”的微軟Windows系統(tǒng)理念,簡單、易學(xué),可以很輕松地融入現(xiàn)有的大學(xué)物理教學(xué)體系之中,適用于低年級理工科學(xué)生,甚至是文科學(xué)生,是在大學(xué)物理課程中普及數(shù)值計算的得力工具。
借助Excel在大學(xué)物理課程中實現(xiàn)數(shù)值計算對于教師和學(xué)生來說都是簡單易行的,是在大學(xué)物理課程中嵌入數(shù)值計算的一條捷徑。盡管Excel的功能有限,但是對于面向低年級學(xué)生的大學(xué)物理課程來說,它能夠處理課程中所需的常用計算,并且不耗費很多課時。打個比方來說,如果我們要去遠(yuǎn)方旅行,自駕、高鐵、飛機是我們常常要考慮的出行工具,但是如果我們要在附近活動時,選擇騎自行車往往是明智之舉。
[1] Paul A.Tipler. Physics for scientists and engineers. Six Edition[M]. New York: W.H.Freeman and Company, 2008.
[2] 李元杰,陸果. 大學(xué)物理學(xué)[M].2版.北京:高等教育出版社, 2008.
[3] 周群益,侯兆陽,劉讓蘇. Matlab可視化大學(xué)物理學(xué)[M].北京:清華大學(xué)出版社,2011.
■
A SIMPLE WAY TO EMBED NUMERICAL CALCULATIONS INTO INTRODUCTORY PHYSICS COURSES
Liu Zhaolong Hu Haiyun
(School of Physics, Beijing Institute of Technology, Beijing 100081)
Numerical calculation is an indispensable means to study complex physics systems, but it is difficult to be reflected in the course of introductory physics due to various reasons. This paper introduces the method of embedding numerical calculation into introductory physics curriculum by using Excel software. It shows how to do visualization, numerical integration and solve numerical differential equations by Excel. The method described in this paper is simple, easy to operate, and does not need to spend a great deal of teaching hours. It is very suitable for introductory physics courses designed for junior college students. This method is aimed at helping the lower grade students know the numerical calculation earlier and learn physics more effectively, it also helps students relate what they are learning to real-world problems. It is a useful attempt on the teaching reform of the introductory physics courses.
introductory physics course; physics education; teaching reform; Excel
2017-06-14
劉兆龍,女,教授,主要從事大學(xué)物理教學(xué)和材料物理方面的研究,zlliu@bit.edu.cn。
劉兆龍,胡海云. 在大學(xué)物理課程中嵌入數(shù)值計算的捷徑[J]. 物理與工程,2017,27(5):71-76.