3

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

我没有找到任何方法来找到稀疏矩阵的逆。如何找到稀疏矩阵的 L 和逆?还建议使用python这样做是否有效,或者我应该调用matlab函数来计算L?

4

1 回答 1

1

一般来说,稀疏矩阵的逆矩阵不是稀疏的,这就是为什么你不会在线性代数库中找到稀疏矩阵逆变器的原因。因为D是对角线,D^(-1/2)所以是微不足道的,因此拉普拉斯矩阵计算是微不足道的。L具有相同的稀疏模式A但每个值 A_{ij} 乘以 (D_i*D_j)^{-1/2}。

关于倒数的问题,标准的方法总是避免计算倒数本身。不计算 L^-1,而是重复求解未知 x 的 Lx=b。所有好的矩阵求解器都允许您分解昂贵的 L,然后对 b 的每个值重复进行反向替换(便宜)。

于 2012-02-12T12:47:28.560 回答