哪些软件包可以解决不存储的线性系统

计算科学 线性代数 线性求解器
2021-12-03 21:58:15

我的矩阵非常容易逐点计算,但太大而无法存储。(它们并不稀疏)在 MATLAB 网站上,有人告诉我 MATLAB 不支持使用非存储矩阵进行计算。他们还有其他软件包吗?

2个回答

如您所说,如果可以相对便宜地动态计算所涉及矩阵的各个条目,那么您可以转向无矩阵方法(也称为黑盒求解器)。诸如 GMRES 之类的 Krylov 子空间方法属于该类求解器,对您很有用,因为它们只要求用户计算矩阵向量乘积。您可以通过动态计算矩阵的相关条目来完成这些矩阵向量乘积,而无需将整个矩阵存储在内存中。

线性系统解决方案模板中可用代码的 Fortran 版本中的反向通信例程将符合您的要求。

如果矩阵太大而无法放入 RAM,但可以合理地放入硬盘,那么您应该查看所谓的“Out of Core”求解器。这些求解器将大矩阵划分为小到足以在内存中一次处理一个的块。密集和稀疏问题都有许多可用的代码,但要从核外求解器中获得良好的性能,通常需要将代码调整为您正在使用的计算机的特定 I/O 性能。