首页 > 解决方案 > 八度错误:SparseMatrix::solve 数值因式分解失败

问题描述

我有一个大型方程组要解决。系数存储在维度为 320001 x 320001 个元素的稀疏矩阵 CM 中,其中 18536032 个非零。结果向量 B 的长度为 320001 个元素。

执行时

I=CM\B

八度错误:SparseMatrix::solve 数值因式分解失败

我收到上述错误消息。简要查看源代码并没有给我任何线索。

有谁知道是什么导致了这个错误?

顺便说一句:当使用较小的矩阵(例如 180001x180001)解决相同的问题时,程序运行良好。

约翰内斯

标签: octave

解决方案


Octave 使用UMFPACK库来解决稀疏线性系统。检查源显示错误消息是由于带有负值的错误状态引起的。错误代码列表可在用户指南中找到。其中之一与缺乏足够的内存有关:

UMFPACK 错误内存不足,(-1):内存不足。ANSI C malloc 或 realloc 例程失败。


推荐阅读