上一主题

numpy.linalg.solve

下一主题

numpy.linalg.lstsq

numpy.linalg.tensorsolve

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

为x解出张量方程a x = b

假设x的所有索引与a的最右边索引一起在产物中求和,如在例如 tensordot(a, x, axes = len(b.shape))

参数:

a:array_like

系数张量,形状b.shape + QQ等于由其最右边索引的适当数目组成的a的子张量的形状,并且必须使得prod(Q) == prod(b.shape)(在某种意义上a '广场')。

b:array_like

右手张量,可以是任何形状。

axes:ints的元组,可选

a中的轴,在反演前向右重新排序。如果为无(默认值),则不进行重新排序。

返回:

x:ndarray,shape Q

上升:

LinAlgError

如果a是奇异的或不是'正方形'(在上述意义上)。

也可以看看

tensordottensorinveinsum

例子

>>> 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