王建云,田智鯤,張 丹
(1.湖南工業(yè)大學(xué) 理學(xué)院,湖南 株洲 412007;2.湖南工程學(xué)院 理學(xué)院,湖南 湘潭 411104)
量子力學(xué)是描述微觀世界結(jié)構(gòu)、運動與變化規(guī)律的物理學(xué)科。它的發(fā)現(xiàn)與建立是20世紀(jì)人類文明發(fā)展的一個重大飛躍,而且引發(fā)了一系列劃時代的科學(xué)發(fā)現(xiàn)與技術(shù)發(fā)明。
薛定諤(Schr?dinger)方程是量子力學(xué)最基本的方程,由奧地利物理學(xué)家薛定諤于1926年提出,揭示了原子世界中物質(zhì)運動的基本規(guī)律。例如,最簡單的一維無界域上依賴于時間的薛定諤方程,就反映了一個在守恒場中無旋轉(zhuǎn)的粒子的運動狀態(tài),而其解的平方就表示該粒子在給定時刻出現(xiàn)在給定位置上的概率密度。許多物理問題,如高能物理、非線性媒體中的激光束掃描、濃縮問題等的數(shù)學(xué)模型也都可歸結(jié)為(非線性)薛定諤方程。
薛定諤方程也是量子力學(xué)的一個基本假定,不能用比它更根本的假定來證明,其正確性只能靠實踐來檢驗,而且在實際中復(fù)雜的薛定諤方程不易求得其精確解。因此,關(guān)于其數(shù)值解的研究越來越受到人們的重視和關(guān)注。
本文主要考慮如下二維依賴于時間的線性薛定諤方程的初邊值問題:
有限元方法是求解偏微分方程數(shù)值解的一種重要方法,它的基本思想是根據(jù)變分原理,利用有限元空間上的離散解近似無窮維空間上的連續(xù)解。目前,許多數(shù)值求解方法被應(yīng)用到線性或非線性薛定諤方程中,其中有限元方法為常見的方法之一,具體參見文獻[1-10]。
文獻[1]利用Galerkin有限元方法將空間離散,用Crank-Nicolson方法將時間方向離散得到有限元全離散格式,證明了數(shù)值解在全離散格式下的存在性和唯一性,并給出了在時間和空間步長滿足一定條件下的最優(yōu)階L2誤差估計。文獻[2]利用人工邊界條件,構(gòu)造和分析了無界域二維依賴于時間的薛定諤方程的一種全離散格式,并證明了該格式具有無條件穩(wěn)定和收斂。文獻[7]討論了二維薛定諤方程的有限元超收斂問題,利用橢圓投影算子得到數(shù)值解的H1誤差具有超收斂性,并運用插值后處理技術(shù)得到整體超收斂結(jié)果。
兩層網(wǎng)格方法是求解偏微分方程的一種高效數(shù)值計算方法,其基本思想是通過構(gòu)造兩種不同尺度(基于粗網(wǎng)格和細網(wǎng)格)的有限元空間。首先在粗網(wǎng)格上求解原來的非對稱或非線性問題;然后利用粗網(wǎng)格上的數(shù)值解,將原問題用合適的方式進行對稱化或線性化;再在細網(wǎng)格上求解相應(yīng)的對稱化或線性化問題。與直接在細網(wǎng)格上數(shù)值求解原問題相比,兩層網(wǎng)格方法減少了計算量,大幅提高了算法效率。該方法最初由許進超提出,他在文獻[11-13]中,通過求解非對稱不定以及非線性橢圓問題,引入粗細兩個子空間進行離散,構(gòu)造了橢圓型問題有限元的一系列兩層網(wǎng)格算法。幾乎在同一時期,黃云清等在文獻[14]中,研究了非線性奇異兩點邊值問題的多層迭代校正算法的收斂性誤差估計與逼近解的漸近展式。金繼承等在文獻[15]中,首次將兩層網(wǎng)格方法運用到求解一類耦合的偏微分方程組,構(gòu)造了解耦的有限元兩層網(wǎng)格算法,并進行了誤差估計。
后來兩層網(wǎng)格有限元方法被應(yīng)用到線性和非線性薛定諤方程,具體見文獻[16-19]。文獻[18]針對一類二維依賴于時間的線性薛定諤方程,其空間方向是在三角形網(wǎng)格上采用線性元進行離散,而時間方向采用向后歐拉方法進行離散,得到一種全離散的兩層網(wǎng)格有限元算法,并且進行了理論分析。本文基于已有研究,主要考慮空間方向在矩形網(wǎng)格上利用雙線性元進行離散,并通過數(shù)值算例驗證了兩層網(wǎng)格方法的高效性,且數(shù)值解在相同網(wǎng)格尺寸下比文獻[18]中數(shù)值解的誤差更小。
記Lp(Ω)為標(biāo)準(zhǔn)的Banach空間,具有范數(shù),Wm,p為定義在區(qū)域Ω上的標(biāo)準(zhǔn)Sobolev空間,其范數(shù)定義為,并且當(dāng)p=2時,記Wm,p=Hm,相應(yīng)的范數(shù)簡記為m=m,2,=0.2。
對應(yīng)的L2范數(shù)為
將區(qū)域Ω擬一致剖分為矩形網(wǎng)格Γh,其中網(wǎng)格步長0 記τ=T/N為區(qū)間[0,T]上的時間步長,tj=jτ,j=0,1,…,N為區(qū)間上的時間節(jié)點,其中N為某個正整數(shù)。 為簡單起見,將函數(shù)ω(x,y,tj)簡記為ωj。另外,對任意函數(shù)序列ωj(x,y),j=1,2…,利用向后歐拉方法定義其關(guān)于時間的差商,為 那么,問題(1)的全離散有限元解 可定義為滿足 式中Phu0(x,y)為u0(x,y)在Sh空間的橢圓投影[18]。 因此,類似文獻[18],可得如下定理1。 定理1設(shè)u(x,y,t)為問題(1)的精確解,函數(shù)序列Uhn(x,y)為滿足問題(2)的全離散有限元解,則有誤差估計 其中C為與h無關(guān)的任意常數(shù)。 在實際編程計算時,需要將問題(2)按實部和虛部分開,則可以寫成如下等價的耦合方程組: 式 中Phu0R(x,y)、Phu0I(x,y)分 別為u0R(x,y)、u0I(x,y)在Sh空間的橢圓投影。 將Ω擬一致剖分為矩形網(wǎng)格ΓH,其網(wǎng)格尺寸H>>h,而SH為定義在ΓH上的另一個有限元空間。利用向后Euler方法在時間方向離散,構(gòu)造問題(1)的一種全離散兩網(wǎng)格有限元算法,先在粗網(wǎng)格上對原問題進行求解,然后在細網(wǎng)格上計算時利用粗網(wǎng)格上已算得的部分?jǐn)?shù)值作為已知數(shù)據(jù)代入,將薛定諤方程耦合的實部和虛部進行解耦,從而簡化為在細網(wǎng)格上求解兩個泊松方程。這樣,由于粗網(wǎng)格尺寸H>>h,因此該算法比直接在細網(wǎng)格上求解原問題要簡便很多,將大大減少數(shù)值計算的時間。 算法具體步驟如下。 步驟1求函數(shù)序列滿足 步驟2求函數(shù)序列滿足 因此,類似文獻[18],可得如下定理2。 定理2設(shè)u(x,y,t)為問題(1)的精確解,函數(shù)序列uhn(x,y)為兩層網(wǎng)格算法中滿足問題(5)的兩層網(wǎng)格有限元解,則有誤差估計 其中C為與h和H無關(guān)的任意常數(shù)。 考慮如下二維依賴于時間的線性薛定諤方程 式中:Ω=[0,1]×[0,1];T=1;右端項函數(shù)f(x,y,t)選擇滿足如下精確解[18] 采用空間步長為h的均勻網(wǎng)格,對區(qū)域Ω進行擬一致矩形網(wǎng)格剖分Γh,利用雙線性有限元進行數(shù)值求解。取時間步長為τ=10-3,分別取細網(wǎng)格步長h=1/4,1/16,1/64,而ΓH為粗網(wǎng)格步長的矩形剖分。Uhn為細網(wǎng)格Γh上,時間方向利用向后歐拉格式,空間方向利用有限元方法,得到的標(biāo)準(zhǔn)有限元解;為粗網(wǎng)格ΓH和細網(wǎng)格Γh上,利用兩層網(wǎng)格算法得到的兩層網(wǎng)格有限元解。分別計算精確解與標(biāo)準(zhǔn)有限元解的誤差及與兩層網(wǎng)格有限元解的誤差。不同時刻的誤差結(jié)果及CPU運行時間,如表1~3所示。 表1 數(shù)值解在t=0.2時的誤差及CPU運行時間Table1 Errors of numerical solutions and CPU running time with t=0.2 表2 數(shù)值解在t=0.5時的誤差及CPU運行時間Table2 Errors of numerical solutions and CPU running time with t=0.5 表3 數(shù)值解在t=1.0時的誤差及CPU運行時間Table3 Errors of numerical solutions and CPU running time with t=1.0 圖1和圖2分別給出了本文與文獻[18]中的兩層網(wǎng)格有限元解在不同時刻的誤差比較,從圖中可以看出,本文的兩層網(wǎng)格有限元解在每一時刻都要更加精確。 圖1 16×16網(wǎng)格上兩層網(wǎng)格解在不同時刻的誤差Fig.1 Errors of two-grid solutions at different time levels on 16×16 meshes 圖2 64×64網(wǎng)格上兩層網(wǎng)格解在不同時刻的誤差Fig.2 Errors of two-grid solutions at different time levels on 64×64 meshes 本文研究了兩層網(wǎng)格方法在二維線性薛定諤方程中的應(yīng)用,對空間區(qū)域進行擬一致矩形網(wǎng)格剖分,構(gòu)建了一種向后歐拉全離散有限元格式的兩層網(wǎng)格算法,解釋了兩層網(wǎng)格算法在H1求解線性薛定諤方程中的思想和原理,給出了數(shù)值解在范數(shù)下的誤差階,最后通過一個數(shù)值算例驗證了該算法的可行性和高效性。3 兩層網(wǎng)格算法
4 數(shù)值實驗
5 結(jié)語