Python稀疏矩阵的逆和拉普拉斯计算。

3

我有两个稀疏矩阵 A(相似度矩阵)和 D(对角矩阵),维度为 100000*100000。我需要计算拉普拉斯矩阵 L = D^(-1/2)*A*D^(-1/2)。我正在使用 scipy CSR 格式的稀疏矩阵。

我没有找到任何计算稀疏矩阵的逆的方法。如何找到 L 和稀疏矩阵的逆?同时建议,使用 Python 计算 L 是否高效,还是应该调用 MATLAB 函数进行计算?

1个回答

1
一般来说,稀疏矩阵的逆矩阵不是稀疏的,这就是为什么在线性代数库中找不到稀疏矩阵求逆器的原因。由于 D 是对角线矩阵,D^(-1/2) 很容易计算,因此拉普拉斯矩阵的计算也很容易写出。矩阵 L 与矩阵 A 具有相同的稀疏模式,但每个值 A_{ij} 都乘以 (D_i*D_j)^{-1/2}。
关于逆矩阵的问题,标准方法总是避免计算逆矩阵本身。而是通过反复解决 Lx=b 来计算 L^-1 中的未知量 x。所有良好的矩阵求解器都将允许您分解 L(这是昂贵的),然后针对每个 b 的值进行反向替换(这是便宜的)。

你好。我对于您关于如何高效计算稀疏矩阵的倒数的说法非常感兴趣。您能否提供给我一个例子或任何可参考的资料?谢谢! - Vicent
@Vicent 我不确定你在问什么。我说计算逆矩阵不是很高效。 - David Heffernan
是的...我误解了你的回答,抱歉。 - Vicent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接