我正在尝试用 C++ 计算一个非常大的矩阵 (11300x21500) 的逆。到目前为止,我已经尝试过 Eigen 和 Armadillo 库,但都在初始化阶段失败,说内存不足。有什么办法可以克服这种情况吗?
提前致谢
附言
我应该将矩阵的大小更正为 21500x21500。正如 UmNyobe 所建议的,这不是方阵。它实际上是观察矩阵,X,我正在尝试计算 (XTX)-1
我有 8GB 内存(在 64 位系统中),但我认为我没有使用所有这些内存空间。任务管理器显示出错时内存使用量为1GB。可能Windows7中有一个操作系统命令,当应用程序的内存使用量超过1GB时关闭应用程序。
顺便说一句,我最初的目的是对这个观察矩阵进行回归。
还有一件事:观察矩阵 X 的每一行中的大多数列都为零。有没有办法利用这一点,限制反转操作中的内存使用量?
最佳答案
假设矩阵是正方形,您可能正在寻找一种就地矩阵求逆算法。
你应该看看 this .
关于c++ - 计算一个非常大的矩阵的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524989/