$\newcommand{\ket}[1]{|{#1}\rangle}\newcommand{\bra}[1]{\langle{#1}|}$El modelo de un fotón polarizado linealmente con un ángulo $\theta$ se corresponde con un cúbit ya que para $\alpha=\cos(\theta)$ y $\beta=\sin(\theta)$, se tiene que \begin{align*} \ket{\psi} &= \cos(\theta) \ket{0} + \sin(\theta) \ket{1} = \begin{bmatrix}\cos(\theta)\\ \sin(\theta)\end{bmatrix}. \end{align*}
import numpy as np
# Base del espacio de estados cuánticos binarios
ket0 = np.array([[1], [0]])
ket1 = np.array([[0], [1]])
# Modelo para un fotón con polarización lineal theta
theta = 0.4
ket_psi = np.cos(theta) * ket0 + np.sin(theta) * ket1
print("ket_psi =\n", str(ket_psi))
ket_psi = [[0.92106099] [0.38941834]]
Así, un fotón polarizado se puede interpretar como un vector con corrdenadas $\cos(\theta)$ y $\sin(\theta)$ en una base formada por los estados ortogonales $\ket{0}$ y $\ket{1}$, tal y como representamos en la siguiente figura:
import matplotlib.pyplot as plt
# Representamos la circunferencia unidad como referencia:
t = np.linspace(0, 2*np.pi, 100)
plt.plot(np.cos(t), np.sin(t), 'k-')
# Representamos el estado cuántico ket_psi superpuesto
plt.plot([0, ket_psi[0, 0]], [0, ket_psi[1, 0]], 'k-', linewidth=2)
plt.plot(ket_psi[0, 0], ket_psi[1, 0], 'ko', linewidth=2)
plt.axis([-1.4, 1.4, -1.4, 1.4])
plt.gca().set_aspect('equal')
plt.grid(True)
plt.text(ket_psi[0, 0] + 0.1, ket_psi[1, 0] + 0.1, r'$|\psi\rangle$', fontsize=18)
plt.xlabel(r'$|0\rangle$', fontsize=18)
plt.ylabel(r'$|1\rangle$', fontsize=18)
plt.show()