NumPy

Previous topic

numpy.linalg.solve

Next topic

numpy.linalg.lstsq

This is documentation for an old release of NumPy (version 1.18). Read this page in the documentation of the latest stable release (version 2.2).

numpy.linalg.tensorsolve

numpy.linalg.tensorsolve(a, b, axes=None)[source]

Solve the tensor equation a x = b for x.

It is assumed that all indices of x are summed over in the product, together with the rightmost indices of a, as is done in, for example, tensordot(a, x, axes=b.ndim).

Parameters
aarray_like

Coefficient tensor, of shape b.shape + Q. Q, a tuple, equals the shape of that sub-tensor of a consisting of the appropriate number of its rightmost indices, and must be such that prod(Q) == prod(b.shape) (in which sense a is said to be ‘square’).

barray_like

Right-hand tensor, which can be of any shape.

axestuple of ints, optional

Axes in a to reorder to the right, before inversion. If None (default), no reordering is done.

Returns
xndarray, shape Q
Raises
LinAlgError

If a is singular or not ‘square’ (in the above sense).

Examples

>>>
>>> a = np.eye(2*3*4)
>>> a.shape = (2*3, 4, 2, 3, 4)
>>> b = np.random.randn(2*3, 4)
>>> x = np.linalg.tensorsolve(a, b)
>>> x.shape
(2, 3, 4)
>>> np.allclose(np.tensordot(a, x, axes=3), b)
True