numpy.linalg.tensorsolve#
- linalg.tensorsolve(a, b, оси=None)[источник]#
Решить тензорное уравнение
a x = bдля x.Предполагается, что все индексы x суммируются в произведении, вместе с самыми правыми индексами a, как это делается, например, в
tensordot(a, x, axes=x.ndim).- Параметры:
- aarray_like
Тензор коэффициентов, формы
b.shape + Q. Q, кортеж, равен форме того подтензора a состоящий из соответствующего количества его крайних правых индексов, и должен быть таким, чтобыprod(Q) == prod(b.shape)(в каком смысле a называется 'квадратной').- barray_like
Правый тензор, который может быть любой формы.
- осикортеж целых чисел, необязательный
Оси в a для переупорядочивания вправо перед инверсией. Если None (по умолчанию), переупорядочивание не выполняется.
- Возвращает:
- xndarray, форма Q
- Вызывает:
- LinAlgError
Если a является сингулярным или не «квадратным» (в указанном выше смысле).
Смотрите также
Примеры
>>> import numpy as np >>> a = np.eye(2*3*4).reshape((2*3, 4, 2, 3, 4)) >>> rng = np.random.default_rng() >>> b = rng.normal(size=(2*3, 4)) >>> x = np.linalg.tensorsolve(a, b) >>> x.shape (2, 3, 4) >>> np.allclose(np.tensordot(a, x, axes=3), b) True