scipy.linalg.lu

scipy.linalg.lu(a, permute_l=False, overwrite_a=False, check_finite=True)[源代码]

计算矩阵的旋转LU分解。

分解如下:

A = P L U

其中P是置换矩阵,L是具有单位对角线元素的下三角形,U是上三角形。

参数
a(M,N)类数组

要分解的数组

permute_l布尔值,可选

执行乘法P*L(默认值:不置换)

overwrite_a布尔值,可选

是否覆盖中的数据(可能会提高性能)

check_finite布尔值,可选

是否检查输入矩阵是否仅包含有限个数字。禁用可能会带来性能提升,但如果输入确实包含无穷大或NAN,则可能会导致问题(崩溃、非终止)。

退货
(If permute_l == False)
p(M,M)ndarray

置换矩阵

l(M,K)ndarray

具有单位对角线的下三角形或梯形矩阵。K=min(M,N)

u(K,N)ndarray

上三角形或梯形矩阵

(If permute_l == True)
pl(M,K)ndarray

置换的L矩阵。K=min(M,N)

u(K,N)ndarray

上三角形或梯形矩阵

注意事项

这是为SciPy编写的LU因式分解例程。

示例

>>> from scipy.linalg import lu
>>> A = np.array([[2, 5, 8, 7], [5, 2, 2, 8], [7, 5, 6, 6], [5, 4, 4, 8]])
>>> p, l, u = lu(A)
>>> np.allclose(A - p @ l @ u, np.zeros((4, 4)))
True