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