2012-02-12 58 views
3

我有兩個稀疏矩陣A(親和矩陣)和D(對角矩陣),維數爲100000 * 100000。我必須計算拉普拉斯矩陣L = D ^( - 1/2)* A * D ^( - 1/2)。我使用scipy CSR格式進行稀疏矩陣。Python稀疏矩陣逆和拉普拉斯算法

我沒有找到任何方法來找到稀疏矩陣的逆。如何找到L和稀疏矩陣的逆矩陣?還建議通過使用python是否有效,或者我應該稱之爲計算L的matlab函數?

回答

1

通常,稀疏矩陣的逆並不稀疏,這就是爲什麼在線性代數庫中找不到稀疏矩陣逆變器的原因。由於D是對角線,因此D^(-1/2)是微不足道的,拉普拉斯矩陣計算因此很容易寫下來。 L具有與A相同的稀疏模式,但是每個值A_ {ij}乘以(D_i * D_j)^ { - 1/2}。

關於逆問題,標準方法總是避免計算逆本身。代替計算L^-1,重複求解未知x的Lx = b。所有優秀的矩陣求解器都可以讓你分解昂貴的L,然後對b的每個值反覆替換(這很便宜)。