在有限元问题的背景下,我有一个12800x12800稀疏矩阵。我试图仅使用MATLAB的
我的意思是,LU分解之类的方法是否能够在避免内存错误方面起到作用?我已经将首选项中的堆大小增加到了256 GB,这是我能够得到的最大值,但我仍然遇到了内存不足错误。
另外,还有一个普遍的问题。我现在的笔记本电脑上有8GB的RAM。升级到16GB会有任何帮助吗?或者我可以做些什么来为MATLAB分配更多的内存?我对这方面的知识相当陌生。
\
运算符来解决线性系统,但使用mldivide时会出现内存不足错误。所以我想知道是否有一种方法可以加快这个过程。我的意思是,LU分解之类的方法是否能够在避免内存错误方面起到作用?我已经将首选项中的堆大小增加到了256 GB,这是我能够得到的最大值,但我仍然遇到了内存不足错误。
另外,还有一个普遍的问题。我现在的笔记本电脑上有8GB的RAM。升级到16GB会有任何帮助吗?或者我可以做些什么来为MATLAB分配更多的内存?我对这方面的知识相当陌生。
![enter image description here](https://istack.dev59.com/9tIwh.webp)
mldivide
实现。这是一段高度优化的代码:考虑到输入的类型和稀疏性。我认为,除非你专门针对你的特定配置进行定制,否则很难找到比它更好的解决方案。 - Shaispy(A)
创建) - Rody Oldenhuisamd
置换:perm=amd(A); A=A(perm,per);
这倾向于限制因子中的非零条目数量,即直接求解器(由mldivide
使用)中的数量。此外,如果您的矩阵是对称的,请使用L=chol(tril(A))
而不是mldivide
-它仅使用一半的空间。 - angainorhelp sparfun
吗?你可以尝试一下在线性方程(迭代方法)
部分提到的一些函数。 - Rody Oldenhuis