稀疏矩阵在无序体系的本征值问题中非常有用,对于无序体系,我们需要构建足够大的动力学矩阵,而粒子间的相互作用是被要求具有有限尺度的,那么大量的矩阵元实际上是0. 我们在储存矩阵和计算本征值时,需要占用大量的内存和计算资源,稀疏矩阵的合理使用会大大提高计算效率。
稀疏矩阵算法是以稀疏矩阵作为核心数据结构的算法。与稠密矩阵算法相比,稀疏矩阵算法的最大特点是通过只存储和处理非零元素从而大幅度降低存储空间需求以及计算复杂度,代价则是必须使用专门的稀疏矩阵压缩存储数据结构,因而在计算过程中引入了大量的离散间接寻址操作。稀疏矩阵算法是典型的不规则算法,计算访存比很低,...
我们可以轻松地将高维稀疏矩阵转换为压缩稀疏行矩阵(简称 CSR 矩阵)。对于这种压缩我们的要求是压缩后的矩阵可以应用矩阵运算并以有效的方式访问指标,所以CSR并不是唯一方法,还有有更多的选项来存储稀疏矩阵。例如:Dictionary of keys (DOK)、List of Lists (LIL)、Coordinate list (COO)、Compressed row storage (CR...
2.2 稀疏矩阵的特点 存储效率:由于稀疏矩阵中大部分元素都是零,因此不需要为这些零值分配存储空间,从而节省了大量的存储空间。 计算效率:在进行矩阵运算时,可以跳过零值,从而提高计算效率。 特殊结构:稀疏矩阵通常具有特定的结构和模式,这些结构可以被利用来进一步优化存储和计算。
一、稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,而且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都仅仅是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,而且非零元素没有分布规律。
稀疏矩阵 稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素没有分布规律。
普通矩阵(密集矩阵): [ \begin{bmatrix} 1 & 0 & 0 & 0 \ 0 & 0 & 2 & 0 \ 0 & 0 & 0 & 0 \ 0 & 3 & 0 & 0 \ \end{bmatrix} ] 稀疏矩阵存储的内容: 非零元素:[1, 2, 3] 对应位置:[(0, 0), (1, 2), (3, 1)] ...
稀疏矩阵的存储方式主要有以下几种:列压缩存储(CCS):通过列指针、行指标和非零值三个一维数组来表示稀疏矩阵。其中,非零值数组按列记录所有非零元素,行指标记录每列非零元所在的行,列指针向量记录每一列(包括最后一列)的开始位置。*行压缩存储(CRS):与列压缩存储类似,但按行来组织和存储非零元素。三元...
2. 分布无规律:与特殊矩阵(如上三角矩阵、下三角矩阵、对角矩阵)不同,稀疏矩阵中的非零元素分布没有固定的规律。3. 节省存储空间:由于非零元素少,可以通过只存储非零元素的坐标和值来节省大量的存储空间。4. 提高计算效率:在计算过程中,可以通过遍历非零元素的坐标来避免对零元素的计算,从而提高计算效率...