韓冰冰
(盤錦職業(yè)技術(shù)學(xué)院 基礎(chǔ)部,遼寧 盤錦 124000)
泊松方程是一類重要的橢圓型偏微分方程,廣泛應(yīng)用于電學(xué)、磁學(xué)、力學(xué)、熱學(xué)、靜電場(chǎng)問題、溫度擴(kuò)散問題等領(lǐng)域的研究與計(jì)算,在學(xué)科的基礎(chǔ)理論研究中占有重要的地位。多重網(wǎng)格法是求解偏微分方程數(shù)值解常用的一類方法,可分為代數(shù)多重網(wǎng)格法和幾何多重網(wǎng)格法,對(duì)于代數(shù)多重網(wǎng)格法,徐小文討論了各向異性四邊形網(wǎng)格下求解線性有限元方程的代數(shù)多重網(wǎng)格法[1]。李明等人針對(duì)三維泊松方程,采用四面體元離散,提出了一類代數(shù)兩重網(wǎng)格法[2]。 目前,瀑布型多重網(wǎng)格法是幾何多重網(wǎng)格法的研究熱點(diǎn)之一。李郴良等人結(jié)合外推技巧提出了一類求解橢圓型方程的新的瀑布型多重網(wǎng)格法[3]。趙旺等人討論了三次插值算子對(duì)瀑布型多重網(wǎng)格法的作用[4]。李明等人結(jié)合新外推公式和經(jīng)典外推公式提出了基于外推公式的瀑布型多重網(wǎng)格法[5],并針對(duì)二次Lagrangian有限元方程,提出了一類瀑布型多重網(wǎng)格法[6]。禹海雄對(duì)幾類非線性橢圓問題提出了一系列多重網(wǎng)格法[7]。本文基于前人的部分思想,針對(duì)選用合適的一對(duì)步長,使用矩形有限元離散泊松方程得到的粗網(wǎng)格方程及細(xì)網(wǎng)格方程,采用三次樣條插值算子作為插值算子,選用共軛梯度法作為在細(xì)層上的磨光算子,提出基于矩形有限元格式的瀑布型二重網(wǎng)格法,針對(duì)不同粗細(xì)網(wǎng)格情況下給出了相應(yīng)的數(shù)值實(shí)驗(yàn)。
1.1.1 泊松方程的矩形有限元離散
考慮如下二維泊松問題
{-Δu(x,y)=f(x,y),inΩu=0,on?Ω
(1)
Auuh=Fh
(2)
1.1.2 共軛梯度迭代法
共軛梯度法(CG)[8]又稱共軛斜量法是一種求解線性方程組的迭代格式,不必選擇迭代參數(shù)而收斂速度快,廣泛應(yīng)用于求解對(duì)稱正定方程組
Au=f
(3)
該算法的具體步驟如下:
第一步:給定初始向量u(0),計(jì)算
p(0)=r(0)=f-Au(0)
第二步:對(duì)于k=1,2,…,n有
p(k+1)=r(k+1)+βkp(k)
插值算子的插值效率對(duì)瀑布型多重網(wǎng)格法有著重要的影響。文中使用三次樣條插值作為插值算子。
1.2.1 三次樣條函數(shù)的定義
定義1[8]若函數(shù)S(x)∈C2[a,b],且在每個(gè)小區(qū)間[xi,xi+1]上是三次多項(xiàng)式,其中xi∈[a,b],i=0,1,2,…,n是給定節(jié)點(diǎn),則稱節(jié)點(diǎn)x0,x1,…,xn上的三次樣條函數(shù)。若在節(jié)點(diǎn)xi上給定函數(shù)值yi=f(xi)(i=0,1,…,n),且S(xi)=yi(i=0,1,2,…,n)成立,則稱S(x)為三次樣條插值函數(shù)。
定義2 已知yi=f(xi),其中xi∈[a,b],i=0,1,2,…,n,S(x)是[a,b]上的函數(shù),若滿足
1)S(xi)=f(xi),i=0,1,2,…,n;
2)Sk(x)=S(x)|[xk-1,xk]為三次多項(xiàng)式;
3)S(x)∈C2[a,b],二階導(dǎo)數(shù)(S″(x))連續(xù),一階導(dǎo)數(shù)(S′(x))相等,
則稱S(x)為三次樣條插值函數(shù)。
1.2.2 三次樣條插值算子S(x)的構(gòu)造
采用待定系數(shù)法構(gòu)造S(x),設(shè)Sk(x)=akx3+bkx2+ckx+dk,即
從定義2可知,要求出S(x),在每個(gè)小區(qū)間[xi,xi+1]上要確定4個(gè)待定系數(shù),共有n個(gè)小區(qū)間,故應(yīng)確定4n個(gè)參數(shù),于是S(x)有4n個(gè)待定系數(shù),需構(gòu)造4n個(gè)方程即可確定S(x)。因條件1)有n+1個(gè)方程,條件3)為
為了檢驗(yàn)該算法的有效性及其插值算子的效率,選用的對(duì)比算法也為瀑布型兩重網(wǎng)格法,其插值算子為線性插值。兩種算法的粗細(xì)網(wǎng)格相同,磨光算子都為共軛梯度法。使用矩形有限元法離散以下算例,形成對(duì)應(yīng)的粗細(xì)網(wǎng)格空間。為便于描述,約定如下標(biāo)記:“誤差”表示采用算法求出的數(shù)值解與問題的真解的2-范數(shù)誤差,“步數(shù)”表示用CG磨光次數(shù),“時(shí)間”表示迭代所需要的時(shí)間(單位:秒),“k”表示粗網(wǎng)格步長與細(xì)網(wǎng)格步長之比,即k=H/h。
算例1
f(x,y)=sin(y)ex(1-x2)(1-y2)-4sin(y)exx(1-y2)+2sin(y)(1-ex)(1-y2)+sin(y)(1-ex)(1-x2)(1-y2)+4cos(y)(1-ex)(1-x2)y+2sin(y)(1-ex)(1-x2)
真解為:u(x,y)=sin(y)(1-ex)(1-x2)(1-y2);Ω=(0,1)×(0,1)。
表1 對(duì)比算法與改進(jìn)算法對(duì)算例1的數(shù)值結(jié)果
算例2
f(x,y)=2π(2sin(x2π)x2πsin(y2π)
-cos(x2π)sin(y2π)+2sin(x2π)sin(y2π)y2π
-sin(x2π)cos(y2π))
真解為:u(x,y)=sin(x2π)sin(y2π);Ω=(0,1)×(0,1)。
表2 對(duì)比算法與改進(jìn)算法對(duì)算例2的數(shù)值結(jié)果
由表1和表2可以看出,只需要使用節(jié)點(diǎn)較少的粗網(wǎng)格插值算子、磨光算子就能有效求出節(jié)點(diǎn)較多細(xì)網(wǎng)格上的數(shù)值解,從數(shù)值結(jié)果可以看出,使用不同的插值算子細(xì)層網(wǎng)格上的磨光步數(shù)有所不同。與對(duì)比算法相比較,改進(jìn)算法的計(jì)算時(shí)間要更短一些。數(shù)值實(shí)驗(yàn)表明,該算法能有效求解矩形有限元格式下二維泊松方程的數(shù)值解。
并非所有的泊松方程都有解析解,因此尋求高精度的數(shù)值解成為目前研究的重要內(nèi)容之一。文中采用矩形有限元方法離散泊松方程,形成粗網(wǎng)格和細(xì)網(wǎng)格,對(duì)粗網(wǎng)格精確求解,然后采用三次樣條插值為細(xì)層提供初始值,構(gòu)造出一類求解二維泊松方程的瀑布型二重網(wǎng)格法,并結(jié)合數(shù)值實(shí)驗(yàn)討論不同粗細(xì)網(wǎng)格情況下算法的計(jì)算效率。