I am trying to optimize a complex symmetric unitary matrix
𝐴 with dimensions N*N using Python.
First of all, how to generate matrix 𝐴 that should satisfies the two conditions:
𝐴=𝐴^{T} (symmetric constraint), where 𝐴^{T} is the transpose of 𝐴
𝐴 . 𝐴^{H}= I (Unitary constraint), where 𝐴^{H} is the Hermitian transpose of 𝐴 and I is the identity matrix.
Secondly, I will use it to maximize a matrix multiplication of matrix B with N*N dimensions, so how to perform this matrix multiplication while 𝐴 remains both symmetric and unitary.
import random
import numpy as np
import cmath
import math
N = 4 # Matrices dimensions
B=np.array([[0.09+0.76j, 0.67+0.08j, 0.28+0.58j],
[0.47+0.82j, 0.85+0.07j, 0.13+0.49j],
[0.12+0.8j , 0.35+0.31j, 0.76+0.85j]])
result = A @ B
1