如何在Python中找到行梯形矩阵形式(未缩减)?

时间:2018-12-20 20:15:13

标签: python python-3.x matrix

我正在为我的线性代数课程设计一个项目。我陷入一个小问题。我找不到在Python(不是MATLAB)中找到行梯形矩阵形式(没有简化)的任何方法。 有人可以帮我吗? 谢谢。

(我使用python3.x)

2 个答案:

答案 0 :(得分:1)

我认为scipy.linalg's "lu"可以做到:

>>> from scipy.linalg import lu
>>> import numpy as np
>>> M = np.array([[0,3,-6,6,4,-5], [3,-7,8,-5,8,9], [3,-9,12,-9,6,15]])
>>> p,l,u = lu(M)
>>> u
array([[ 3.        , -7.        ,  8.        , -5.        ,  8.        ,  9.        ],
       [ 0.        ,  3.        , -6.        ,  6.        ,  4.        , -5.        ],
       [ 0.        ,  0.        ,  0.        ,  0.        ,  0.66666667, 2.66666667]])
>>>

答案 1 :(得分:1)

比尔M的答案是正确的。当您发现LU分解时,U矩阵是在REF中写入M的正确方法(请注意,REF不是唯一的,因此有多种可能的写入方法)。若要了解原因,请记住LU分解找到P,L,U使得PLU =M。当L为满秩时,我们可以将其写为U =(PL) -1 M。因此,(PL) -1 定义了您必须在M上执行的行操作才能将其更改为U。