稀疏矩阵

稀疏矩阵

数学术语
非零元素占全部元素的百分比很小(例如5%以下)的矩阵。有的矩阵非零元素占全部元素的百分比较大(例如近50%),但它们的分布很有规律,利用这一特点可以避免存放零元素或避免对这些零元素进行运算,这种矩阵仍可称为稀疏矩阵。
    中文名:稀疏矩阵 外文名:sparse matrix 适用领域: 所属学科:数学 存储格式:列压缩存储或行压缩存储

定义

非零元素占全部元素的百分比很小(例如5%以下)的矩阵。有的矩阵非零元素占全部元素的百分比较大(例如近50%),但它们的分布很有规律,利用这一特点可以避免存放零元素或避免对这些零元素进行运算,这种矩阵仍可称为稀疏矩阵。

历史

早在20世纪,C.F.高斯、C.G.J.雅可比和其他一些人已经研究过利用矩阵稀疏性的一些办法。20世纪50年代,在线性规划和边值问题的数值解中曾出现过一些处理稀疏问题的技术。D.M.杨和R.S.瓦尔加关于迭代法方面的研究也可看作处理高阶稀疏问题的结果。但是,现代的稀疏矩阵技术主要是在60年代以后发展起来的,以60年代初期和中期W.F.廷尼和R.A.威洛比等人关于直接法的研究作为开端。

优点

稀疏矩阵的计算速度更快,因为MATLAB只对非零元素进行操作,这是稀疏矩阵的一个突出的优点.假设矩阵A,B中的矩阵一样.计算2*A需要一百万次的浮点运算,而计算2*B只需要2000次浮点运算.因为MATLAB不能自动创建稀疏矩阵,所以要用特殊的命令来得到稀疏矩阵。

对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节.但是,这些存储空间的大部分存放的是0元素,从而造成大量的空间浪费.为了节省存储空间,可以只存储其中的非0元素。

对于矩阵Amn的每个元素aij,知道其行号i和列号j就可以确定其位置.因此对于稀疏矩阵可以用一个结点来存储一个非0元素.该结点可以定义如下:[i,j,aij] 该结点由3个域组成,i:行号,j:列号;aij元素值.这样的结点被称为三元组结点.矩阵的每一个元素Qij,由一个三元组结点(i,j,aij)唯一确定。十字链表的存储结点通常散列于内存空间中,该内存分配方式下稀疏矩阵的运算效率低于存储结点连续分布在内存中的稀疏矩阵运算效率,该现象由计算机的高速缓冲存储器的工作原理造成。

应用

稀疏矩阵的研究已经渗入到很多领域。例如,在结构分析、网络理论、电力分配系统、化学工程、摄影测绘学以及管理科学等方面研究中,都出现了上千阶直至几百万阶的稀疏矩阵。这里考察从一个电信总局到其各支局间的通信问题。不妨假定有五个支局,依次编为1,2,3,4,5号,而总局编为6号,在平面上分别使用①,②,…,⑥这六个点表示(图2)。如果规定i局和j局之间有通信关系的话,在点ij之间用一条线连结,对应于矩阵中Aij块和Aji块非零,i局本身内部也有通信关系,对应于矩阵Aii块非零,那么,这个问题所导出的矩阵是一个双面镶边的块对角矩阵它是一个稀疏矩阵。

相关词条

相关搜索

其它词条