maxframe.tensor.linalg.lu#

maxframe.tensor.linalg.lu(a)[源代码]#

LU 分解

分解为:

A = P L U

其中 P 是置换矩阵,L 是单位对角线下三角矩阵,U 是上三角矩阵。

参数:

a ((M, N) array_like) -- 要分解的数组

返回:

  • p ((M, M) ndarray) -- 置换矩阵

  • l ((M, K) ndarray) -- 单位对角线的下三角或梯形矩阵。K = min(M, N)

  • u ((K, N) ndarray) -- 上三角或梯形矩阵

示例

>>> import maxframe.tensor as mt
>>> A = mt.array([[1,2],[2,3]])
>>> A.execute()
array([[ 1,  2],
       [ 2,  3]])
>>> P, L, U = mt.linalg.lu(A)
>>> P.execute()
array([[ 0,  1],
       [ 1,  0]])
>>> L.execute()
array([[ 1,  0],
       [ 0.5,  1]])
>>> U.execute()
array([[ 2,  3],
       [ 0,  0.5]])
>>> mt.dot(P.dot(L), U).execute() # verify that PL * U = A
array([[ 1,  2],
       [ 2,  3]])