Функция kron
Функция kron вычисляет произведение Кронекера
для двух массивов. Первым параметром передаётся
левый массив, вторым - правый. Функция возвращает
новый массив, размерность которого равна сумме
размерностей входных массивов. Произведение
Кронекера часто используется в квантовой механике,
теории управления и при решении матричных уравнений.
Синтаксис
np.kron(a, b)
Пример
Выполним произведение Кронекера для двух одномерных массивов:
import numpy as np
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
res = np.kron(arr1, arr2)
print(res)
Результат выполнения кода:
[3 4 6 8]
Каждый элемент первого массива умножается на все элементы второго:
1 * [3, 4] = [3, 4] и 2 * [3, 4] = [6, 8].
Пример
Выполним произведение Кронекера для двух двумерных массивов:
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[0, 5], [6, 7]])
res = np.kron(arr1, arr2)
print(res)
Результат выполнения кода:
[[ 0 5 0 10]
[ 6 7 12 14]
[ 0 15 0 20]
[18 21 24 28]]
Каждый элемент исходной матрицы заменяется на блок, равный второму массиву, умноженному на этот элемент.
Пример
Применим произведение Кронекера к массивам разных размерностей:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4, 5], [6, 7]])
res = np.kron(arr1, arr2)
print(res)
Результат выполнения кода:
[[ 4 5 8 10 12 15]
[ 6 7 12 14 18 21]]
Размерность результата равна сумме размерностей входных массивов.
Пример
Используем произведение Кронекера для построения блочной матрицы:
import numpy as np
identity = np.eye(2)
matrix = np.array([[1, 2], [3, 4]])
res = np.kron(identity, matrix)
print(res)
Результат выполнения кода:
[[1. 2. 0. 0.]
[3. 4. 0. 0.]
[0. 0. 1. 2.]
[0. 0. 3. 4.]]
Блочная диагональная матрица, где каждый блок равен исходной матрице.