
Circuito de 1 qubit al que se aplica una puerta Hadamard.
Veremos como construir un circuito simple con un único qubit al que se le aplcia una puerta Hadamard. Lo ejecutaremos CON y SIN medición para ver la diferencia.
from qiskit import QuantumCircuit import matplotlib.pyplot as plt from qiskit_aer import Aer import numpy as np # Crear un circuito cuántico con 1 qubit qc = QuantumCircuit(1,1) qc.h(0) # Medimos el qubit --> Luego eliminaremos el "#" para que se ejecute con medición # qc.measure(0,0) # Dibujar el circuito qc.draw(output='mpl')

# LO EJECUTAMOS Y VEMOS LOS RESULTADOS EN FORMATO ESFERA DE BLOCH
# Configuración del simulador cuántico
Procesando = Aer.get_backend('statevector_simulator') # Obtiene el backend 'statevector_simulator' de Qiskit Aer
# Ejecutar el circuito
job = Procesando.run(qc, shots=1024).result()
# __________ Mostrar contador de ejecuciones _________________
# counts = job.get_counts(qc)
# print("Contador de ejecuciones: ")
# print(counts)
# ____________________________________________________________
# __________ Mostrar los vectores de estado __________________
# Obtener el vector de estado resultante
statevector = job.get_statevector(qc)
# Convertir el Statevector a un array de numpy
statevector_array = np.asarray(statevector)
print(" ")
print("Statevector resultante:")
print(statevector_array)
# Imprimir los estados base y sus correspondientes amplitudes de probabilidad
n = qc.num_qubits
for i, amplitude in enumerate(statevector_array):
binary_state = format(i, f'0{n}b')
print(f"|{binary_state}⟩: {amplitude}")
# ____________________________________________________________
# Visualizar el estado final en la esfera de Bloch
from qiskit.visualization import plot_bloch_multivector, plot_state_city
import matplotlib.pyplot as plt
plot_bloch_multivector(statevector)
RESULTADO:
Statevector resultante: [0.70710678+0.j 0.70710678+0.j] |0⟩: (0.7071067811865476+0j) |1⟩: (0.7071067811865476+0j)

∣ψ⟩=α∣0⟩+β∣1⟩ donde:
Es decir: Existen ∣α∣2 probabilidades de que el Qubit colapse a “1” y ∣β∣2 probabilidades de que colapse a “0”
Además tienen que satisfacer la condición de normalización: ∣α∣2+ ∣β∣2=1
Un qubit |0⟩ tendría esta notación: [1+0·j 0+0·j], porque al 100% está en (1 0)
Si pensamos en la puerta Hadamard, decíamos que pasaba el qubit a un estado en el que tenía las mismas posibilidades de colapsar a “0” o a “1”, de forma que podemos decir que la puerta de Hadamard transforma los estados de la siguiente forma:
|0⟩ pasa a 1/√2 ·|0⟩ + 1/√2 ·|1⟩ o, según la notación de números complejos: 1/√2 ·(1+0·j) + 1/√2 ·(1+0·j) porque tiene la misma probabilidad de colapsar a "0" o a "1"
1/√2 = 0.70710678
Por eso nos aparece en el resultado
Statevector resultante: [0.70710678+0.j 0.70710678+0.j]
Probabilidad de que colapse a |0⟩: (0.7071067811865476+0j)
Probabilidad de que colapse a |1⟩: (0.7071067811865476+0j):
Si lo vemos en la esfera de Bloch comprobaremos que ha pasado el qubit a la “línea del ecuador” de dicha esfera, porque ahí es donde existen las mismas probabilidades de colapsar a “0” o a “1”
Nos quedará así:

y si lo ejecutamos el resultado será:
Statevector resultante: [1.+0.j 0.+0.j] |0⟩: (1+0j) |1⟩: 0j

Statevector resultante: [0.+0.j 1.+0.j] |0⟩: 0j |1⟩: (1+0j)
|1⟩: (1+0j)
