我有以下問題所困擾提取線性無關行:我有一些非常大的矩陣(比方說,至少,2000×2000,並可能在未來他們甚至會達到10000x10000)具有非常小的等級(2或3,稱爲N),我需要找到一個有效的Python例程來從它們中提取線性獨立行(或列,矩陣是對稱的!)。我試圖採用QR分解的Q矩陣的前N列,但它似乎不能正確工作(這可能是錯誤的?)。你有更好的主意嗎?的Python程序從秩虧矩陣
非常感謝!
編輯 這裏是Python代碼我用來實現由阿美Tavory建議的方法:
from numpy import absolute
from numpy.linalg import qr
q = qr(R)[1] #R is my matrix
q = absolute(q)
sums = sum(q,axis=1)
i = 0
while(i < dim): #dim is the matrix dimension
if(sums[i] > 1.e-10):
print "%d is a good index!" % i
i += 1
這應該告訴我,如果該行不爲零,因此,如果的第i列R是線性無關的。
謝謝! 「相應的組件」是指開始矩陣的列/行還是R矩陣的列/行?對不起,我從來沒有這種方法使用... –
等一下,我會盡力找到一個鏈接給你,如果你不熟悉這種方法。 –
非常親切!因爲我還不清楚我應該在R中尋找什麼,以及如何將結果轉換到起始矩陣。 –