我在Matlab中有一个稀疏矩阵43916x43916,它是通过以下方程计算的:
B=(speye(nV,nV)-alpha*NeMatrix+beta*NeMatrix*NeMatrix);
nV 是一个整数,alpha
是一个整数,NeMatrix
是一个稀疏矩阵,beta
是一个整数。
我无法执行 inv(B),因为它会增加 RAM 的使用直至崩溃。我已经尝试过 LU 但没有成功。
我怎样才能计算这个逆矩阵?
最佳答案
逆矩阵将是一个稠密矩阵。因此,您应该检查是否可以处理这种大小的矩阵。例如,尝试设置 ones(nV,nV)
...
如果您有足够的存储空间,您可以考虑按列计算逆矩阵。第 i 列为 B\ei
,其中 ei
是第 i 个单位向量。
但是,在数值计算中,您几乎不需要矩阵 B
的逆矩阵。大多数时候 B\v
就足够了,其中 v
是一个向量。所以你最好检查一下,你是否真的需要完整的逆......
关于matlab - 在 Matlab 中使用 inv() 函数会使用所有 RAM 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221443/