eigs与大型稀疏矩阵内部错误

4视图(30天)
我用9 m×9 m K_matrix_sys M_matrix_sys eigs计算频数。
fre = eigs (K_matrix_sys M_matrix_sys 3,0);
下面显示的错误。我不知道怎样设置eigs其他值,使这项工作。
错误使用matlab.internal.decomposition.builtin.UMFPACKWrapper
分解内置的错误:算法没有成功。
内部在图书馆UMFPACK错误。
错误在eigs > AminusSigmaBSolve(第1220行)
umf = matlab.internal.decomposition.builtin.UMFPACKWrapper (AminusSigmaB, 0.1, 0.001,真的,0);
错误在eigs > getOps(第1122行)
applyOP = AminusSigmaBSolve (A, B, innerOpts。σ,矩阵,n,
错误在eigs(第122行)
[applyOP, applyM] = getOps (A、B、n,浦发银行、shiftAndInvert R, cholB, permB,
6个评论
克里斯汀Tobler
克里斯汀Tobler 2022年4月1日
eigs应该直接给了内存不足的错误,而不是你最初的“内部错误”的信息。R2019b已经涉及到了这个问题,所以在后来发布错误消息应该减少混乱。
不幸的是没有太多要做的情况下内存不足的错误。对于一些稀疏矩阵,其分解含有大量“填写”,这个矩阵的因素包含更多的意义比原始矩阵非零,因此需要更多的内存。
如果你碰巧知道所有特征值都是积极的,你可以尝试使用“smallestreal”选项,不计算第一个输入矩阵的分解。可以有点大杂烩,作为迭代的收敛性在eigs可以慢得多(或不会发生在实际时间),但在某些情况下它工作得很好。
%如果你知道所有特征值> = 0:
fre = eigs (K_matrix_sys M_matrix_sys 3,“smallestreal”)

登录置评。

类别

找到更多的在线性代数帮助中心文件交换

s manbetx 845


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!