我試圖通過使用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)'是預期的。 –