稀疏矩阵的实际用途

时间:2018-04-06 14:06:05

标签: matrix sparse-matrix linear-algebra

最近我一直在使用矩阵,我开始学习稀疏矩阵,但我不明白它们为什么存在。稀疏矩阵的一些实际用途是什么?如果他们主要持有的都是0,他们是否有任何有用的功能?

4 个答案:

答案 0 :(得分:2)

稀疏矩阵通常只是具有大量零项(通常至少> 50%)的矩阵。

它们可以用非常简洁的方式表示,(wiki)可用于以快速有效的方式进行矩阵运算(例如乘法,矩阵的转置,......)。没有有效的稀疏矩阵算法,谷歌地图和其他应用程序是不可能的。

如果你想深入挖掘,我推荐this website & professor,他们开发了一些算法。显然,这是一个引起高度关注的研究课题。

答案 1 :(得分:2)

我觉得你反过来问这个问题。

稀疏矩阵是具有高密度零的矩阵。

稀疏矩阵在科学计算的许多领域中经常遇到,并且在很大的范围内。如果他们有用,那就不存在了。

现在,有趣和有用的是我们如何代表它们。

我们倾向于压缩稀疏矩阵,只考虑非零值并跟踪它们在矩阵中的位置。

这是有用的,它可以节省大量存储空间,并且矩阵操作仅限于非零值。

答案 2 :(得分:2)

稀疏矩阵非常常见的场是求解离散偏微分方程。

简而言之:您有一个体素网格,离散化的微分方程表明您仅为相邻体素求解的数量之间的关系。您需要解决的结果矩阵方程通常具有带结构。在2D中,结构更简单,只有对角线上的值和对角线上的值,所有其他系数都为零。

答案 3 :(得分:1)

考虑一个100k X 100k矩阵。

如果要在2D阵列中使用双精度存储所有这些,则需要80Gbytes不计算任何内存管理开销。如果许多元素为零,则可以节省大量内存。

例如,如果你有一个规则的稀疏矩阵,比如三对角线,那么它可以存储在一个带有2.4Mbytes的3×100k阵列中。三角形外的所有元素都是零。

作为另一个例子,在电子电路分析中,矩阵用于使用Newton-Raphson方法求解PDE系统。由于大多数电路元件连接到很少的其他电路元件,因此得到的矩阵是稀疏的。这可以用非零元素的2D链表来表示。同样,链接列表中没有任何内容隐含为零。