c++ - 计算一个非常大的矩阵的逆

标签 c++ sparse-matrix matrix-inverse

我正在尝试用 C++ 计算一个非常大的矩阵 (11300x21500) 的逆。到目前为止,我已经尝试过 Eigen 和 Armadillo 库,但都在初始化阶段失败,说内存不足。有什么办法可以克服这种情况吗?

提前致谢

附言
我应该将矩阵的大小更正为 21500x21500。正如 UmNyobe 所建议的,这不是方阵。它实际上是观察矩阵,X,我正在尝试计算 (XTX)-1

我有 8GB 内存(在 64 位系统中),但我认为我没有使用所有这些内存空间。任务管理器显示出错时内存使用量为1GB。可能Windows7中有一个操作系统命令,当应用程序的内存使用量超过1GB时关闭应用程序。

顺便说一句,我最初的目的是对这个观察矩阵进行回归。

还有一件事:观察矩阵 X 的每一行中的大多数列都为零。有没有办法利用这一点,限制反转操作中的内存使用量?

最佳答案

假设矩阵正方形,您可能正在寻找一种就地矩阵求逆算法。

你应该看看 this .

关于c++ - 计算一个非常大的矩阵的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524989/

相关文章:

c++ - 如何将指针传递给c/cpp中的函数?

python - Pandas mul 密集与稀疏

Java:如何高效存储稀疏数据

Haskell 实现行列式、秩和逆矩阵计算 - 输入矩阵大小限制

c++ - OpenCV 在 warpAffine 期间保持背景透明

c++ - 如何从 c 文件调用 c++ 类及其方法

c++ - 如何将函数作为参数传递给 C++ 中的函数宏

python - 二维数组的numpy 3d张量

matlab - 计算矩阵行列式的问题

algorithm - 我的 Gauss-Jordan 消元法有什么问题?