廖曉花
(閩南理工學(xué)院 信息管理學(xué)院,福建 石獅 362700)
微分方程和積分方程已經(jīng)廣泛應(yīng)用于量子化學(xué)、流體力學(xué)、聲散射等工程應(yīng)用和科學(xué)計(jì)算領(lǐng)域中[1]。有限差分以及有限元等離散化技術(shù)中的微分方程和積分方程復(fù)線性方程組求解主要包括以下兩類:復(fù)線性方程組,Ax=b;存在多右端項(xiàng)的復(fù)線性方程組,AX=B。其中A∈Cn×n表示非Hermite矩陣,x,b∈Cn,X,B∈Cn×p,p=n。
求解大規(guī)模線性方程組在實(shí)際工程問(wèn)題數(shù)值計(jì)算中所占比重高[2];非線性方程組的高效求解是眾多研究學(xué)者的研究方向,其高效的求解具有較高的應(yīng)用價(jià)值以及理論意義[3]。目前普遍通過(guò)Krylov子空間方法研究存在多右端項(xiàng)以及普通非Hermite線性方程組的求解。
非Hermite線性方程組實(shí)際應(yīng)用中對(duì)計(jì)算規(guī)模、計(jì)算效率以及存儲(chǔ)量等要求較高[4],采用Krylov子空間方法往往無(wú)法滿足這些需求,為此,非Hermite線性方程組的迭代終止條件研究具有較大的必要性。
非Hermite線性方程組求解的預(yù)處理方法可有效提升求解效率[5]。探究非Hermite線性方程組的迭代終止條件,采用預(yù)處理方法完成對(duì)CORS算法的處理后,再利用處理后的CORS算法求解非Hermite線性方程組,使其快速迭代,可提升非Hermite線性方程組的收斂速度、魯棒性以及穩(wěn)定性。
通過(guò)預(yù)處理方法預(yù)先處理非Hermite線性方程組可提升其求解速度[6],然后再將預(yù)處理完成的非Hermite線性方程組利用迭代算法快速求解。
本文采用預(yù)處理方法與實(shí)線性方程組加速求解的方法建立預(yù)處理?xiàng)l件子M-1,令所建立與處理?xiàng)l件子與系數(shù)矩陣A的逆矩陣近似,即M-1≈A-1,且M-1≈(M1M2)-1。獲取的非Hermite線性方程組的CORS方法預(yù)處理公式為
(1)
預(yù)處理具有多個(gè)右端項(xiàng)的非Hermite線性方程組時(shí),可使M1=I,M2=M,利用以上僅考慮右端項(xiàng)的預(yù)處理方法,系數(shù)矩陣內(nèi)奇異值分布較為聚集[7],從而提升迭代算法的收斂速度。
1.1.1 選取預(yù)處理?xiàng)l件子
設(shè)
A=(aij)n×n=D-N。
(2)
式中D=diag(d1,d2,…,dn),且需滿足
那么
A-1=(D-N)-1=(I-D-1N)D-1。
(3)
式中I表示單位矩陣。
已知存在公式:
(I-D-1N)-1≈I+D-1N+…+(D-1N)q-1,
(4)
可得預(yù)處理?xiàng)l件子M-1公式:
M-1=(I+D-1N+…+(D-1N)q-1)D-1。
(5)
式中q≥1。
通過(guò)確定預(yù)處理?xiàng)l件子M-1可知,非Hermite線性方程組計(jì)算量隨著內(nèi)迭代次數(shù)的提升而有所增加[8-9],非Hermite線性方程組預(yù)處理的內(nèi)迭代次數(shù)對(duì)于提升最終計(jì)算的收斂速度極為重要。
1.1.2 預(yù)處理CORS算法
預(yù)處理CORS算法過(guò)程如下:
3)當(dāng)‖rk‖2≤ε‖r0‖2時(shí),終止求解,此時(shí)ε∈R+;否則需求解
4)令k=k+1,返回至步驟2)。
forl=0,1,…,q-1
end
(6)
forl=0,1,…,q-1
end
(7)
迭代次數(shù)范圍固定時(shí),內(nèi)迭代次數(shù)q的增多令系數(shù)矩陣特征值聚集程度有所提升[10-11],令非Hermite線性方程組求解速度有所提升。
基于CORS方法求解非Hermite線性方程組,令非Hermite線性方程組快速滿足迭代終止條件[12]。
廣義CORS方法參量符合公式:
(8)
(9)
j+1過(guò)程。
j+1。
已知公式如下:
(10)
獲取遞推過(guò)程如下:
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
將公式(17)與公式(18)結(jié)合可得公式:
(19)
獲取輔助迭代向量公式為
(20)
可得迭代序列公式如下:
sj=tj-αjApj,
(21)
(22)
(23)
(24)
uj+1=rj+1+βj+1hj,
(25)
(26)
(27)
(28)
以及
(29)
從而得到
(30)
以及
(31)
(32)
以及
(33)
通過(guò)以上推導(dǎo)過(guò)程得到高效迭代終止的非Hermite線性方程組的廣義CORS方法過(guò)程如下:
(1)用x0表示初始值,求解r0=b-Ax0;
(4)求解j=0,1,2,…;
(6)αj=ρj/σj;
(8)sj=tj-αjqj;
(20)uj+1=rj+1+βj+1hj;
計(jì)算結(jié)束。
該方法的誤差界公式為
(34)
在MATLAB環(huán)境下運(yùn)行算例的全部計(jì)算過(guò)程。
已知2個(gè)非Hermite線性方程組:
方程組A:A1x=b1;
方程組B:A2x=b2;
采用隨機(jī)算法求解以上2個(gè)非Hermite線性方程組,結(jié)果如表1所示。
表1 線性方程組求解結(jié)果
由表1可知,采用隨機(jī)算法通過(guò)常用的終止迭代條件求解非Hermite線性方程組將提前終止求解,使獲取的迭代解與精確解相差較大。
將本文方法與TFQMR方法和GCORS2方法對(duì)比,統(tǒng)計(jì)不同方法求解以上公式的迭代過(guò)程計(jì)算量,統(tǒng)計(jì)結(jié)果如表2所示。
表2 不同方法計(jì)算量
表2中,AXPY表示執(zhí)行向量x、y以及純量α的運(yùn)算α×y+x。由表2中統(tǒng)計(jì)結(jié)果可知,本文方法相比于TFQMR方法和GCORS2方法所執(zhí)行AXPY運(yùn)算較少。
設(shè)置停機(jī)準(zhǔn)則TOL為10-5及10-8,得到的數(shù)值結(jié)果如表3所示。
表3 不同方法數(shù)值結(jié)果
由表3可以看出,利用本文方法求解線性方程組的收斂速度明顯高于另2種方法。不同停機(jī)準(zhǔn)則情況下,本文方法所需的迭代步數(shù)以及CPU執(zhí)行時(shí)間明顯低于另2種方法,且可得到最精確的近似解。以上算例計(jì)算結(jié)果表明,利用本文方法,迭代過(guò)程中的殘量范數(shù)較高,具有較快的收斂速度,可在較少迭代次數(shù)情況下快速獲取最優(yōu)解,迭代次數(shù)低、穩(wěn)定性高。
由于非Hermite線性方程組存在于應(yīng)用數(shù)學(xué)、物理學(xué)以及控制論等各類學(xué)科中,所以,非Hermite線性方程組的求解問(wèn)題是應(yīng)用數(shù)學(xué)中的一個(gè)十分重要的分支。但是,由于目前非線性方程組的理論研究還有欠缺,所以其應(yīng)用價(jià)值還不能充分發(fā)揮。本文的主要研究亮點(diǎn)如下:
1)對(duì)CORS方法進(jìn)行預(yù)處理,可提升利用廣義CORS方法求解非Hermite線性方程組的效率、收斂速度,實(shí)現(xiàn)求解結(jié)果的實(shí)時(shí)性;
2)利用殘量多項(xiàng)式建立的廣義CORS求解非線性方程,由于存在不規(guī)則收斂殘量范數(shù),易造成非線性方程解誤差較高、近似解較差的問(wèn)題,而經(jīng)過(guò)本文方法求解后可避免初始誤差加大,進(jìn)一步提升了收斂速度與光滑性;
3) 經(jīng)過(guò)預(yù)處理算法處理的廣義CORS方法求解非Hermite線性方程組時(shí),收斂速度提升至最高,可通過(guò)最小的迭代時(shí)間和迭代次數(shù)實(shí)現(xiàn)快速終止,因此,本文方法在求解結(jié)果精確度與計(jì)算量均具有一定的優(yōu)勢(shì)性。