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

Singular Matrix ?

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

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

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

python-numpy: linalg.solve中报错 Singular Matrix_第1张图片

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

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

python-numpy: linalg.solve中报错 Singular Matrix_第2张图片

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

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

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

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

python-numpy: linalg.solve中报错 Singular Matrix_第3张图片

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

你可能感兴趣的:(python,python,numpy,matrix)