Функция Numpy linalg tensorsolve() используется в Python для вычисления тензорного уравнения ax=b для x. Предполагается, что все индексы х суммируются над произведением и правыми индексами а, как это и делается. Например, tensordot(а, х, axes = b.ndim).
Синтаксис
|
1 |
numpy.linalg.tensorsolve(A, B, axes=None ) |
Параметры
- A: Тензор коэффициентов, условие b. status + Q. Q, Tuple, равен форме этого подтензора с правильным числом его правых индексов и должен быть таким же(pr)(Q) == prod(b).shape)(когда он называется «square»).
- B: правый тензор, который может быть любой формы.
Возвращаемое значение
- Функция linalg tensorsolve() возвращает ndarray такой же формы, как Q.
- Функция linalg tensorsolve() выдает LinAlgError, если A является единственной или не является квадратной матрицей.
Пример программирования
Программа для демонстрации работы tensorsolve():
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Program to show working of solve() import numpy as np # creating the array "a" A = np.array([[3, 4, 5], [1, 2, 3], [2, 4, 5]]) B = np.array([9, 8, 7]) print("Array A is: \n", A) print("Array B is : \n", B) # Calculating the equation ans = np.linalg.tensorsolve(A, B) # Printing the answer print("Answer of the equation is :\n", ans) # Checking if the answer if correct print(np.allclose(np.dot(A, ans), B)) |
Вывод:
|
1 2 3 4 5 6 7 8 9 |
Array A is: [[3 4 5] [1 2 3] [2 4 5]] Array B is : [9 8 7] Answer of the equation is : [ 2. -10.5 9. ] True |
Объяснение.
В этом примере мы создали квадратную матрицу 3 × 3, которая не является единственной, и мы напечатали ее. Затем мы создали массив размером 3 и также напечатали его.
Затем мы вызвали numpy.linalg.tensorsolve() для вычисления уравнения Ax=B. Мы видим, что у нас есть выход формы, обратной B. Кроме того, мы проверили, является ли возвращаемый ответ истинным или нет.
