我正在为我的线性代数课程设计一个项目。我陷入一个小问题。我找不到在Python(不是MATLAB)中找到行梯形矩阵形式(没有简化)的任何方法。 有人可以帮我吗? 谢谢。
(我使用python3.x)
答案 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。