我必须反演一个大型稀疏矩阵(50000 X 12000)。它最初以numpy.ndarray的形式存储,矩阵的大小约为3.5GB。我已经尝试过使用numpy.linalg.pinv来转换这个矩阵,但是它崩溃了jupyter笔记本内核。将此numpy.ndarray转换为scipy.sparse.csr_matrix (稀疏矩阵格式)是可行的,但我不知道有任何函数可以计算csr_matrix的伪逆。
如何求大型稀疏矩阵的伪逆?
我有计算下三角矩阵求逆的代码。如何通过对下面的代码稍加修改来计算上三角矩阵的求逆? function L = L_inv(A)
[n,n] = size(A);
L = zeros(n);
for i=1:n
L(i,i) = 1/A(i,i);
for j=i+1:n
L(j,i)=-A(j, i:j-1)*L(i:j-1,i)/A(j,j);
end
end
我有很多需要在Matlab中求逆的大矩阵(大约5000 x 5000)。我实际上需要反转,所以我不能使用mldivide,这对于求解一个b的Ax=b来说要快得多。
我的矩阵来自一个问题,这意味着它们有一些很好的性质。首先,它们的行列式是1,所以它们绝对是可逆的。但是,它们是不可对角化的,或者我会尝试将它们对角化,颠倒它们,然后再将它们放回原处。它们的条目都是实数(实际上是有理的)。
我使用Matlab来获得这些矩阵,对于这些东西,我需要对它们的求逆进行处理,所以我更喜欢一种加速Matlab的方法。但是,如果我可以使用另一种更快的语言,请让我知道。我不知道很多其他的语言(只懂一点C和一点不懂Ja
我正在寻找计算矩阵求逆的最有效的方法。我知道这与LU分解有关,或者是把它分成两个矩阵,上三角和下三角矩阵,以及这两个系统的求解,但我不能用MATLAB写出代码。我甚至不知道从哪里开始,也不知道如何在我的问题中使用系统的结果。我真的需要它,因为我必须求解一个10.000 x 10.000的矩阵,而这个简单的方法永远需要花费很长时间。