NumPy: вычислить произведение Кронекера двух заданных многомерных массивов
NumPy: линейная алгебра Упражнение-8 с решением
Напишите программу NumPy для вычисления продукта Кронекера из двух заданных многомерных массивов.
Примечание. В математике произведение Кронекера, обозначаемое ⊗, представляет собой операцию над двумя матрицами произвольного размера, которая приводит к блочной матрице. Это обобщение внешнего произведения (которое обозначается тем же символом) от векторов к матрицам, и дает матрицу тензорного произведения относительно стандартного выбора базиса. Произведение Кронекера не следует путать с обычным умножением матриц, что является совершенно другой операцией.
Если A является матрицей m × n, а B является матрицей ap × q, то произведение Кронекера A is B является блочной матрицей mp × nq:
Пример решения :
Код Python:
import numpy as np
a = np.array([1,2,3])
b = np.array([0,1,0])
print("Original 1-d arrays:")
print(a)
print(b)
result = np.kron(a, b)
print("Kronecker product of the said arrays:")
print(result)
x = np.arange(9).reshape(3, 3)
y = np.arange(3, 12).reshape(3, 3)
print("Original Higher dimension:")
print(x)
print(y)
result = np.kron(x, y)
print("Kronecker product of the said arrays:")
print(result)
Пример вывода:
Оригинальные 1-й массивы: [1 2 3] [0 1 0] Произведение Кронекера из указанных массивов: [0 1 0 0 2 0 0 3 0] Оригинал Высшее измерение: [[0 1 2] [3 4 5] [6 7 8]] [[3 4 5] [6 7 8] [9 10 11]] Произведение Кронекера из указанных массивов: [[0 0 0 3 4 5 6 8 10] [0 0 0 6 7 8 12 14 16] [0 0 0 9 10 11 18 20 22] [9 12 15 12 16 20 15 20 25] [18 21 24 24 28 32 30 35 40] [27 30 33 36 40 44 45 50 55] [18 24 30 21 28 35 24 32 40] [36 42 48 42 49 56 48 56 64] [54 60 66 63 70 77 72 80 88]]
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу NumPy для вычисления собственных значений и правых собственных векторов данного квадратного массива.
Далее: Напишите программу NumPy для вычисления номера условия данной матрицы.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования