黃愛梅
(福建船政交通職業(yè)學(xué)院,福建 福州 350000)
在工程與物理領(lǐng)域中,偏微分方程是最為重要的數(shù)學(xué)模型,解決了彈性力學(xué)、時間相關(guān)問題、流體力學(xué)和積分方程等方面的科學(xué)問題[1]。多重網(wǎng)格法是求解偏微分方程數(shù)值解的有效方法之一,具有收斂速度快和計算工作量少等優(yōu)點[2]。然而,多重網(wǎng)格法并不適用于求解橢圓界面問題,無法準(zhǔn)確求解界面差分格式的離散方程,需結(jié)合曲面信息和跳躍條件構(gòu)建插值算子進(jìn)行求解[3,4]。在求解偏微分方程時,通過插值算子處理,擬補了傳統(tǒng)有限差分法求解的矩陣大型、稀疏、病態(tài)等缺陷[5]。此外,許多數(shù)學(xué)家根據(jù)不同的插值和限制算子衍生出多種不同形式的瀑布型多重網(wǎng)格法(CMG)來解決橢圓方程的數(shù)值問題[6,7]。例如,賈學(xué)良等采用次插值作為插值延拓算子構(gòu)建了新的瀑布型多重網(wǎng)格法,在容許誤差精度能準(zhǔn)確求出橢圓界面數(shù)值[8]。考慮到一個好的插值算子能為細(xì)層提供較好的初始值,進(jìn)而可以減少磨光迭代步數(shù)[9]。本文采用牛頓二次插值代替?zhèn)鹘y(tǒng)的線性插值,構(gòu)造了一種新瀑布型多重網(wǎng)格法,并給出數(shù)值算例驗證算法的有效性。
考慮如下一維橢圓型問題
(1)
其中p(x)∈C1[a,b];r(x);p(x)≥pmin>0,q(x)≥0。α和β為給定的常數(shù)。
首先將求解區(qū)間[a,b]進(jìn)行剖分,為簡單起見,將區(qū)間[a,b]分成N等份,分點為xi=a+ih(i=0,1,…,N),h=(b-a)/N,xi稱為網(wǎng)點(或結(jié)點、節(jié)點),h稱為步長。然后將微分方程(1)在網(wǎng)點xi處離散化。設(shè)xi(i=0,1,…,N-1)是任一內(nèi)結(jié)點。在點xi處,對充分光滑的函數(shù)u,根據(jù)精度為o(h2)的中心拆分公式有[10]
(2)
(3)
(4)
(5)
(6)
將式(3)-(6)代入式(1)式中,即得二階精度的差分方程
(7)
邊值條件對應(yīng)的差分方程為
u0=α,uN=β
(8)
將式(7)和式(8)寫成如下矩陣形式
Au=g
(9)
其中
(10)
其中g(shù)=(g1+α1α,g2,…gN-2,gN-1+cN-1β)T;u=(u1,u2,…,uN-1)T;
可以驗證,當(dāng)h充分小時,關(guān)系式|bi|≥|ai|+|ci|,i=2,…,N-2,|b1|>|c1|,|bN-1|>|aN-1|成立,也即矩陣A具有嚴(yán)格對角占優(yōu)性。實際上后兩式顯然成立,對第一式,注意h充分小及p(x)≥pmin,必有
因此A是非奇異矩陣,差分方程(9)有唯一解。
多重網(wǎng)格法也稱為多格子方法,是目前應(yīng)用于大型科學(xué)計算的一類有效的、新穎的計算方法,它在理論上是最優(yōu)階的方法,近年來由于大型計算機的迅速發(fā)展和功能的日趨完善,從而使得多格子方法作為最優(yōu)階的算法從理論變?yōu)楝F(xiàn)實,使得許多生產(chǎn)實踐中的實際問題,尤其是求解橢圓型方程邊值問題,其優(yōu)點在于不要求粗網(wǎng)格校正和限制算子。
Aiui=Fi,i=1,2,…,H
(11)
(12)
可以看到,網(wǎng)格層從ZH到Z1,只用了插值與迭代,沒有限制,校正及后磨光,程序比較簡單,并且總的工作量只有O(n)。
瀑布型多重網(wǎng)格法的思想是將粗層上的解逐層插值、磨光,直至最細(xì)網(wǎng)格層為止,為了減少中間網(wǎng)格上的計算量,本文采用步長為4h和h,離散問題(1),形成粗細(xì)兩層網(wǎng)格,而不需要生成步長為2h的中間網(wǎng)格,然后再將粗網(wǎng)上的解插值到細(xì)層,提出了瀑布型兩層網(wǎng)格法。
采用一種有效的插值算子,給出細(xì)層上一個較好的初始值,進(jìn)而減少磨光迭代步數(shù),可以加快瀑布型多重網(wǎng)格法的收斂速度。由于通常線性插值效果一般,導(dǎo)致采用線性插值的瀑布型多重網(wǎng)格法的計算精度一般,為了提高計算精度,本文引入牛頓二次插值作為插值算子,構(gòu)造了一種新的瀑布型兩層網(wǎng)格法。
1.3.1牛頓二次插值算子的構(gòu)造方法
在討論牛頓插值公式之前,先介紹與之相關(guān)的差商的概念及其性質(zhì)。
設(shè)已知x0,x1,x2及f(xi)=yi,i=0,1,2,f(x)在xi點的零階差商f[xi]記為
f[xi]=f(xi)
(13)
f(x)在x0,x1兩點的一階差商f[x0,x1]記為
f(x)在x0,x1,x2三點處的二階差商f[x0,x1,x2]記為
利用差商,來構(gòu)造牛頓二次插值公式。
f(x)=f[x]=f(x0)+(x-x0)f[x,x0]
f[x,x0]=f[x0,x1]+(x-x1)f[x,x0,x1]
依次類推,有
f[x,x0,x1]=f[x0,x1,x2]+(x-x2)f[x,x0,x1,x2]
從而有
(14)
將(14)式中后一式代入前一式便有
f(x)=f[x0]+(x-x0)f[x0,x1]+(x-x0)(x-x1)f[x0,x1,x2]
牛頓二次插值公式為
N2(x)=f[x0]+(x-x0)f[x0,x1]+(x-x0)(x-x1)f[x0,x1,x2],
即
把x0,x1,x2及f(xi)=yi,j=0,1,2代入上式得
(15)
所以,式(15)即為牛頓二次插值公式。
1.3.2新瀑布型兩層網(wǎng)格法
為了驗證本文算法的有效性與準(zhǔn)確性,分別采用如下兩個算例進(jìn)行分析。對以下的兩個算例,均采用中心差分離散,光滑算子為CG迭代,迭代終止條件為‖uk-uk-1‖<10-6,其中k為迭代步,“迭代步”欄中為最細(xì)層的迭代步數(shù),“能量誤差E”為采用不同的插值算子的瀑布型多重網(wǎng)格法得到的數(shù)值解與問題的真解的能量誤差。
算例1.-u″(x)+u(x)=f,x∈[0,1],u(0)=u(1)=0。
其中f=(-4x-2)ex-x2+2,真解u=x2(ex-1)
如表1所示,算例1在進(jìn)行迭代步數(shù)6和構(gòu)建8192個粗層點數(shù)與32767個細(xì)層點數(shù)后迭代終止。牛頓二次插值的能量誤差均小于線性插值的能量誤差,且迭代步數(shù)也相對少,節(jié)省了運算的時間。
表1 采用不同的插值算子的瀑布型兩層網(wǎng)格法對算例1的數(shù)值結(jié)果
算例2.-u″(x)+u(x)=f,x∈[0,1],u(0)=u(1)=0。
其中f=(-2+2x2)sinx-4xcosx-x2+2,真解u=x2(sinx-1)。
從表2可以看出,實驗結(jié)果與算例1類似,對于瀑布型二層網(wǎng)格法,采用牛頓二次插值作為插值算子比線性插值的效果要好一些,甚至能量誤差相差一個數(shù)量級且無限接近問題的真解,充分說明了牛頓二次插值的瀑布型二層算法具有計算精度高,迭代步數(shù)少的優(yōu)點,因此,本文設(shè)計的新瀑布型兩層網(wǎng)格法,進(jìn)一步豐富了求解一維橢圓型問題數(shù)值算法。
表2 采用不同的插值算子的瀑布型兩層網(wǎng)格法對算例2的數(shù)值結(jié)果
對于一維橢圓問題的離散方程組,通過比較牛頓二次插值和線性插值作為插值算子運算過程構(gòu)建了瀑布型二層網(wǎng)格法。在相同的參數(shù)限制條件下,基于牛頓二次插值算子的瀑布型二層網(wǎng)格法具有更低的能量誤差,即算法的精度更高。