【发布时间】:2019-10-13 11:11:55
【问题描述】:
我正在尝试求解线性方程 AX=B,其中 A、X、B 是矩阵。
我试过使用 numpy 的 np.linalg.solve 函数,但结果似乎是错误的。
示例:
Matrix A
[9 1 8]
[3 2 5]
[1 6 5]
Matrix B
[7 0 5]
[7 8 4]
[5 6 7]
所以为了解决 X,我使用了:
X = np.linalg.solve(A,B)
结果是:
X
[ 1.17521368 -0.17948718 0.40598291]
[ 0.20512821 -0.30769231 0.74358974]
[-0.56410256 -0.15384615 1.20512821]
但如果我尝试通过将 A 乘以 X 来验证结果,则结果不是 B:
B
[ 5.40598291 -2.02564103 8.86752137]
[ 7.61111111 -4.33333333 13.61111111]
[ 3.15811966 -3.82051282 14.92735043]
如果我用这个:
np.matmul(B, np.linalg.inv(A))
我得到了相同的结果,而不是求解函数。
我这里有什么遗漏吗?
编辑 1: 我已经打印了
np.allclose(np.dot(A, X), B)
并且正在返回 False
编辑 2
这是我正在使用的代码:
B = np.array([7,0,5,7,8,4,5,6,7]).reshape(3,3)
A = np.array([9,1,8,3,2,5,1,6,5]).reshape(3,3)
X = np.linalg.solve(A,B)
print(x)
#[[-1.70967742 -4.48387097 0.08064516]
# [-1.35483871 -2.74193548 0.79032258]
# [ 2.96774194 5.38709677 0.43548387]]
如果这是一个非常基本的问题,我深表歉意,我感谢任何帮助。 谢谢。
【问题讨论】:
-
你确定你展示的
A和B产生了X。K和K1是什么? -
抱歉,我现在已将其编辑为正确。
标签: python numpy linear-algebra matrix-multiplication linear-equation