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