发生这种情况是因为精度还是其他原因?

问题描述 投票:0回答:1

我正在尝试在 Matlab 中求解一个大型线性系统,117 x 117。但每次我运行代码时, 给出输出“NaN”并给出警告“矩阵对于工作精度来说是奇异的”。其他一切都运行良好。我的教授告诉我要提高计算的精度。我用 digits(64) 函数增加了它,但即使这样,Matlab 也给了我相同的输出。我该如何解决这个问题?

我尝试过 

digits(64)

功能来提高精度。我还尝试了

linsolve()
功能和像往常一样的
\
运算符。
    

matlab precision linear-algebra
1个回答
0
投票

解决这个问题的一种方法是找到具有最小范数的解决方案。 numpy 默认这样做。还有一个 matlab 函数可以做到这一点:

lsqminnorm(A,B)

一旦找到解决方案,您可以将其重新插入(进行矩阵乘法),看看您的实际情况有多接近。

© www.soinside.com 2019 - 2024. All rights reserved.