Multiply Matrices of Complex Numbers using NumPy in Python
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:
(a+ib) \times (x+iy)=ax+i^2by+i(bx+ay)=ax-by+i(bx+ay)
vdot() Method
NumPy provides vdot() method that returns the dot product of vectors a and b. It handles complex numbers differently than dot(a, b) by conjugating the first argument.
Syntax
numpy.vdot(a, b)
Parameters:
- a: array_like -> First input vector or matrix.
- b: array_like -> Second input vector or matrix.
Return Value: Returns a scalar which is the dot product of a and b. If the arrays contain complex numbers, a is conjugated before multiplication.
Examples
Example 1: This example demonstrates how to compute the dot product of two 1D arrays of complex numbers.
import numpy as np
x = np.array([2+3j, 4+5j])
print("Matrix A:")
print(x)
y = np.array([8+7j, 5+6j])
print("Matrix B:")
print(y)
z = np.vdot(x, y)
print("Result:")
print(z)
Output
Matrix A: [2.+3.j 4.+5.j] Matrix B: [8.+7.j 5.+6.j] Result: (87-11j)
Explanation:
- x and y are 1D NumPy arrays containing complex numbers.
- np.vdot(x, y) computes the dot product by conjugating x and multiplying element-wise with y, then summing the results.
- The resulting scalar (87-11j) is printed.
Example 2: This example demonstrates the dot product for 2D arrays of complex numbers.
import numpy as np
x = np.array([[2+3j, 4+5j], [4+5j, 6+7j]])
print("Matrix A:")
print(x)
y = np.array([[8+7j, 5+6j], [9+10j, 1+2j]])
print("Matrix B:")
print(y)
z = np.vdot(x, y)
print("Result:")
print(z)
Output
Matrix A: [[2.+3.j 4.+5.j] [4.+5.j 6.+7.j]] Matrix B: [[8. +7.j 5. +6.j] [9.+10.j 1. +2.j]] Result: (193-11j)
Explanation:
- x and y are 2D NumPy arrays containing complex numbers.
- np.vdot(x, y) flattens both arrays, conjugates the first (x), multiplies element-wise with the second (y), and sums all results.
- The resulting scalar (193-11j) is printed