我正在尝试使用python来解决矩阵函数Ax = b。在这种情况下,我们有
A = [[-1. 1. 0.]
[-1. 0. 1.]
[-2. 0. 0.]]
b = [ 1. 1. 2.]
我试图使用numpy.linalg.solve
解决此问题,如下面的代码
result = np.linalg.solve(A,b)
输出就像这样
[ -1.00000000e+00 2.22044605e-16 2.22044605e-16]
这显然与正确答案不同。 所以我试着在终端中实现这个,如下所示
>>> import numpy as np
>>> T = np.matrix([[-1.0,1.0,0.0],[-1.0,0.0,1.0],[-2.0,0.0,0.0]])
>>> b = np.array([1.0,1.0,2.0])
>>> np.linalg.solve(T,b)
array([-1., 0., 0.])
>>> type(b[0])
<type 'numpy.float64'>
我在想数据类型可能会导致这种结果,但我的代码中的A和b都是'numpy.float64'。所以我无法弄清楚这种情况的原因是什么。
答案 0 :(得分:0)
您可以通过执行以下操作来检查它是否为解决方案
r = np.linalg.solve(T,b)
T@r # Matrix mutiplication if you have a modern python
这将返回你的b矢量。