Python Program for Kronecker Product of two matrices
Last Updated :
25 Apr, 2022
Given a {m} imes{n} matrix A and a {p} imes{q} matrix B, their Kronecker product C = A tensor B, also called their matrix direct product, is an {(mp)} imes{(nq)} matrix.
A tensor B = |a11B a12B|
|a21B a22B|
= |a11b11 a11b12 a12b11 a12b12|
|a11b21 a11b22 a12b21 a12b22|
|a11b31 a11b32 a12b31 a12b32|
|a21b11 a21b12 a22b11 a22b12|
|a21b21 a21b22 a22b21 a22b22|
|a21b31 a21b32 a22b31 a22b32|
Examples:
1. The matrix direct(kronecker) product of the 2×2 matrix A
and the 2×2 matrix B is given by the 4×4 matrix :
Input : A = 1 2 B = 0 5
3 4 6 7
Output : C = 0 5 0 10
6 7 12 14
0 15 0 20
18 21 24 28
2. The matrix direct(kronecker) product of the 2×3 matrix A
and the 3×2 matrix B is given by the 6×6 matrix :
Input : A = 1 2 B = 0 5 2
3 4 6 7 3
1 0
Output : C = 0 5 2 0 10 4
6 7 3 12 14 6
0 15 6 0 20 8
18 21 9 24 28 12
0 5 2 0 0 0
6 7 3 0 0 0
Below is the code to find the Kronecker Product of two matrices and stores it as matrix C :
Python3
# Python3 code to find the Kronecker Product of two
# matrices and stores it as matrix C
# rowa and cola are no of rows and columns
# of matrix A
# rowb and colb are no of rows and columns
# of matrix B
cola = 2
rowa = 3
colb = 3
rowb = 2
# Function to computes the Kronecker Product
# of two matrices
def Kroneckerproduct( A , B ):
C = [[0 for j in range(cola * colb)] for i in range(rowa * rowb)]
# i loops till rowa
for i in range(0, rowa):
# k loops till rowb
for k in range(0, rowb):
# j loops till cola
for j in range(0, cola):
# l loops till colb
for l in range(0, colb):
# Each element of matrix A is
# multiplied by whole Matrix B
# resp and stored as Matrix C
C[i + l + 1][j + k + 1] = A[i][j] * B[k][l]
print (C[i + l + 1][j + k + 1],end=' ')
print ("
")
# Driver code.
A = [[0 for j in range(2)] for i in range(3)]
B = [[0 for j in range(3)] for i in range(2)]
A[0][0] = 1
A[0][1] = 2
A[1][0] = 3
A[1][1] = 4
A[2][0] = 1
A[2][1] = 0
B[0][0] = 0
B[0][1] = 5
B[0][2] = 2
B[1][0] = 6
B[1][1] = 7
B[1][2] = 3
Kroneckerproduct( A , B )
# This code is contributed by Saloni.
Output :
0 5 2 0 10 4
6 7 3 12 14 6
0 15 6 0 20 8
18 21 9 24 28 12
0 5 2 0 0 0
6 7 3 0 0 0
Time Complexity: O(rowa*rowb*cola*colb), as we are using nested loops.
Auxiliary Space: O((rowa + colb) * (rowb + cola)), as we are not using any extra space.
Please refer complete article on Kronecker Product of two matrices for more details!
Similar Reads
Python Program to Multiply Two Matrices Given two matrices, we will have to create a program to multiply two matrices in Python. Example: Python Matrix Multiplication of Two-DimensionPythonmatrix_a = [[1, 2], [3, 4]] matrix_b = [[5, 6], [7, 8]] result = [[0, 0], [0, 0]] for i in range(2): for j in range(2): result[i][j] = (matrix_a[i][0]
5 min read
Python program to add two matrices Prerequisite : Arrays in Python, Loops, List Comprehension Program to compute the sum of two matrices and then print it in Python. We can perform matrix addition in various ways in Python. Here are a two of them. Examples:Input : X= [[1,2,3], [4 ,5,6], [7 ,8,9]] Y = [[9,8,7], [6,5,4], [3,2,1]] Outpu
2 min read
Python Program to find transpose of a matrix Transpose of a matrix involves converting its rows into columns and columns into rows. For example, if we have a matrix with values [[1, 2, 3], [4, 5, 6], [7, 8, 9]], its transpose would be [[1, 4, 7], [2, 5, 8], [3, 6, 9]]. Let's explore different methods to perform this efficiently.Using zip()This
3 min read
Python | Nth column Matrix Product Sometimes, while working with Python Matrix, we may have a problem in which we require to find the product of a particular column. This can have a possible application in day-day programming and competitive programming. Letâs discuss certain ways in which this task can be performed. Method #1: Using
7 min read
Python | Matrix Tuple pair Column product Sometimes, we encounter a problem where we deal with a complex type of matrix column product in which we are given a tuple and we need to perform the product of its like elements. This has a good application in Machine Learning domain. Letâs discuss certain ways in which this can be done. Method #1
4 min read