matlab - 在 Matlab 中使用 inv() 函数会使用所有 RAM 崩溃

标签 matlab matrix-inverse

我在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/

相关文章:

c++ - 如何在 Eigen 中有效地使用逆和行列式?

c++ - Armadillo 复数稀疏矩阵逆

python - 使用 python 求解 7000x7000 线性系统时的最佳性能方法

python - 使用 Keras 在 Python 中加载 .mat 数据

matlab - 为什么 matlab plot 使用这么多内存?

algorithm - 线性回归 - 使用什么算法来解决最小二乘法 - 逆或 LU 或......?

python - Sympy - 仅在特定位置查找矩阵的逆?

algorithm - 将整数转换为通用基础 Matlab

matlab - 格林函数的傅里叶变换 - 两个信号之间的差异几乎相同

MATLAB 独立可执行文件