两个稀疏矩阵相乘 稀疏矩阵压缩存储的基本思想是什么?
稀疏矩阵压缩存储的基本思想是什么?对稀疏矩阵压缩存储的目的是:C节省存储空间和D降低预算时间复杂度,如果是单选题,那么应该选C节省存储空间。矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分
稀疏矩阵压缩存储的基本思想是什么?
对稀疏矩阵压缩存储的目的是:C节省存储空间和D降低预算时间复杂度,如果是单选题,那么应该选C节省存储空间。矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵(sparsematrix);与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对角矩阵),则称该矩阵为特殊矩阵。稀疏矩阵的计算速度更快,因为MATLAB只对非零元素进行操作,这是稀疏矩阵的一个突出的优点.假设矩阵A,B中的矩阵一样.计算2*A需要一百万次的浮点运算,而计算2*B只需要2000次浮点运算.因为MATLAB不能自动创建稀疏矩阵,所以要用特殊的命令来得到稀疏矩阵.对于一个用二维数组存储的稀疏矩阵Amn,如果假设存储每个数组元素需要L个字节,那么存储整个矩阵需要m*n*L个字节.但是,这些存储空间的大部分存放的是0元素,从而造成大量的空间浪费.为了节省存储空间,可以只存储其中的非0元素.
稀疏矩阵指什么?
稀疏矩阵,指大多数元素是0,只有少数元素不是0的大型矩阵。稀疏矩阵计算主要需要解决两个问题,一个是使用较少的内存单元存储矩阵,一般只存储特定的区域或者非零值;计算时如何将元素取出,如何简化计算。有专门的计算机程序。稀疏矩阵,一般不会有某行、某列全为0的情况,与0矩阵不同。0矩阵的运算十分简单,没有必要保存矩阵内容。
eigen与taucs求解稀疏矩阵哪个好?
网格变形的论文看得理解了一点后就开始尝试实现,就开始到网上找稀疏矩阵库。
一开始我使用的矩阵库是Eigen,风格跟matlab很像,但是没有实现稀疏矩阵运算的功能,虽然它预留了跟其他几个稀疏矩阵库的接口,但是我试过的umfpack和superlu都在if(!lu_of_A.succeeded())这一步计算失败。后来还找尝试了taucs库,但是同样遇到了一个悲剧的问题,编译成功的库可以在命令行下使用,但是放到vs2008里面却总是无法链接成功。花了几天的时间,最后还是决定自己封装下umfpack和Eigen的接口。