当前位置: 代码迷 >> 综合 >> python-numpy: linalg.solve中报错 Singular Matrix
  详细解决方案

python-numpy: linalg.solve中报错 Singular Matrix

热度:54   发布时间:2024-01-13 00:16:55.0

Singular Matrix ?

在解线性方程组的时候调用了形如:

solution = np.linalg.solve(a, b)

然而在等待结果的时候,你只能看到如下的报错?

这里写图片描述

Singular Matrix 的Error来自于系数矩阵的Det = 0
关于Det以及求解过程可以自行百度一下线性代数求解线性方程组的内容blabla

然后我们再到图中说的…../numpy/linalg/linalg.py看看:

这里写图片描述

在最下的notes那边它说这个‘a’系数矩阵必须为linearly independent,否则就是“Raises LinAlgError”了

其实linearly independent就是保证Det不为0. 就是说,python这个solve函数默认input就是Det不为0矩阵。

So 保险的办法其实就是自己在外部写一个check Det的判断然后再调用solve函数哦。

以及 插播.py文件后面一些example code:

这里写图片描述

这是solve完之后,用allclose()来检查一下算的对不对。学到了。