In this article, we will discuss how to multiply two matrices containing complex numbers using NumPy but first, let’s know what is a complex number. A Complex Number is any number that can be represented in the form of x+yj where x is the real part and y is the imaginary part. Multiplication of two complex numbers can be done using the below formula –
NumPy provides the vdot() method that returns the dot product of vectors a and b. This function handles complex numbers differently than dot(a, b).
Syntax:
numpy.vdot(vector_a, vector_b)
Example 1:
Python3
# importing numpy as library import numpy as np # creating matrix of complex number x = np.array([ 2 + 3j , 4 + 5j ]) print ( "Printing First matrix:" ) print (x) y = np.array([ 8 + 7j , 5 + 6j ]) print ( "Printing Second matrix:" ) print (y) # vector dot product of two matrices z = np.vdot(x, y) print ( "Product of first and second matrices are:" ) print (z) |
Output:
Printing First matrix: [2.+3.j 4.+5.j] Printing Second matrix: [8.+7.j 5.+6.j] Product of first and second matrices are: (87-11j)
Time complexity: O(1)
Auxiliary space: O(1)
Example 2: Now suppose we have 2D matrix:
Python3
# importing numpy as library import numpy as np # creating matrix of complex number x = np.array([[ 2 + 3j , 4 + 5j ], [ 4 + 5j , 6 + 7j ]]) print ( "Printing First matrix:" ) print (x) y = np.array([[ 8 + 7j , 5 + 6j ], [ 9 + 10j , 1 + 2j ]]) print ( "Printing Second matrix:" ) print (y) # vector dot product of two matrices z = np.vdot(x, y) print ( "Product of first and second matrices are:" ) print (z) |
Output:
Printing First matrix: [[2.+3.j 4.+5.j] [4.+5.j 6.+7.j]] Printing Second matrix: [[8. +7.j 5. +6.j] [9.+10.j 1. +2.j]] Product of first and second matrices are: (193-11j)
Time complexity: O(n^2), where n is the dimension of the matrices.
Auxiliary space: O(1), as the matrices and their product are stored in memory and no additional space is used.