# mindspore.scipy.linalg.lu_factor

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

Compute pivoted LU decomposition of a square matrix, and its outputs can be directly used as the inputs of lu_solve. The decomposition is:

$a = p l u$

where $$p$$ is a permutation matrix, $$l$$ lower triangular with unit diagonal elements, and $$u$$ upper triangular.

• lu_factor is not supported on Windows platform yet.

• Only float32, float64, int32, int64 are supported Tensor dtypes. If Tensor with dtype int32 or int64 is passed, it will be cast to mstype.float64.

• a (Tensor) – square matrix of $$(M, M)$$ to decompose. Note that if the input tensor is not a float, then it will be cast to :class:’mstype.float32’.

• overwrite_a (bool, optional) – Whether to overwrite data in $$a$$ (may increase performance). Default: False.

• check_finite (bool, optional) – Whether to check that the input matrix contains only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs. Default: True.

• Tensor, a square matrix of $$(N, N)$$ containing U in its upper triangle, and L in its lower triangle. The unit diagonal elements of L are not stored.

• Tensor, $$(N,)$$ pivot indices representing the permutation matrix P: the i-th element value j in the indices indicates that row i of matrix was interchanged with row j.

ValueError – If $$a$$ is not square.

Supported Platforms:

GPU CPU

>>> import numpy as onp
>>> from mindspore.common import Tensor
>>> from mindspore.scipy.linalg import lu_factor
>>> a = Tensor(onp.array([[2, 5, 8, 7], [5, 2, 2, 8], [7, 5, 6, 6], [5, 4, 4, 8]]).astype(onp.float64))
>>> lu, piv = lu_factor(a)
>>> print(lu)
[[ 7.          5.          6.          6.        ]
[ 0.28571429  3.57142857  6.28571429  5.28571429]
[ 0.71428571  0.12       -1.04        3.08      ]
[ 0.71428571 -0.44       -0.46153846  7.46153846]]
>>> print(piv)
[2 2 3 3]