黃建國,吳 渤
(上海交通大學(xué)數(shù)學(xué)科學(xué)學(xué)院,上海 200240)
Klein-Gordon方程是一類典型的非線性波動(dòng)方程,在理論和應(yīng)用物理的許多領(lǐng)域,如非線性光學(xué)、固體物理和量子場(chǎng)論[1-2]中有廣泛應(yīng)用. 本文考慮如下Klein-Gordon方程:
(1)
式中,Ω?R2是有界矩形區(qū)域,D>0是擴(kuò)散系數(shù),g是非線性函數(shù),f是外源函數(shù).
近年來已有學(xué)者對(duì)Klein-Gordon方程發(fā)展了各種數(shù)值方法. 例如差分法[3-4],邊界元法[5],微分求積法[6]等. 然而這些現(xiàn)有的數(shù)值方法要么精度有限,要么計(jì)算復(fù)雜度大,因此很有必要發(fā)展求解該問題的高效計(jì)算方法. 最近,作者在文獻(xiàn)[7]中借鑒積分因子方法[8-13]的思想提出了一種快速緊致時(shí)間積分法(FCTI)用于數(shù)值求解任意階發(fā)展方程. 該方法在空間方向使用緊致差分格式離散,然后在時(shí)間方向上基于快速離散正弦變換和常數(shù)變易公式獲得任意階發(fā)展方程的顯式表達(dá)式,再利用Lagrange插值近似非線性源項(xiàng),導(dǎo)出了一類高效求解方法. 本文將使用前文方法數(shù)值求解Klein-Gordon 方程(1),但用Hermite 插值代之于 Lagrange 插值來處理非線性源項(xiàng),從而得到更為高效的數(shù)值求解方法. 此時(shí),僅需利用前兩個(gè)時(shí)間步的計(jì)算結(jié)果,就可獲得空間和時(shí)間方向均為四階精度的高效算法. 數(shù)值實(shí)驗(yàn)驗(yàn)證了所提算法的高效性.
設(shè)Ω={xb (xi,yj)=(xb+ihx,yb+jhy),0≤i≤Nx,0≤j≤Ny. 給定正整數(shù)p,記 并定義如下兩個(gè)算子: 使用四階緊致差分格式進(jìn)行空間離散[14-15]: 式中,i=1,2,…,Nx-1,j=1,2,…,Ny-1,從而得到方程(1)的如下空間半離散化格式: (2) 式中, 經(jīng)直接計(jì)算可知,在方程(2)中出現(xiàn)的相關(guān)矩陣存在以下譜分解: 又記H=(hi,j)(Nx-1)×(Ny-1), (3) 則注意到hi,j<0,從而易知 定義g(t)=(gij(t))(Nx-1)×(Ny-1),g′(t)=(g′ij(t))(Nx-1)×(Ny-1). 設(shè)V(t)=U′(t). 則使用文獻(xiàn)[7]中相同辦法,利用常數(shù)變易公式可知問題(3)之解可顯式表示為 (4) 給定正整數(shù)Nt,設(shè) Δt=T/Nt. 對(duì)時(shí)間區(qū)間[0,T]做均勻剖分:tm=mΔt,m=0,1,…,Nt. 由(4)可得如下時(shí)間遞進(jìn)計(jì)算格式: 式中, 當(dāng)r=0,1,2,3 時(shí),記 式中, 定義 式中, 在此基礎(chǔ)上,就可以得到求解(1)的Hermite型快速緊致時(shí)間積分方法如下: 式中, 設(shè)N=max(Nx,Ny),基于FFT算法實(shí)現(xiàn)以上數(shù)值解法,易知在每一時(shí)間步總的計(jì)算復(fù)雜度是O(N2log(N)). 在本節(jié)中,通過數(shù)值算例討論快速緊致時(shí)間積分Hermite格式的收斂性和效率. 在方程(1)中,選取g(u)=u-u3以及適當(dāng)?shù)暮瘮?shù)使得精確解為 u(t,x,y)=cos(x)cos(y)sin(t). 取空間區(qū)域?yàn)棣?(-1,2π-1)2,求解時(shí)間為T=1. 此時(shí)相應(yīng)的邊界條件是非齊次的. 在表1中列出了U和V在不同時(shí)空剖分網(wǎng)格下的L2和L∞誤差、收斂率和CPU時(shí)間. 從中可以看出該方法在空間和時(shí)間方向上都達(dá)到了四階收斂率. 就CPU時(shí)間而言,從表中可以發(fā)現(xiàn),由于使用了FFT算法,即使在空間網(wǎng)格非常細(xì)的情況下,CPU時(shí)間也非常小. 表1 在最終時(shí)刻T=1的誤差、收斂率以及CPU時(shí)間Table 1 Numerical errors,convergence rates and the CPU times at T=12 時(shí)間離散:時(shí)間積分和非線性源項(xiàng)離散
3 數(shù)值實(shí)驗(yàn)