gpt4 book ai didi

matlab - 求解 Ax=b,其中 A 太大而无法存储在单个数组中

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:32 26 4
gpt4 key购买 nike

问题:A 是方形的、满秩的、稀疏的和带状的。它有太多的元素无法在 Matlab 中存储为单个矩阵(至少 ~4.6*1018 和理想情况下 ~1040,两者都超过 max array size . 编辑:A 存储为稀疏,问题不在于内存有限,而在于元素数量有限)。因此我必须将它存储为较小数组的集合(行/对角线/列/ block )。

寻找:一种求解 Ax=b 的方法,其中 A 作为较小数组的集合给出。最好在 Matlab 中使用,但不是必须的。
或者,如果不是在 Matlab 中:也许有一个程序可以存储和解决这么大的 A?

到目前为止发现:方法如果 A 是三/五对角线,但我的 A 有 N 对角线。还发现了一些关于将 A 划分为 block 的内容,但找不到用这些 block 求解线性系统的方法。

附注系统为 64 位。

谢谢大家!

最佳答案

不使用 Matlab 将允许您存储更大的数组。 ROOT是 CERN 开发的开源框架,具有 C++ 和 Python 接口(interface)以及各种求解器。它还能够处理庞大的数据集,并具有各种可视化和分析工具。

如果您有兴趣编写 C 或 Fortran BLAS(Basic Linear Algebra Subroutines)而 CBLAS 将是不错的选择。有许多 BLAS 的开源和专有实现应该适用于大多数 Linux/UNIX 发行版。网上还有大量示例展示了如何使用 C 和 Fortran 代码中的 BLAS 子例程。

关于matlab - 求解 Ax=b,其中 A 太大而无法存储在单个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com