劉彬 陳雄偉 李潮龍 秦錫洲 黃純青 黎永耀
[摘 要] Python作為一種現(xiàn)代化計(jì)算機(jī)程序設(shè)計(jì)語言,因其語言的清晰簡潔、易讀和可擴(kuò)展性被廣泛地應(yīng)用于腳本與軟件開發(fā),同時(shí)也被眾多科研學(xué)者應(yīng)用于科學(xué)計(jì)算研究?;赑ython語言強(qiáng)大的科學(xué)計(jì)算功能,讓學(xué)生盡早接觸這種有廣闊應(yīng)用前景的語言,并將其引入到非線性物理的數(shù)值“實(shí)驗(yàn)”教學(xué)上將具有特殊意義。我們在非線性物理課程中,利用Python語言,組織學(xué)生對標(biāo)準(zhǔn)非線性薛定諤方程進(jìn)行數(shù)值求解,并將數(shù)值模擬的結(jié)果與精確解對比。結(jié)果表明,Python語言能夠簡單清晰地展示物理現(xiàn)象及過程,因此更直觀地加深了學(xué)生對非線性問題的理解。
[關(guān)鍵詞] 非線性物理;Python;非線性薛定諤方程;孤立子
[基金項(xiàng)目] 國家自然科學(xué)基金項(xiàng)目(11905032,11874112,11575063);廣東省青年創(chuàng)新人才類項(xiàng)目(2018KQNCX279)
[作者簡介] 劉 彬(1988—),女,湖北松滋人,博士,佛山科學(xué)技術(shù)學(xué)院物理與光電工程學(xué)院講師,主要從事非線性動(dòng)力學(xué)研究。
[中圖分類號] G642.0 ? ?[文獻(xiàn)標(biāo)識碼] A ? ?[文章編號] 1674-9324(2020)29-0292-02 ? ?[收稿日期] 2019-09-24
客觀世界多姿多彩,世界復(fù)雜性和多樣性的根源在于其本質(zhì)上是非線性的。對于一個(gè)系統(tǒng),當(dāng)輸出和輸入不成正比,我們就認(rèn)為該系統(tǒng)是非線性系統(tǒng)。從數(shù)學(xué)的角度來說,非線性系統(tǒng)的一個(gè)主要特征是不再滿足迭加原理,而迭加原理失效的一種方式是方程本身是非線性的。這里講解的孤立子是20世紀(jì)非線性科學(xué)的一個(gè)重要發(fā)現(xiàn),其概念可以追溯到1834年,英國工程師J.Russell觀察到河道中單個(gè)凸起的水峰可以保持形狀不變而傳播很遠(yuǎn)的距離并將其稱之為“孤立波”,接著荷蘭著名數(shù)學(xué)家D.Korteweg和他的學(xué)生在研究淺水波的運(yùn)動(dòng)時(shí),推導(dǎo)出單向運(yùn)動(dòng)的淺水波運(yùn)動(dòng)方程,即KdV方程,隨后孤立子的研究得到了蓬勃發(fā)展,并快速延伸到生物、通信等各個(gè)科學(xué)研究領(lǐng)域。在物理上,孤立子是非線性系統(tǒng)中色散效應(yīng)和非線性效應(yīng)達(dá)到平衡時(shí)的結(jié)果,一般可由非線性薛定諤方程來描述。
我們熟知的非線性薛定諤方程是非線性偏微分方程,僅在極少數(shù)情況下有精確求解。例如,僅當(dāng)滿足可積條件時(shí)才能利用Darboux變換的方法求解,于是數(shù)值方法成為研究非線性問題的一種主要的研究手段。因此在本科教學(xué)中,適當(dāng)?shù)匾霐?shù)值計(jì)算教學(xué)對學(xué)生理解和掌握相關(guān)的物理現(xiàn)象及本質(zhì)有著重要的意義,同時(shí)讓學(xué)生盡早接觸這種有廣泛應(yīng)用前景的語言,有利于對學(xué)生基本功的培養(yǎng)并對日后的科學(xué)研究打下堅(jiān)實(shí)基礎(chǔ)。
提及傳統(tǒng)的數(shù)值實(shí)驗(yàn)工具,人們常會(huì)聯(lián)想到Matlab[1,2],Matlab雖然是一種很方便的數(shù)值模擬工具,但其冗余,龐大,而且是一款價(jià)格不菲的商用軟件,因此,有沒有可能采用更輕便和免費(fèi)的軟件去替代?Python相對于Matlab來說,就具有了免費(fèi)、開源、語言嚴(yán)謹(jǐn)、書寫格式統(tǒng)一而易學(xué)習(xí)的特點(diǎn),也因其具備強(qiáng)大而豐富的庫、可擴(kuò)展性和數(shù)據(jù)分析功能而被應(yīng)用于人工智能,也被中國學(xué)者應(yīng)用于氣象數(shù)據(jù)處理,同時(shí)也被眾多科研學(xué)者應(yīng)用于科學(xué)計(jì)算、實(shí)驗(yàn)數(shù)據(jù)處理等,一些知名大學(xué)已經(jīng)在本科階段開設(shè)利用Python來講解程序課程設(shè)計(jì)。Python語言誕生于20世紀(jì)90年代初,其創(chuàng)始人是荷蘭人吉多·范羅蘇姆。我們通過將Python語言引入到非線性物理的課程中,將有利于學(xué)生更方便的理解和學(xué)習(xí)到這種先進(jìn)的語言,同時(shí)也可以更好的學(xué)習(xí)到如何采用數(shù)值方法解決物理問題。
本文通過編寫Python程序去模擬非線性物理中的經(jīng)典方程來引入這堂數(shù)值實(shí)驗(yàn)課。在這堂數(shù)值實(shí)驗(yàn)課中,我們將會(huì)安排學(xué)生用Python去模擬非線性薛定諤方程。非線性薛定諤方程是一條經(jīng)典的非線性方程,在理論物理、光學(xué)、工程動(dòng)力學(xué)等學(xué)科中都有重要的理論研究與應(yīng)用價(jià)值。
當(dāng)光脈沖寬度在皮秒范疇內(nèi),且光纖損耗為零的情況下,描述光脈沖在單模光纖內(nèi)傳輸?shù)臄?shù)值模型寫成無量綱的形式即為如下形式的非線性薛定諤方程[2]:
下面我們僅討論γ=1時(shí)的亮孤子解。根據(jù)迭代格式(3),我們給出其在Python語言下的虛時(shí)間演化代碼。根據(jù)參考文獻(xiàn)可知其自聚焦情況下的亮孤子解的具體形式為Ax,t=Msech(Mx)exp(it/2)。下圖給出了我們的數(shù)值計(jì)算結(jié)果和精確解的對比,可以看到數(shù)值結(jié)果與精確解符合的很好。傳輸圖像展示了數(shù)值解穩(wěn)定傳輸?shù)慕Y(jié)果。
通過上述例子,我們采用數(shù)值計(jì)算模擬方法,簡單快速地獲得一維非線性薛定諤方程的亮孤子解并驗(yàn)證了穩(wěn)定性。其與解析結(jié)果的一致性免除了解析計(jì)算過程中復(fù)雜的數(shù)學(xué)技巧,而通過Python作圖語句將解的形式展示出來,這樣能讓學(xué)生更容易、更直觀地去理解物理的概念,也鍛煉了學(xué)生的思維能力。
參考文獻(xiàn)
[1]黎永耀,麥志杰,吳劍雄,等.基于Matlab平臺(tái)下量子力學(xué)課中的“實(shí)驗(yàn)”課[J].赤峰學(xué)院學(xué)報(bào),2011,27(10):13-14.
[2]黎永耀,劉丹,呂英紅,劉巖.量子力學(xué)中基于離散化空間的一維定態(tài)問題的快捷數(shù)值實(shí)驗(yàn)[J].赤峰學(xué)院學(xué)報(bào),2015,27(10):13-14.
[3]賈東方,等,譯.非線性光纖光學(xué)(第5版)[M].電子工業(yè)出版社,2014.