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

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()来检查一下算的对不对。学到了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值