№ 2070Атомы и молекулыУровень 3

Спиновые энергии водорода

Оцените энергии четырёх спиновых состояний основного уровня водорода на qasm_simulator. Дано

$$H=A(X\otimes X+Y\otimes Y+Z\otimes Z),\quad A=1.47\cdot10^{-6}\ \text{эВ},\quad E=A(\langle XX\rangle+\langle YY\rangle+\langle ZZ\rangle).$$

1. Выразите каждое среднее для произвольного двухкубитного состояния в вычислительном базисе. Автор даёт $\langle ZZ\rangle=p_{00}-p_{01}-p_{10}+p_{11}$; заполните XX и YY.
2. Измерьте ожидаемую энергию в четырёх состояниях Белла:

$$Tri1=(|00\rangle+|11\rangle)/\sqrt2,\quad Tri2=(|00\rangle-|11\rangle)/\sqrt2,$$
$$Tri3=(|01\rangle+|10\rangle)/\sqrt2,\quad Sing=(|10\rangle-|01\rangle)/\sqrt2.$$

A. Создайте схемы подготовки всех четырёх состояний.
B. Создайте измерительные схемы XX,YY,ZZ по ответу на пункт 1.
C. Запустите их на qasm_simulator и вычислите E для каждого состояния, используя $2^{14}$ измерений для каждой схемы. Требуемое определение симулятора: sim = Aer.get_backend('qasm_simulator').
D. Разберитесь в результате: автор связывает разность энергий триплета и синглета со сверхтонкой структурой и 21-сантиметровым излучением. Выполните данную проверку длины волны в заключительной ячейке. Там используются $4.1357\cdot10^{-15}$ эВ·с и $3\cdot10^{10}$ см/с.

Исходные определения и заготовки (код сохранён без исполнения):

from qiskit import *
import numpy as np
from numpy import linalg as la
from qiskit.tools.monitor import job_monitor
import qiskit.tools.jupyter

# circuit for the state Tri1
Tri1 = QuantumCircuit(2)
# your code goes here






# circuit for the state Tri2
Tri2 = QuantumCircuit(2)
# your code goes here





# circuit for the state Tri3
Tri3 = QuantumCircuit(2)
# your code goes here






# circuit for the state Sing
Sing = QuantumCircuit(2)
# your code goes here







# <ZZ> 
measure_ZZ = QuantumCircuit(2)
measure_ZZ.measure_all()

# <XX>
measure_XX = QuantumCircuit(2)
# your code goes here





# <YY>
measure_YY = QuantumCircuit(2)
# your code goes here






shots = 2**14 # number of samples used for statistics

A = 1.47e-6 #unit of A is eV
E_sim = []
for state_init in [Tri1,Tri2,Tri3,Sing]:
    Energy_meas = []
    for measure_circuit in [measure_XX, measure_YY, measure_ZZ]:
    
        # run the circuit with a the selected measurement and get the number of samples that output each bit value
        qc = state_init+measure_circuit
        counts = execute(qc, sim, shots=shots).result().get_counts()

        # calculate the probabilities for each computational basis
        probs = {}
        for output in ['00','01', '10', '11']:
            if output in counts:
                probs[output] = counts[output]/shots
            else:
                probs[output] = 0
            
        Energy_meas.append( probs['00'] - probs['01'] - probs['10'] + probs['11'] )
 
    E_sim.append(A * np.sum(np.array(Energy_meas)))

# Run this cell to print out your results

print('Energy expection value of the state Tri1 : {:.3e} eV'.format(E_sim[0]))
print('Energy expection value of the state Tri2 : {:.3e} eV'.format(E_sim[1]))
print('Energy expection value of the state Tri3 : {:.3e} eV'.format(E_sim[2]))
print('Energy expection value of the state Sing : {:.3e} eV'.format(E_sim[3]))

# reduced plank constant in (eV) and the speed of light(cgs units)
hbar, c = 4.1357e-15, 3e10

# energy difference between the triplets and singlet
E_del = abs(E_sim[0] - E_sim[3])

# frequency associated with the energy difference
f = E_del/hbar

# convert frequency to wavelength in (cm) 
wavelength = c/f

print('The wavelength of the radiation from the transition\
 in the hyperfine structure is : {:.1f} cm'.format(wavelength))