我正在寻找计算矩阵求逆的最有效的方法。我知道这与LU分解有关,或者是把它分成两个矩阵,上三角和下三角矩阵,以及这两个系统的求解,但我不能用MATLAB写出代码。我甚至不知道从哪里开始,也不知道如何在我的问题中使用系统的结果。我真的需要它,因为我必须求解一个10.000 x 10.000的矩阵,而这个简单的方法永远需要花费很长时间。
我必须反演一个大型稀疏矩阵(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
我正在尝试用boost做一个简单的矩阵求逆运算。但是我得到了一个错误。基本上,我试图找到的是inversted_matrix =逆(trans(矩阵)*矩阵),但我得到了一个错误
Check failed in file boost_1_53_0/boost/numeric/ublas/lu.hpp at line 299:
detail::expression_type_check (prod (triangular_adaptor<const_matrix_type,
upper> (m), e), cm2)
terminate called after throwing
我想求一个矩阵q+1e-5*np.ye( d) (size d×d)的逆,并使用下面的代码来获得近似结果。
Q = X.dot(X.T) # X is a large sparse matrix, Q is singular
P = np.linalg.inv(Q+1e-5*np.eye(d))
但我得到了这个:
P=[[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
[ nan nan nan ..., nan nan nan]
...,
[ nan nan na