I am trying to generate the Hamiltonian of a quantum Fourier transform by taking the log of the corresponding unitary using qiskit and scipy.
I don't find a hermitian matrix. Why ?
import numpy as np
from qiskit.circuit.library import QFT
from scipy.linalg import logm, norm
from qiskit.quantum_info import Operator
circuit = QFT(num_qubits=4, do_swaps=True)
op = Operator(circuit)
U = op.data
H = 1j*logm(U)
print(norm([email protected]()-np.identity(2**4))) #check if U is unitary
print(norm(H-H.T.conj())) #check if H is hermitian
Note that I find U to be unitary, and that there is no issue when do_swaps=False.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…