大型稀疏矩阵的LU分解及特征值求解-bestparallelsparsesolver

合集下载

浅谈矩阵的LU分解和QR分解及其应用

浅谈矩阵的LU分解和QR分解及其应用

浅谈矩阵的LU 分解和QR 分解及其应用基于理论研究和计算的需要,往往有必要把矩阵分解为具有某种特性的矩阵之积,这就是我们所说的矩阵分解.本文将介绍两种常用的矩阵分解方法,以及其在解线性方程组及求矩阵特征值中的应用.1.矩阵的LU 分解及其在解线性方程组中的应用 1.1 高斯消元法通过学习,我们了解到利用Gauss 消去法及其一些变形是解决低阶稠密矩阵方程组的有效方法.并且近些年来利用此类方法求具有较大型稀疏矩阵也取得了较大进展.下面我们就通过介绍Gauss 消去法,从而引出矩阵的LU 分解及讨论其对解线性方程组的优越性. 首先通过一个例子引入:例1,解方程组(1.1)(1. 2)(1.3)解. 1Step (1.1)(2)(1.3)⨯-+ 消去(1.3)中未知数,得到23411x x --=- (1.4)2Shep . (1.2)(1.4)+ 消去(1.4)中的未知数2x有12323364526x x x x x x ++=-=-=-⎧⎪⎨⎪⎩ 显然方程组的解为*x =123⎛⎫ ⎪ ⎪ ⎪⎝⎭上述过程相当于 111604152211⎛⎫ ⎪- ⎪ ⎪-⎝⎭~111604150411⎛⎫ ⎪- ⎪ ⎪---⎝⎭~111604150026⎛⎫⎪- ⎪ ⎪--⎝⎭2-()+ ()i i r 表示矩阵的行由此看出,消去法的基本思想是:用逐次消去未知数的方法把原方程化为与其等价的三角方程组.下面介绍解一般n 阶线性方程组的Gauss 消去法.设111n n1nn a a a a A ⎛⎫ ⎪=⎪ ⎪⎝⎭ 1n x X x ⎛⎫ ⎪= ⎪ ⎪⎝⎭ 1n b b b ⎛⎫ ⎪= ⎪ ⎪⎝⎭则n 阶线性方程组AX b = (1.5)并且A 为非奇异矩阵.通过归纳法可以将AX b =化为与其等价的三角形方程,事实上: 及方程(1.5)为()()11A X b =,其中()1A A = ()1b b =(1) 设(1)110a≠,首先对行计算乘数()()11i1111i a m m =.用1i m -乘(1.5)的第一个方程加到第()2,3,,i i n =⋯个方程上.消去方程(1.5)的第2个方程直到第n 个方程的未知数1x .得到与(1.5)等价的方程组()()()11n 12n 111nn 0a a x x a ⎛⎫⋯⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⋯⎝⎭⎝⎭=()()112n b b ⎛⎫ ⎪⎪ ⎪⎝⎭简记作()()22Ab = (1.6)其中()()()()()()211211111 ijij i ij i i i a m b b m a a b =-=- (2) 一般第()11k k n ≤≤-次消去,设第1k -步计算完成.即等价于()()k k AX b = (1.7)且消去未知数121,,,k x x x -⋯.其中()()()()()()()()()()1111112122222k k k k kk knk nknna n n a a a a a A a a a a ⎛⎫⎪ ⎪⎪ ⎪= ⎪ ⎪ ⎪ ⎪⎝⎭设()0k kk a ≠计算()() (i=/1,,)k k ik ikkkaa k m n =+⋯,用()()(1,,)a n ikik k kki k n a m ==+⋯消去第1k +个方程直到第n 个方程的未知数k x .得到与(1.7)等价的方程组()()1k 1k A X b ++= 故由数学归纳法知,最后可以把原方程化成一个与原方程等价的三角方程组.但是以上分析明显存在一个问题,即使A 非奇异也无法保证()0i ii a ≠,需要把非奇异的条件加强.引理1 约化主元素()01,,)i ii a k ≠=⋯(i 的充要条件是矩阵A 的顺序主子式0i D ≠.即1111110,0ikk kkk a a D a a D a =≠=≠⋯证明 利用数学归纳法证明引理的充分性.显然,当1k = 时引理的充分性是成立的,现在假设引理对1k -是成立的,求证引理对k 亦成立.有归纳法,设()()01,21iii i a k ≠=⋯-于是可用Gauss 消去法将中,即()()()()()()()()()()()11111121n22222n 1k k k k k kk knnknn a a a a a A a a a a A ⎛⎫ ⎪ ⎪⎪ ⎪→= ⎪ ⎪ ⎪ ⎪⎝⎭即()()()()()()()()11121231112211223112233222a a D a D a a a a a ===()()()()()()()()()11111122212222k 11122k k k kkk kka a a a a a D a a a ==⋯ (1.8) 由设0(1,,)i i D k ≠=⋯及式(1.8)有()0k kk a ≠显然,由假设()()01,2iiii k a ≠=⋯,利用(1.8)亦可以推出0(1,,)i i D k ≠=⋯ 从而由此前的分析易得;定理1 如果n 阶矩阵A 的所有顺序主子式均不为零,则可通过Gauss 消去法(不进行交换两行的初等变换),将方程组(1.5)约化成上三角方程组,即()()()()()()()()()1111111121122222222b b b n n n n nn n n a a a x x a a x a ⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎪⎝⎭⎝⎭⎝⎭ (1.9) 1.2 矩阵LU 分解从而由以上讨论即能引出矩阵的LU 分解,通过高等代数我们得知对A 施行行初等变换相当于用初等矩阵左乘A ,即()()()()121211L A Lb A b == 其中 211n11101L m m ⎛⎫⎪- ⎪= ⎪⎪-⎝⎭一般第k 步消元,,相当于()()()()11k kk k k kL A A L b b ++==重复这一过程,最后得到()()()()11211121n n n n Ab L L L A L L L b --⎧⋯=⎪⎨⋯=⎪⎩ (1.10) 其中k 1,111m 1n k k km L +⎛⎫ ⎪ ⎪ ⎪=⎪- ⎪ ⎪ ⎪ ⎪-⎝⎭将上三角形矩阵()n A U 记作,由式(1.9)得到111121=U n A L L L LU ----⋯=,其中211111211211m 1n n n m L L m L L ----⎛⎫⎪⎪=⋯= ⎪⎪⎝⎭由以上分析得;定理2 (LU 分解) 设A 为n 阶矩阵,如果A 的顺序主子式i 0(1,2,,1)D i n ≠=-.则A 可分解为一个单位下三角矩阵L 和一个上三角矩阵U的乘积,且这种分解是唯一的.证明 由先前的分析得出存在性是显然的,即A LU =.下证唯一性,设A LU CD == 其中L , C 为单位下三角矩阵,U ,D 为上三角矩阵.由于1D -11D C L U --=上式右端为上三角矩阵,左端为单位下三角矩阵,从而上式两端都必须等于单位矩阵,故U D =,L C =.证毕.例2 对于例子1 系数矩阵矩阵111041221A ⎛⎫ ⎪=- ⎪ ⎪-⎝⎭由Gauss 消去法,得结合例1,故100111010041211002A LU ⎛⎫⎛⎫⎪⎪==- ⎪⎪ ⎪⎪--⎝⎭⎝⎭对于一般的非奇异矩阵,我们可以利用初等排列矩阵kki I (由交换单位矩阵I的第k 行与第k i 行得到),即()()()()()()()()111212111111,,kk k k k ki k i k k i i k A L b L I A I b L I A I b A L b++⎧==⎪⎨==⎪⎩ (1.11) 利用(1.11)得()1111,11n nn n i i L I L U I A A ---==.简记做.其中下面就n 情况来考察一下矩阵.()()4321444343544332211443443243)(i i i i i i i i i i I L I L I L I A I L I I L I I A A L L I ===⨯4324324321432()i i i i i i I I I L I I I 43214321 )(i i i i I I I I A从而记从而容易的为单位下三角矩阵,总结以上讨论可得如下定理.定理3 如果A 非奇异矩阵,则存在排列矩阵P 使PA LU = 其中L 为单位下三角矩阵,U 为上三角矩阵.1.3 矩阵LU 分解的应用以上对非奇异矩阵A 的LU 分解进行了全面的讨论,一下我们就简单介绍一下应用.对于矩阵A 一旦实现了LU 分解,则解线性方程的问题,便可以等价于:(1)Ly b = 求y (2)=Ux y , 求x (1.12)即,设A 为非奇异矩阵,且有分解式A LU =,其中L 为单位下三角矩阵,U 为上三角矩阵。

稀疏矩阵的特征

稀疏矩阵的特征

稀疏矩阵的特征稀疏矩阵:揭示信息世界中的隐藏规律在信息时代的浪潮下,海量数据的快速传输和处理成为了当下亟待解决的难题。

而稀疏矩阵作为一种重要的数据表示方式,为我们破解信息世界中的隐藏规律提供了有力的工具。

本文将从稀疏矩阵的定义、应用和优势三个方面来探讨其在信息领域的价值。

一、稀疏矩阵的定义稀疏矩阵是指在一个二维矩阵中,大部分元素为0,只有少数非0元素的矩阵。

相对于稠密矩阵,稀疏矩阵具有更高的存储效率和计算效率。

常见的表示稀疏矩阵的方法有三元组表示法、行压缩存储和列压缩存储等。

二、稀疏矩阵的应用1. 图像处理在图像处理中,稀疏矩阵可以用来表示图像的一个重要特征——纹理。

通过提取图像的纹理信息,可以实现图像的分割、识别和重构等操作。

例如,在医学图像的分析中,可以利用稀疏矩阵来提取肿瘤的纹理特征,从而实现对肿瘤的自动检测和诊断。

2. 自然语言处理在自然语言处理中,稀疏矩阵可以用来表示文本的词袋模型。

将文本中的每个词作为矩阵的列,将每个文本样本表示为一个向量,其中非零元素表示该词在文本中的出现次数或权重。

通过对文本矩阵进行聚类、分类和关键词提取等操作,可以实现文本的自动分类和信息检索。

3. 推荐系统在推荐系统中,稀疏矩阵可以用来表示用户和物品之间的关系。

将用户和物品分别表示为矩阵的行和列,将用户对物品的评分作为矩阵中的非零元素。

通过对稀疏矩阵进行矩阵分解和推荐算法,可以实现个性化推荐和精准营销。

三、稀疏矩阵的优势1. 存储效率高由于稀疏矩阵中大部分元素为0,只有少数非零元素,所以可以采用压缩存储的方式,节省存储空间。

相比于稠密矩阵,稀疏矩阵可以节省大量的存储资源。

2. 计算效率高由于稀疏矩阵中大部分元素为0,所以在进行矩阵运算时可以忽略这些0元素,减少了计算量。

对于大规模矩阵的计算,稀疏矩阵的计算效率远高于稠密矩阵。

3. 适用于高维数据在高维数据分析中,数据的维度往往非常高,导致数据稀疏性增加。

而稀疏矩阵可以很好地处理高维稀疏数据,减少了计算和存储的复杂度。

求解线性方程组的LU分解法

求解线性方程组的LU分解法
[数值算法]求解线性方程组的LU分解法
由于求解三解方程较易,所以,考虑将系数矩阵A分解成两个三角矩阵的乘积,
即:A=LU的形式
其中,L为下三解矩阵,U为上三解矩阵,则线性方程组:
Ax=b
可改写为LUx=b
令Ux=y
得Ly=b
然后,用前代方法求Ly=b得列矩阵y,再用回代方法求Ux=b,得到的列矩阵x即为所求的线性方程组的解.
free(yAnsList);
}
/*The matrix’s LUPation Method
This version is implemnted by EmilMatthew 05/8/19
You can use these code freely , but I'm not assure them could totally fit your needs.
/*memory apply*/
matrix_L=(Type**)malloc(sizeof(Type*)*len);
matrix_U=(Type**)malloc(sizeof(Type*)*len);
for(i=0;i<len;i++)
{
matrix_L[i]=(Type*)malloc(sizeof(Type)*len);
}
/*Check the input data*/
showArrListFloat(bList,0,len);
show2DArrFloat(matrixArr,len,len);
#if DEBUG
printf("\n*******start of test program******\n");
printf("now is runnig,please wait...\n");

大型稀疏矩阵

大型稀疏矩阵

摘要矩阵是高等代数的重要组成部分,是许多数学分支研究的重要工具。

并且矩阵作为数学工具之一有其重要的使用价值,它常见于很多学科中,如:线性代数、线性规划、统计分析,以及组合数学等。

在实际生活中,很多问题都可以借用矩阵抽象出来进行表述并进行运算,如在各循环赛中常用的赛况表格等,矩阵的概念和性质相对矩阵的运算较容易理解和掌握。

在矩阵的运算和应用中,仅逆矩阵的求解方法及算法问题就值得我们去好好研究,尤其是对大型矩阵的逆矩阵的研究。

近年来,随着互联网的高速发展,计算机内部的运算量也急剧增加,如何把浩瀚的数据准确地计算出结果,并且加快它的计算速度,己成为一个备受关注的研究课题。

随着计算机应用领域的发展,逆矩阵运算的需求越来越大。

现阶段大型逆矩阵运算都是由软件实现,如Matlab等数学软件。

逆矩阵运算软件的普及,将使计算机的逆矩阵运算性能得到几何级数的提高。

伴随矩阵作、初等变换等算法作为逆矩阵运算的一个重要组成部分,对其研究的意义也就很大。

关键词:逆矩阵求逆算法Matlab7.0 广义矩阵AbstractMatrix is an important part of higher algebra , is an important tool in many branches of mathematics research. And matrix math tools as one of its important value in use, which is common in many disciplines , such as: linear algebra, linear programming , statistical analysis, and the combination of mathematics . In real life, many problems can be abstracted to borrow matrix representation and arithmetic , as commonly used in various forms such as round robin outs , concepts, and the relative nature of the matrix matrix operation easier to understand and master. In computing and application of the matrix , only the methods and algorithms for solving inverse problems in respect deserving of our good research, especially large-scale study of the inverse of a matrix . In recent years , with the rapid development of the Internet , the computer's internal computation have increased dramatically, how to calculate accurately the vastness of the data results and accelerate its computational speed has become a research topic of concern . With the development of computer applications , the demand is growing inverse matrix calculation . Large inverse matrix calculation stage is implemented by software, such as Matlab and other mathematical software. Universal inverse matrix calculation software , will enable the inverse matrix operation improved computer performance exponentially . Adjoint matrix for , elementary algorithms such as inverse transform matrix operation is an important part of their research also great significance .Key Words:inverse matrix inversion algorithm Matlab7.0 generalized matrix大型稀疏矩阵快速求逆算法的研究本文首先介绍了逆矩阵的定义以及逆矩阵的相关性质。

大型稀疏矩阵的LU分解及特征值求解-bestparallelsparsesolver

大型稀疏矩阵的LU分解及特征值求解-bestparallelsparsesolver
• 基本算法
利用稀疏矩阵的特性,得到一系列密集子阵(波前)。将LU分解 转化为对这些波前的装配,消去,更新等操作。
• 多波前法的优点
波前是dense matrix ,可直接调用高性能库(BLAS等) 密集子阵可以节省下标存储 提高并行性
• 目前主要的求解器
UMFPACK,,GSS,MUMPS,PARDISO, WSMP,HSL MA41等
GSS1.2
15秒
2012
3.0G 4核
GSS 2.34秒ຫໍສະໝຸດ 2014i7 8核
GSS 2.4
1秒
• 硬件的发展 CPU,内存等
• 稀疏算法逐渐成熟
稀疏排序,密集子阵 multifrontal ,supernodal…
• 数学库
BLAS,LAPACK

稀疏LU分解算法的关键
稀疏LU分解 (不考虑零元的)LU分解 1 零元是动态的概念,需要稀疏排序,减少注入元(fill-in)
• 直接法基于高斯消元法,即计算A的LU分解。A通常要经过一系列置换排 序,可归并为左置换矩阵P,右置换矩阵Q。基本步骤如下: 1)符号分析: 得到置换排序矩阵 P Q
2)数值分解:
3)前代 回代:
I.S.Duff, A.M.Erisman, and J.K.Reid. Direct Methods for Sparse Matrices. London:Oxford Univ. Press,1986. J.J.Dongarra,I.S.Duff, ... Numerical Linear Algebra for High-Performance Computers. G.H.Golob, C.F.Van loan. Matrix Computations. The Johns Hopkins University Press. 1996

超大规模稀疏矩阵计算方法 英文文献

超大规模稀疏矩阵计算方法 英文文献

超大规模稀疏矩阵计算方法英文文献Dealing with large-scale sparse matrix calculations can be a challenging task for researchers and engineers. The sparse nature of these matrices, where most elements are zero, requires specialized techniques to efficiently compute operations such as matrix multiplication, inversion, and decomposition. This presents a unique set of challenges that must be addressed to ensure accurate results while minimizing computational resources.应对超大规模稀疏矩阵计算对于研究人员和工程师来说可能是一个具有挑战性的任务。

这些矩阵的稀疏性质,即大多数元素为零,需要专门的技术来高效地计算矩阵乘法、求逆和分解等运算。

这提出了一系列独特的挑战,必须解决以确保准确的结果同时最大程度地减少计算资源的使用。

One common approach to dealing with large sparse matrices is to use iterative methods, such as the Conjugate Gradient Method or the GMRES method. These methods are well-suited for sparse matrices because they only require access to the non-zero elements of the matrix, reducing the overall computational cost. By iterativelyrefining the solution, these methods can converge to an accurate result without explicitly storing the entire matrix in memory.处理大规模稀疏矩阵的一种常见方法是使用迭代方法,如共轭梯度法或GMRES方法。

稀疏矩阵 lu分解

稀疏矩阵 lu分解

稀疏矩阵 lu分解稀疏矩阵LU分解稀疏矩阵LU分解是一种用于解决稀疏矩阵线性方程组的方法。

稀疏矩阵是指矩阵中绝大多数元素为零的矩阵。

在实际应用中,稀疏矩阵的出现是很常见的,比如图像处理、网络分析等领域。

LU分解是将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积的过程。

在稀疏矩阵的情况下,传统的高斯消元法可能会导致大量的计算浪费,因此稀疏矩阵LU分解成为一种更高效的方法。

稀疏矩阵LU分解的基本思想是通过选取适当的行交换和列交换来减小矩阵的非零元素个数,使得原矩阵中的非零元素位于LU分解后上三角或下三角矩阵的主对角线上。

在LU分解过程中,需要注意保持矩阵乘积不变,即A = LU。

以下是稀疏矩阵LU分解的具体步骤:1. 初始化:设置L为单位下三角矩阵,U为原矩阵A的副本。

2. 确定主元:选择A中列主元最大的行作为主元所在的行。

3. 行交换:将主元所在行与第一行交换,并更新L和U的元素。

4. 列交换:将主元所在列与第一列交换,并更新L和U的元素。

5. 更新矩阵:通过高斯消元法将第一列的非零元素置为零,并更新L和U的元素。

6. 迭代:对剩余的子矩阵重复上述步骤,直到得到完整的LU分解。

稀疏矩阵LU分解的核心优势在于减小计算量和存储空间的需求。

通过行交换和列交换,可以将稀疏矩阵的非零元素移动到主对角线上,使得后续的高斯消元过程更加高效。

此外,LU分解可以将复杂的线性方程组问题转化为更简单的求解过程,提高了解决问题的效率。

总结起来,稀疏矩阵LU分解是一种高效解决稀疏矩阵线性方程组的方法。

通过确定主元、行交换和列交换的方式,可以降低计算复杂度和存储空间的需求。

稀疏矩阵LU分解在各种应用领域中都有重要的意义,可以加快问题求解的速度和效率。

第六章 解大型稀疏线性方程组的迭代法

第六章 解大型稀疏线性方程组的迭代法
x2 (k) 0 1.1 00..9966 00..998895915.001915 .000015 x3 (k) 0 00..66 1.02 1.004050..9999 64641.000015
且有 x(5) x 0.0007
2021/4/26
(2)G-S迭代公式
xx12((kk 11))
(8x2(k) x3(k))/8 (112x1(k1) x3(k))/1
求近似解的方法,称为迭代法(或称为一阶定常迭代法)。
(2)如果对任意初始近似 x(0,) 都有 limx(k) x*,称迭代法
(1.10)为收敛,否则称迭代法为发散。 k
迭代法研究的问题:
§2
(1)构造各种解 Axb的有效迭代法(有效:x(k) 收敛)。
(2)研究迭代法的收敛性及收敛速度。
§3
注:(1.10)为迭代公式,简记为:x ( 1 k ) B ( kf x ( ) k , 0 , • 1 ,2 , ) 。
2.2 高斯-塞德尔迭代法(G-S) ji
(优1)点G-:S迭代存xx i(贮( 0k ) 1 少)( x;1a (1 0i),i( b i xni(j 0 1 1 ))a Tix jj(Gk 1 -)S 迭j n i代 1 a 阵ix jj(k B )), ((D i 1 L ,)2 1 ,U ,n G )
a0n1,n
常用的是将A分裂为A M N (2.3)
其中 M为可选择的非奇异阵使 Mxd容易求解,一般M选为A的某
种近似,于是 A b xM N x b x 或 xM 1N x M 1b。
若记
B M 1 N M 1 (M A )IM1A,•••f M1b,
并取初始向 •x(量 0),则x(0)•( 可 任 意 取B是)迭代矩阵
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/index.php?title=Benchmark
多波前法(multifrontal)简介
• 发展
Duff and Raid [2] J.W.H.Liu等分析,改进 [3] T.A.Davis开发UMFPACK [4]
• 基本算法
利用稀疏矩阵的特性,得到一系列密集子阵(波前)。将LU分解 转化为对这些波前的装配,消去,更新等操作。
Fron {e} {d}
ach c ·· h ··
c,g,h g ·· h ··
bej e ·· j ··
d,i,j i ·· j ··
f,g,h gg· h ··
e,i,j i ·· j ··
{h,i,j}
消去树
h,i, j i i · j ·j
• 直接法基于高斯消元法,即计算A的LU分解。A通常要经过一系列置换排 序,可归并为左置换矩阵P,右置换矩阵Q。基本步骤如下: 1)符号分析: 得到置换排序矩阵 P Q 2)数值分解: 3)前代 回代:
I.S.Duff, A.M.Erisman, and J.K.Reid. Direct Methods for Sparse Matrices. London:Oxford Univ. Press,1986. J.J.Dongarra,I.S.Duff, ... Numerical Linear Algebra for High-Performance Computers. G.H.Golob, C.F.Van loan. Matrix Computations. The Johns Hopkins University Press. 1996
稀疏矩阵复杂、多变
• 基本参数 • 敏感性,病态矩阵 • 格式多变 • 测试集
Harwell-Boeing Exchange Format 。。。 Harwell-Boeing Sparse Matrix Collection UF sparse matrix collection
对称性,稀疏性,非零元分布
2 密集子阵
根据符号分析,数值分解算法的不同,直接法有以下几类[15]: 1)general technique(通用方法): 主要采用消去树等结构进行LU分解。适用于非常稀疏的非结构化矩阵。 2)frontal scheme(波前法) LU分解过程中,将连续多行合并为一个密集子块(波前),对 这个子块采用BLAS等高效数学库进行分解。 3)multifrontal method(多波前法) 将符号结构相同的多行(列) 合并为多个密集子块,以这些密 集子块为单位进行LU分解。这些子块的生成,消去,装配,释放等都需 要特定的数据结构及算法。
大型稀疏矩阵 的LU分解及特征值求解
陈英时 2016 . 1. 9
2013. 7. 20
稀疏矩阵求解的广泛应用
• • 矩阵求解是数值计算的核心[1] 稀疏矩阵求解是数值计算的关键之一
偏微分方程,积分方程,特征值,优化… 万阶以上dense matrix不可行
• 稀疏矩阵求解往往是资源瓶颈
时间瓶颈,内存,外存等瓶颈
AMESTOY, P. R., DAVIS, ... 1996a. An approximate minimum degree ordering algorithm. SIAM J. Matrix Anal. Applic. 17, 4, 886 –905.
为何需要密集子块(Dense Matrix)
条件数
求解器的飞速发展
• BBMAT
/research/sparse/matrices/Simon/bbmat.html
38744阶,分解后元素超过四千万. 1988 巨型机cray-2上 2003 4G umfpack4 2006 3.0G GSS1.2 2012 3.0G 4核 GSS 2.3 2014 i7 8核 GSS 2.4
稀疏排序
排序算法的作用是减少矩阵LU分解过程中产生的注入元,求解 矩阵的最优排序方法是个NP完全问题(不能够在合理的时间内进行 求解),对具体矩阵而言,目前也没有方法或指标来判定哪种算法 好。因此实测不同的算法,对比产生的注入元,是确定排序算法的 可靠依据。 主要的排序算法有最小度排序(MMD,minimum degree ordering algorithm)和嵌套排序(nested dissection)两种。矩阵排序方面相应 的成熟软件库有AMD[12] 、COLAMD、METIS[13]等。
Yannokakis M. Computing the minimum fill-in in NP-Complete. SIAM J.Algebraic Discrete Methods, 1981, 2:77~79
近似最小度排序算法 – 商图
近似最小度排序(AMD,Approximate Minimum Degree OrderingAlgorithm)算法于 1996年左右由Patrick R. Amestoy等学者提出
• 多波前法的优点
波前是dense matrix ,可直接调用高性能库(BLAS等) 密集子阵可以节省下标存储 提高并行性
• 目前主要的求解器
UMFPACK,,GSS,MUMPS,PARDISO, WSMP,HSL MA41等
LU分解形成frontal
10阶矩阵。 蓝点代表非零元。红点表示分解产生的注入元(fill-in) Frontal划分{a}, {b}{c}{d} {e} {f,g}{h,i,j}
>1000秒 32.6秒[4] 15秒 4秒 1秒
• 硬件的发展 CPU,内存等 • 稀疏算法逐渐成熟
稀疏排序,密集子阵 multifrontal ,supernodal…
• 数学库
BLAS,LAPACK
稀疏LU分解算法的关键
稀疏LU分解 (不考虑零元的)LU分解
1 零元是动态的概念,需要稀疏排序,减少注入元(fill-in)
相关文档
最新文档