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

时间:2012-02-12 12:37:58

标签: python linear-algebra sparse-matrix matrix-inverse

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

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

1 个答案:

答案 0 :(得分:1)

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

关于逆的问题,标准方法总是避免计算逆本身。而不是计算L ^ -1,重复解决未知x的Lx = b。所有好的矩阵求解器都可以让你分解出昂贵的L,然后对b的每个值反复替代(这很便宜)。