具有2×2分块结构的线性系统的一种局部HSS分裂迭代求解系统的制作方法

文档序号:16784489发布日期:2019-02-01 19:20阅读:349来源:国知局

本发明涉及一种求解系统,具体涉及一种具有2×2分块结构的线性系统的一种局部hss分裂迭代求解系统。



背景技术:

2×2块结构化线性系统的数值求解问题属于线性代数方程组,它广泛存在于科学计算的很多实际问题中,如流体动力学(stokes问题)、最小二乘问题、优化问题和椭圆型偏微分方程的混合有限元离散以及图像处理问题等。求解一般线性系统的方法,包括直接法和迭代法,均可用于求解2×2块结构化线性系统,然而由于不能充分利用系数矩阵的2×2分块结构,一般都不是最优的。

迭代法求解2×2块结构线性系统的方法很多,早在1958年arrow为解决优化问题提出了uzawa方法。该方法的优点是简单且易于计算机实现,缺点是在每步迭代都存在矩阵求逆操作而致使计算机耗时较长。因此,在避免、简化矩阵的求逆操作和优化矩阵条件方面一直以来受到了研究人员的普遍关注,也得到了很多有益的研究成果,如预处理uzawa方法、不精确uzawa方法和二者结合的参数不精确uzawa(piu)方法以及改善近似计算schur补的一系列方法。然而这些方法都在不同程度上要求系数矩阵(1,1)块或schur补矩阵的逆矩阵。



技术实现要素:

为解决上述问题,本发明提供了一种具有2×2分块结构的线性系统的一种局部hss分裂迭代求解系统,结构比较简单,易于实现,计算量和存储量比较少,方法比较健壮,适用性较广,可应用于流体力学中二维stokes问题的数值求解问题。

为实现上述目的,本发明采取的技术方案为:

具有2×2分块结构的线性系统的一种局部hss分裂迭代求解系统,该系统采用以下求解算法:

s1、对非hermitian正定的(1,1)块矩阵a进行hermitian和反hermitian矩阵分裂,得到hermitian部分h矩阵和反hermitian部分s矩阵;对矩阵h进行平移或加上h的常数倍形成分裂矩阵的(1,1)块矩阵;

s2、选择对称正定的易于求解的矩阵作为分裂矩阵的(2,2)块;

s3、取所得的分裂矩阵的(1,1)块矩阵和(2,2)块矩阵,构造系数矩阵整体矩阵分裂;

s4、构造得到具体的分裂迭代方法。

进一步地,所述整体分裂是对角线为hermitian正定矩阵的块三角分裂。

进一步地,在整体矩阵分裂中,所述(2,2)块可以根据问题自由选择但必须是对称正定的。

进一步地,所述(1,1)块与(2,2)块通常用数量矩阵来改善迭代矩阵的性质,节约计算时间复杂度且不明显增加空间复杂度。

进一步地,所述迭代方法可以转换为残量更新模式。

进一步地,所述问题必须具有2×2分块结构,对(1,1)块矩阵进行hss分裂,构造(2,2)块和(2,1)块以改善矩阵性质。

上述方案中,能够加快结构化线性系统的数值求解,进而促进微分方程的数值求解问题。能够为数值求解线性系统提供方法选项,提高特殊结构的线性系统的求解效率。

具体实施方式

为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的具有2×2分块结构的线性系统的一种局部hss分裂迭代求解系统采用以下求解算法:

(1)根据文献(z.-z.bai,b.n.parlett,z.-q.wang,ongeneralizedsuccessiveoverrelaxationmethodsforaugmentedlinearsystems,numerischemathematik102(2005)1-38.)对二维stokes问题进行数值离散,得到我们问题的研究对象——具有2×2块结构的线性系统。分析系数矩阵性质,该线性系统的系数矩阵具有明显的2×2分块结构,即其中a∈rn×n,b∈rm×n,c∈rm×m,且矩阵a是非hermitian正定的,即正实的;(2,2)块矩阵c要么是零矩阵要么是对称正定矩阵;且(1,1)块矩阵a维数要明显高于(2,2)块矩阵c的维数。

(2)根据文献(m.-q.jiang,y.cao,onlocalhermitianandskew-hermitiansplittingiterationmethodsforgeneralizedsaddlepointproblems,journalofcomputationalandappliedmathematics231(2009)973-982.)对非hermitian正定的(1,1)块矩阵a进行hermitian和反hermitian矩阵分裂,得到hermitian部分h矩阵和反hermitian部分s矩阵,即a=h+s。显然此时的矩阵h是hermitian正定的。然后对其进行矩阵平移或加上h的常数倍形成分裂矩阵的(1,1)块矩阵,即q1=h+αi或q1=h+αh=(1+α)h。

(3)对(2,2)块是零矩阵的情形,选择性质较好的矩阵作为(2,2)块矩阵,方便求解第二个变量。典型的选择有数量矩阵αi和对称正定矩阵,如β(bb*)(bq1b*)-1(bb*)。且当q1=αi时,此时的(2,2)块矩阵具有简单形式β(bb*)。

(4)取前面分析得到的(1,1)块和(2,2)块矩阵,构造系数矩阵整体矩阵分裂,如

这里为改善迭代矩阵性质和节省迭代运算量,对分裂矩阵的(2,1)块增加了合适矩阵q3。其通常选择方法包括q3=-tb或者q3=-tq2b。

(5)基于软件平台编制程序,进行具体计算。

i)数值离散二维stokes问题得到具有2×2块结构的线性系统,即

分别是矩阵a的hermitian和反hermitian部分,将矩阵a,b,c,h,s存入计算内存;

ii)构造改善(1,1)块性质的矩阵q1。令q1=αin或者q1=αh。

iii)构造性质较好的(2,2)块矩阵q2,方便求解线性方程组中第二个变量y。令q2=βin或者q2=β(bb*)(bq1b*)-1(bb*)。为消除q1中参数α带来的影响,此处的q1可直接取为in或h,得到的q2=β(bb*)或q2=β(bb*)(bhb*)w1(bb*)。

iv)构造矩阵分裂设计迭代法

取初值0=x(0)∈rn,0=y(0)∈rm,进行迭代直到满足迭代停止条件其中

vi)为节省计算量,可以将前一步中的直接计算转换为残量跟新模式:

给定初值x(0)=0,y(0)=0,计算参量r1(k)=b1-ax(k)-b*y(k)求解

v)根据计算效果,经验选取迭代所需参数α和β的最优数值。

实施例1

按照技术方案和计算流程所述。首先按照文献方法对二维的stokes方程进行数值离散,得到具有2×2分块结构的线性系统

其中这里,均是三对角矩阵。

然后,将系数矩阵的(1,1)块矩阵a进行hss分裂,取其hermitian部分然后根据情况选择合适的hermitian正定的矩阵q1=αin或者q1=αh已改善整体迭代矩阵性质;

由于所得系数矩阵的(2,2)块矩阵为零矩阵,构造对称正定的矩阵q2=βin,q2=β(bb*)和q2=β(bb*)(bhb*)-1(bb*)。

其次,根据第一步的结果,构造矩阵分裂得到迭代方法

为进一步改善迭代矩阵的收敛性质,给迭代矩阵(2,1)块添加新的部分q3得到新的迭代方法

再次,具体的选取迭代矩阵q1,q2,q3,不仅能得到包括文献(m.-q.jiang,y.cao,onlocalhermitianandskew-hermitiansplittingiterationmethodsforgeneralizedsaddlepointproblems,journalofcomputationalandappliedmathematics231(2009)973-982.)中提出的方法而且会得到新的方法,如表1所示。

表1.各种算法中迭代矩阵q1,q2,q3的取法

最后,编写基于软件平台的计算机程序,实现我们的方法。

具体迭代参数α,β,t的选取参数和计算结果如表2-表5所示,其中符号“-”表示没有该参数。

表2.二维stokes问题的数值结果(m=16,n=32).

表3.二维stokes问题的数值结果(m=64,n=128).

表4.二维stokes问题的数值结果(m=256,n=512).

表5.二维stokes问题的数值结果(m=576,n=1152).

从表中可以看出,发明的方法对于求解二维stokes问题是非常有效的。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1