LU分解的矩阵乘法问题?

里克斯特

我试图通过使用 LU 分解来解决 Ax=b,但不知何故我无法通过乘以 L*U 来得到 A。这是代码和结果;

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 结果的原因是什么?

里克斯特

哦,好像我完全忘记了置换矩阵 P。将 P 的逆乘以 L*U 解决了这个问题;

dot(inv(P),dot(P,A)):

array([[ 2.,  3.],
       [ 5.,  4.]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章