我正在尝试在 Matlab 中求解一个大型线性系统,117 x 117。但每次我运行代码时,
给出输出“NaN”并给出警告“矩阵对于工作精度来说是奇异的”。其他一切都运行良好。我的教授告诉我要提高计算的精度。我用 digits(64)
函数增加了它,但即使这样,Matlab 也给了我相同的输出。我该如何解决这个问题?
digits(64)
功能来提高精度。我还尝试了
linsolve()
功能和像往常一样的 \
运算符。解决这个问题的一种方法是找到具有最小范数的解决方案。 numpy 默认这样做。还有一个 matlab 函数可以做到这一点:
lsqminnorm(A,B)
一旦找到解决方案,您可以将其重新插入(进行矩阵乘法),看看您的实际情况有多接近。