对称对角矩阵的表示

Representation of a symmetric diagonal matrix

本文关键字:表示 对称      更新时间:2023-10-16

假设我们有一个巨大的对称对角矩阵。实现这一点的有效方法是什么?

我能想到的唯一方法是通过使用对称性质当Xij = Xji时,我们可以将这个矩阵的大小减少一半。但是用二维数组来表示这个矩阵是低效的,因为我们不能用数组来减小矩阵的大小。

用邻接表表示这个矩阵也是低效的,因为把这个矩阵和一个图联系起来。这是一个密度图。而对于形容词表的操作,需要进行删除、插入、查找等操作。

但是使用堆呢?

在你决定如何处理这个矩阵(或者可能是矩阵?)之前,没有一个答案。

如果你只是要存储和记忆它,那么就按顺序存储它,省略多余的条目。(您的代码知道如何访问它,因为这就是它所做的,对吗?)

更可能的是,你想对它做常规的矩阵运算。在这种情况下,您是想提高存储效率,还是提高执行效率?在后一种情况下,我没有看到很多基于对称的机会-乘法是昂贵的事情,你可能仍然需要所有这些。如果是存储,那么您是否将自己限制为只取对称输入和对称输出的操作?听起来很具体。如果是这样,那么你只需要为你要存储的部分做计算,因为根据定义,其他条目是对称的,所以只需编写代码来生成矩阵的那一部分,你就完成了。