scipy.linalg.

lu_solve#

scipy.linalg.lu_solve(lu_and_piv, b, trans=0, overwrite_b=False, check_finite=True)[source]#

Solve an equation system, a x = b, given the LU factorization of a

The documentation is written assuming array arguments are of specified “core” shapes. However, array argument(s) of this function may have additional “batch” dimensions prepended to the core shape. In this case, the array is treated as a batch of lower-dimensional slices; see Batched Linear Operations for details.

Parameters:
(lu, piv)

Factorization of the coefficient matrix a, as given by lu_factor. In particular piv are 0-indexed pivot indices.

barray

Right-hand side

trans{0, 1, 2}, optional

Type of system to solve:

trans

system

0

a x = b

1

a^T x = b

2

a^H x = b

overwrite_bbool, optional

Whether to overwrite data in b (may increase performance)

check_finitebool, optional

Whether to check that the input matrices contain 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.

Returns:
xarray

Solution to the system

See also

lu_factor

LU factorize a matrix

Examples

>>> import numpy as np
>>> from scipy.linalg import lu_factor, lu_solve
>>> A = np.array([[2, 5, 8, 7], [5, 2, 2, 8], [7, 5, 6, 6], [5, 4, 4, 8]])
>>> b = np.array([1, 1, 1, 1])
>>> lu, piv = lu_factor(A)
>>> x = lu_solve((lu, piv), b)
>>> np.allclose(A @ x - b, np.zeros((4,)))
True