【发布时间】:2018-12-20 20:15:12
【问题描述】:
我正在为我的线性代数课做一个项目。我遇到了一个小问题。我找不到在 Python(不是 MATLAB)中找到行梯形矩阵形式(未简化)的任何方法。 有人可以帮我吗? 谢谢。
(我用python3.x)
【问题讨论】:
标签: python python-3.x matrix
我正在为我的线性代数课做一个项目。我遇到了一个小问题。我找不到在 Python(不是 MATLAB)中找到行梯形矩阵形式(未简化)的任何方法。 有人可以帮我吗? 谢谢。
(我用python3.x)
【问题讨论】:
标签: python python-3.x matrix
Bill M 的回答是正确的。当您发现 LU 分解时,U 矩阵是在 REF 中写入 M 的正确方法(请注意,REF 不是唯一的,因此有多种可能的写入方法)。要了解原因,请记住 LU 分解找到 P,L,U 使得 PLU = M。当 L 为满秩时,我们可以将其写为 U = (PL)-1M。所以 (PL)-1 定义了您必须在 M 上执行的行操作才能将其更改为 U。
【讨论】:
我认为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]])
>>>
【讨论】: