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 + Q
。 Q等于由其最右边索引的适当数目组成的a的子张量的形状,并且必须使得prod(Q) == prod(b.shape)
(在某种意义上a '广场')。b:array_like
右手张量,可以是任何形状。
axes:ints的元组,可选
在a中的轴,在反演前向右重新排序。如果为无(默认值),则不进行重新排序。
返回: x:ndarray,shape Q
上升: LinAlgError
如果a是奇异的或不是'正方形'(在上述意义上)。
也可以看看
tensordot
,tensorinv
,einsum
例子
>>> 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