【问题标题】:How to judge if a big sparse matrix is singular in MATLAB如何在MATLAB中判断一个大的稀疏矩阵是否是奇异的
【发布时间】:2018-09-14 20:25:16
【问题描述】:

我使用有限元法(FEM)来解决一些问题。刚度矩阵 K 是一个非常大的稀疏矩阵,我想解方程:

U(freedofs,:) = K(freedofs,freedofs) \ F(freedofs,:),

freedofs 表示空闲节点。

有时我会在 MATLAB 中收到类似警告

MATLAB:singularMatrixMATLAB:nearlySingularMatrix,

我计算了condest(K(freedofs,freedofs))的值是Inf,但我还是得到了U的答案,还是蛮合理的,不知道有没有报错?你的答案可信吗

【问题讨论】:

标签: matlab sparse-matrix


【解决方案1】:

如果发现矩阵是奇异的或接近奇异的,这很可能意味着您正在使用的机械模型是“松散的”。当应用的边界条件数量不足时,可能会出现这种情况,因此系统是一个机制,因此全局刚度矩阵只是奇异的。另一种可能性是您正在使用一块非常薄的板,它的行为更像是一个膜,没有或几乎没有抗弯曲性;在这种情况下,全局刚度矩阵将是病态的,MATLAB 中的线性求解器会将其检测为“近奇异”。您应该确保您的 FEA 模型不是上述两种情况;否则,您获得的任何数值解都是不可信的,无论它看起来多么合理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2014-09-07
    • 2012-04-02
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多