我试图通过使用LU分解来解决Ax = b,但不知何故,我无法通过乘以L * U来获得A。这是代码和结果;LU分解的矩阵乘法问题?
A = array([2,3,5,4]).reshape(2,2)
b = array([4,3])
P,L, U = lu(A)
而结果对于L和U
L:
array([[ 1. , 0. ],
[ 0.4, 1. ]])
U:
array([[ 5. , 4. ],
[ 0. , 1.4]])
结果对于L * U
dot(L,U):
array([[ 5., 4.],
[ 2., 3.]])
所以代替((2,3),(5,4)), ((5.,4。),(2.,3.))。结果,我无法解决Ax = b。获得这种L * U结果的原因是什么?
或者你可以使用,而不是'L,U = scipy.linalg.lu(A,permute_l = TRUE)' 。然后'L.dot(U)'是预期的。 –