稀疏矩阵
2016-05-16 10:04
162 查看
稀疏矩阵(sparse matrix)是矩阵的一种特殊情况,其非零元素的个数远远小于零元素的个数,且分布没有规律。
设一个m行n列的矩阵有t个非零元素,则系数因子δ为:
通常当δ<0.05时,我们称该矩阵为稀疏矩阵。如下图所示:
0 0 2 0 0 0 0
3 0 0 -11 0 0 0
A= 0 0 0 -6 0 0 0
0 0 0 0 0 -17 0
0 9 0 0 19 0 0
0 0 0 -8 0 0 -52
A为稀疏矩阵。
存储:
对于系数矩阵来说,采用二维数组的存储方法既浪费大量的存储单元用来存储零元素,又要在运算中花费大量的时间进行零元素的无效计算,显然并不可取。并且在实际的工程应用中,待处理的系数矩阵往往是很大的。例如,建立计算机网络时,用999条线路把1000个站点连接起来。用以表示这个网络的连接矩阵有1000*1000个矩阵元素,其中只有999个非零元素。显然,把所有的零元素都存在计算机中是不经济的,所以必须必须考虑对稀疏矩阵的压缩存储。
必须对每一个非零元素,保存它的下标和值,我们可以采用三元组<row, column, value>来唯一的确定一个矩阵元素。因此,稀疏矩阵需要使用一个三元数组(三元组表)来表示,在该表中,以行优先的顺序依次存放。
设一个m行n列的矩阵有t个非零元素,则系数因子δ为:
通常当δ<0.05时,我们称该矩阵为稀疏矩阵。如下图所示:
0 0 2 0 0 0 0
3 0 0 -11 0 0 0
A= 0 0 0 -6 0 0 0
0 0 0 0 0 -17 0
0 9 0 0 19 0 0
0 0 0 -8 0 0 -52
A为稀疏矩阵。
存储:
对于系数矩阵来说,采用二维数组的存储方法既浪费大量的存储单元用来存储零元素,又要在运算中花费大量的时间进行零元素的无效计算,显然并不可取。并且在实际的工程应用中,待处理的系数矩阵往往是很大的。例如,建立计算机网络时,用999条线路把1000个站点连接起来。用以表示这个网络的连接矩阵有1000*1000个矩阵元素,其中只有999个非零元素。显然,把所有的零元素都存在计算机中是不经济的,所以必须必须考虑对稀疏矩阵的压缩存储。
必须对每一个非零元素,保存它的下标和值,我们可以采用三元组<row, column, value>来唯一的确定一个矩阵元素。因此,稀疏矩阵需要使用一个三元数组(三元组表)来表示,在该表中,以行优先的顺序依次存放。
相关文章推荐
- 发布Mvc 项目 mvc.dll版本号不一致 出现 3.0.0.1 和4.0.0.1的解决方案
- iOS模型设计---字典转模型
- Contains Duplicate II
- iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
- spring经常找不到xsd
- Ubuntu下编写一个简单的c程序
- 操作数据库的WebService,传递ResultSet的方法
- CTCC2016中国云计算技术大会参会感想
- iOS8下,cell分割线右移
- 阻止表单提交按钮多次提交的完美解决方法
- HTML table的td内容过长时,自动隐藏效果
- C#和.NET框架和术语
- uva 572 oil deposits——yhx
- 通过Service Builder改变了原数据库的主键,所有原有记录被删除。
- 【Java】类执行过程
- HashSet vs TreeSet vs LinkedHashSet
- raspberry树莓派安装CUPS实现打印服务器共享HP P1007打印机
- setTransformationMethod 的使用
- Java 文件字符过滤流练习--银行卡信息系统(console)
- 在团队协作中,该如何提交一份干净、可靠的代码给队友?